期待のネット新技術

10Mbpsの「MII」から1000MbpsのCisco独自規格「SGMII」まで

【光Ethernetの歴史と発展】

 Ethernetというか10GBASE-Tに関しては、2017年から【10GBASE-T、ついに普及?】と題し、全11回と番外編2回をお届けした。だが、ツイストペアによる銅配線のEthernetは10GBASE-Tまでで、25/40GBASE-Tはまだまだ実用化には至っていない。

 【アクセス回線10Gbpsへの道】とも一部は被るかもしれないが、ここでは光ファイバーを利用する“光Ethernet”を紹介していこう。

「IEEE 802.3u」で定義された100Mbps転送の「MII」

 1Gbps Ethernetについては、前回までで終わりとなるが、次の10Gbpsへ話を進める前に、少し「MII」の話を紹介しておきたい。

この当時、メディアはまだ1種類(物理的には3種類だが、電気的なプロトコルは共通)で、特に分離する必要はないと考えられていたのだろう。出典はDavid Law氏の"IEEE 802.3 Ethernet www.ieee802.org/3/"(PDF)

 MII、正式にはMedia Independent Interfaceであるが、これが実は100Mbps Ethernetの「IEEE 802.3u」で定義された。10MbpsまでのEthernetは、データリンク層と物理層の間が「AUI(Attachment Unit Interface)」と呼ばれるインターフェースで接続される構造(以下左)となっていた。このAUIは、左のように6本の信号線と電源(12V)から構成される方式で、主に「10BASE5」をターゲットにしたものだ。

 10BASE5の場合、物理層というかトランシーバーはケーブルに直結されており、これとネットワークカードの間をAUIケーブルでつなぐ、という形態になっていたため、下の画像ののようなケーブルが必要だった。

 10BASE2や10BASE-Tでは、外部にケーブルを引っ張り出さなくても、初期の製品を除けばネットワークカード上へトランシーバーの実装が可能だったため、AUIケーブルを使うケースは極めてまれだった(10BASE2はともかく、10BASE-TでAUIを利用した製品は見たことがない)。もっとも、物理的にはAUIは見えないものの、10BASE5や10BASE-Tの内部では引き続きAUIが利用されていたようだ。

「AUI」の全体は、15ピンのコネクタを用いて接続された。出典は「IEEE 802.3-2018」のSection 1、Chapter 7.6.3のTable
4種類のトランシーバー。上の2つは後期に出たコンパクトなタイプで、10BASE5ケーブルをコネクタで直結する。右は10BASE2の出始めの時期に使われたもの。左下のひときわデカイのが初期の10BASE5のトランシーバーで、10BASE5ケーブル(黄色)をアタッチメントで挟み込む(黒と白の2色のもの)。この状態でケーブルに穴をあけ(そのための道具が右下のオレンジのもの)、針を差し込んでからアタッチメントを本体に装着する。出典は英語版Wikipedia「10BASE5」内の画像

 さて、100BASE-Xでは、複数の物理メディアをサポートするという方向性が見えてきた。本連載「光Ethernetの歴史と発展」の第3回でも説明した通り、IEEE 802.3uで100BASE-FXと100BASE-TX、「IEEE 802.3ah」で100BASE-LX10と100BASE-BX10が標準化された。

 ただ、いずれも100Mbpsの双方向通信という観点では同じながら、物理層では全く互換性がない。そこで、物理層だけを切り離し、間に標準的なインターフェースを挟み込むことで、上位層は変えずに複数の規格に対応できるようにしたい、というニーズが生まれた。

 要するに、100BASE-TXと100BASE-FX(と、後から追加された100BASE-LX10/1000BASE-BX10)では、データリンク層から上は全く同一で、物理層だけが異なっている。なので、データリンク層から上をまとめたネットワークコントローラーに物理層だけを外付けで追加するかたちにすれば、製品の柔軟性が増すと判断されたわけだ。

これはIEEEの2011年のWorkshopの資料で、この頃にはMIIだけでなくGMIIなども登場しているため"xMII"という表現になっている。出典はDavid Law氏の"IEEE 802.3 Ethernet www.ieee802.org/3/"(PDF)

 この結果として登場したのが、MIIである。要するに物理層に対するインターフェースであり、エンコードやエラー訂正など、その物理層特有のものを全てMIIの配下にまとめてしまうことで、構成を柔軟にすることが可能となった。

 そのインターフェースは、左図の赤枠部に示すような構成になっている。信号線だけで16本、実際には更に+5VラインとMDIO(Management Data Input/Output)という信号ラインもあり、GNDを抜きにしても20本の信号線が必要となる。これもあって、MII用のコネクタは40ピンのものが定義された。

 実際にはこのコネクタを使うケースはまれで、通常は右のように基板の上にMACとPHYのチップが別々に実装され、間を配線で繋ぐようになっていた。そうした限りで言えば、配線が20本近いことはそれほど問題とはならなかった。

赤枠は筆者が追加。出典は「IEEE 802.3-2018」のFigure 22-22
筆者手持ちのTulip搭載100BASE-TXカード。さすがにロゴはDECではなくIntelになっている。PHYがLSI Logic製というのも時代を感じさせる

光ファイバー用途で高いニーズがあった「SFP」と光モジュール

 ただ、特に光ファイバーを利用する用途向けでは、「SFP(Small Form-factor Pluggable)」と呼ばれる光トランシーバーを利用したい、というニーズが強かった。もともと光Ethernet登場前の時代から、光に関してはネットワークカードに直接実装するのではなく、光/電気変換モジュールのかたちで提供されてきており、光Ethernetでもこれを踏襲するというニーズがあった。結果、光Ethernetについては、以下の図のような構成が一般的となった。

 この光モジュールの仕様は、旧SFF(Small Form Factor)Committeeで、現在は「SNIA(Storage Networking Industry Association)」が規定する「INF-8074i」のSFP(Small Formfactor Pluggable) Transceiverが利用されることになった。その形状は、例えばFSの扱う100BASE-FXモジュールが実際の製品での例となる。

 サイズは全長45mm、幅13.7mm、高さ8.6mmという非常にコンパクトなもので、通常のPCIやPCI Expressのカードでも、その気になれば2本装着も可能という程度のもの。これを利用し、光Ethernetカードそのものは共通化して装着するモジュールを入れ替えることで、100BASE-FX/LX10/BX10を切り替えられるようになった。

50MHzのクロック、8本の信号線で100Mbpsの通信を可能にした「RMMI」

RMMIはあくまでもMIIの途中の配線を減らすのが目的で、MIIそのものを代替するわけではない。実際にはカード側に、RMIIとMIIの相互変換を行うPHYが搭載されることになる。出典は「RMII Specification Rev 1.2」のFigure 1

 問題は、このINF-8074iでは信号ピンが20本しか使えないことだ。このため、MIIの信号をそのまま通すのは、不可能ではないが少し無理がある。

 そこで、MIIの信号を減らす「RMMI(Reduced MII)」という仕様が策定された。ちなみにMIIそのものは、100Mbps以外に10Mbps(10BASE-T)にも対応している。

VeeはGND、Vccが電源で、MOD-DEF(0-2)はベンダー定義用に開放されている。LOSはLoss of Signalの意味。出典はSNIAの「INF-8074i

 これは、100BASE-TXが10BASE-Tとの後方互換性を維持する関係で必須なわけだが、RMIIがこれに対応しているかどうかは不明(というか、仕様には10Mbpsの転送に関する記載はなく、おそらく未対応)であるが、こんな使い方をされることはないだろうから、事実上差し障りはないと思われる。

 この仕様は、3Com、AMD、Bay Networks、Broadcom、National Semiconductor、Texas Instrumentsの6社によって1997年に結成されたRMII Consortiumという団体から、1998年に「RMMI Specification」として発表された。

2倍の信号ピンと5倍の速度で1Gbpsを実現する「GMII」

 ということで、1Gbpsでも当然MIIに相当するものが規定されており、「GMII(Gigabit MII)」と呼ばれる。転送速度は10倍速とはなったが、信号をそのまま10倍速にするのは無茶だと思ったのか、データ幅を8bitへ拡張している。つまり、信号速度5倍×データ幅2倍で、10倍の転送速度という計算だ。

TXD/RXD以外はMIIと同じことが分かる。出典は「IEEE802.3-2018」のFigure 35-19

 これに合わせ、「RGMII」もまた策定されることになった。Reduced GMIIの略称であるが、こちらも同様に信号ピンを2倍(上り下り各4bit)、速度を5倍にしている。

 厳密に言えば、RMIIの場合は50MHzのクロック信号の立ち上がりエッジのみをトリガーにして50MHz×2bit=100Mbpsなのに対し、GMIIでは立ち上がりと立ち下がりの両方でデータを送る方式(俗にいうDDR:Double Data Rate)を採用することで、Reference Clockそのものは125MHzながら、125MHz×4bit×2=1000Mbpsを実現している。

1000Mbpsを8b/10bエンコードでシリアル転送するCisco独自規格「SGMII」

 さて、このあたりまでは業界標準の技術となるが、非業界標準のものとして、「SGMII(Serial GMII)」と呼ばれるものも存在する。

信号線は最小に抑えられ、1.25Gbpsという速度にピンが耐えるなら、最もリーズナブルな構成だろう。出典はCiscoの"Serial-GMII Specification Revusuib 1.7(ENG-46158)"のFigure 1

 Cisco独自の規格だが、CiscoではSGMII対応モジュールを多く出荷しており、これに対応するかたちで、さまざまななベンダーがSGMII対応を打ち出した結果、事実上の業界標準となっている規格だ。1000Mbpsを8b/10bエンコードでシリアル転送する規格で、信号速度は1.25Gbps、バス幅は1bit(Differencialなのでピン数は2本)となる。

 RMII/RGMIIと異なり、こちらは既存のMII/GMIIの置き換えというかたちになるわけだが、第4回でも触れたように、もともとは1000BASE-Xが内部的には8B10Bエンコードを使った1.25Gbpsを扱っているので、それをそのまま外部に出しただけとも考えられ、むしろ余分な手間が省けてちょうどいい(GMII向けに変換するオーバーヘッドが省ける)という点も、普及した要因かもしれない。

大原 雄介

フリーのテクニカルライター。CPUやメモリ、チップセットから通信関係、OS、データベース、医療関係まで得意分野は多岐に渡る。ホームページはhttp://www.yusuke-ohara.com/