期待のネット新技術

40G/100Gへ向けIEEE 802.3baで定義されたInterconnectとトランシーバーの規格

【光Ethernetの歴史と発展】

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

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

「光Ethernetの歴史と発展」記事一覧

IEEE 802.3baで定義された「CGMII」と「XLGMII」のInterconnect

 今回はまず、「IEEE 802.3ba」で定義された2種類のInterconnectである「CGMII」と「XLGMII」について説明しておきたい。前回も掲載した以下左のスライドのように、CGMIIおよびXLGMIIはホスト(というかSoCというか、要はコントローラーの上位)と物理層のインターフェースとなるが、これそのものは論理的な定義であって、物理的な定義は「CAUI」または「XLAUI」となる。

CAUI/XLAUIは、要するに距離を延長する(例えばコントローラーの外にPHYを用意する)場合に利用されるインターフェースだ。出典は"40/100G Architecture & Interfaces proposal"。

 そのCGMIIとXLGMIIの設計目標をみると、最低でも90nmプロセスなら製造できる、という条件となったようだ。その一方で、物理的なインターフェースであるCAUI/XLAUIについては、4/10レーンで64B/66Bエンコードを利用することになった。

ローマ数字の100がC、40がXLということで、この名前になった

 そこでまず、CGMIIとXLGMIIだが、ともにIEEE 802.3baでは、データ64bit/制御信号8bitの双方向と規定されており、ここからクロック信号(TX_CLK/RX_CLK)は40Gで625MHz、100Gで1.5625GHzと言う計算になる。

 ただし、これは必ずしも必須ではなく、仕様で定められているのは以下の5項目のみであり、これをサポートしていれば、必ずしも64bit+8bitという構成である必要がない。

  • XLGMIIは40Gb/secをサポート
  • CGMIIは100Gb/secをサポート
  • データおよびデリミッターはリファレンスクロックに同期
  • 独立した64bitの送信/受信パスの提供
  • 全二重のみをサポート
論理的には64bitの送受信だから、こういう構造になるのは当然ではある。出典は「IEEE 802.3-2018」のFigure 81-2
このIPでは、FPGAで実装される関係でMACとPHYの間はチップ内で結合されているので、バス幅を増やしても問題ない。逆に1GHzを超える高速な信号を当時のFPGAでは扱うのは困難だったから、妥当な構成だろう

 実際、例えばHighTech Globalという企業の「Dual Mode 40/100Gig Ethernet MAC & PCS IP Core」の場合、データバス幅が320bitになっており、クロックは40Gで125MHz、100Gでも312.5MHzとなっている。

 要するに、見かけ上だけでも64bit幅での送信ができれば、例えば実際は512bit幅でも1024bit幅でもよく、逆に時分割で32bitに押し込めても(スピードが間に合うとは思えないが)構わないというわけだ。

 このあたりは、要はPLSとPCSがお互いに通信できて、上に挙げた5つの項目を満たしていれば、実装は割と何でもいいかたちとなっている。

5Gbps×20レーンの「CAUI」、10Gbpsの仮想レーンが4本の「XLAUI」

そもそもCAUIが20レーンならXLAUIも8レーンでないとおかしい気がするが、XLAUIは4レーンで構わないとされる。このあたりの意図はちょっと調べたが不明だった。出典はIEEE 802.3-2018のFigure 82-2

 これに対してCAUI/XLAUIは、そういうわけにはいかない。こちらはきちんとバス幅が決められることになった。

 ただ、ちょっと面白い構成になっている。そのCAUI/XLAUIの構成が以下左のスライドで、CAUIの場合は片方あたり20本、XLAUIの場合は4本の「Virtual Lane」(仮想レーン)を実装することになっている。

 つまり、CAUIならば5Gbps×20、XLAUIだと10Gbps×4ということだ。ここがVirtual Laneというのがポイントで、物理的にはもっと少なくても構わないとされる。

 そんなわけで実際の信号レートとしては、10.3125Gbpsで64B/66Bエンコードというかたちになり、40Gならば4対、100Gなら10対という構成になった。その結果として、パケットは以下右のように、やや複雑な分配のされ方になる。

XLAUIの場合で言えば、4レーンですら1レーンあたり10Gbpsとなるわけで、これを減らすと20/40Gbpsになるから実装が極端に難しく、事実上、XLAUIが4レーン、CAUIが10レーンとなる
これをPHYでやる必要があることが、ポートトランキングなどとは異なる点だ。出典は"100GE and 40GE PCS (MLD) Proposal"

 これは100GBASE-LR4のケースということになるが、MLDからはVL0~VL19まで20本のVirtual Laneへそれぞれデータが渡されるかたちとなり、CAUIを経由するときに10本にシリアライズされる。これがPHYの中でさらに4つのレーンに集約されて渡され、受信側はこれと逆の操作を行って20本のVirtual Laneに、それもきちんとパケットの順番をそろえて渡す必要がある。

 MACからは20レーンで渡され、それが途中で10レーンに絞られる(ここはVirtual Laneの仕組み)が、その先では、これをさらに4レーンに絞るかたちとなる。ただし、これはレーンを4本に絞るというより、20→10→1→4といった動きになる、というのが正解である。

外からはレーン数変換に見える「MLD」

各々のBlockは66bit単位。出典は"100GE and 40GE PCS (MLD) Proposal"

 具体的には右のように、いったん1レーンの(つまりBlockを全部まとめる)かたちで並べた後、この場合なら4本の物理レーンに分配して順次送ることになる。ただTX PCS→RX PCSの間は、実際には光ファイバーだったり銅配線だったりするので、レーンによって送信が遅延したり再送が掛かることがあり得る。

 そこで、定期的に挟み込んだAlignment Blockで同期を取る、つまり全てのレーンでAlignment Blockが伝達されれば同期が取れたことが分かるので、その後はAlignment Blockを削除し、並び替えを行ってから上位に渡す。

 この機能のことを「MLD(Multi-lane Distribution)」、つまりマルチレーン振り分けと呼ぶが、これはIEEE 802.3baで新たに追加されたものだ。これを入れることで、将来さらに異なる構成(例えば2レーンや8レーンなど)とした場合にも、対応が容易になるわけだ。

 このMLDの回路は、外部からはレーン数変換に見えることになる。「100GBASE-SR10」なら、10レーンのCAUIで出力も10レーンの光ファイバーとなるため1対1だが、「100GBASE-LR4」だと10レーンのCAUIから4レーンの光ファイバーとなるので、10から4への変換となる。

 このように見えることもあって、これを「Gear Box」と呼ばれることも多い(最近はこの用語が200~800G Ethernet向けにごく一般的に使われるようになっている)。

 ちなみに、従来の10G Ethernetと同様、こちらもモジュールのかたちで実装したいとのニーズは当然多かった。そんなわけで、インターフェースはCAUIあるいはXLAUIとなったわけだ。

ピン不足をカバーする40G/100G対応のトランシーバー規格

 ただし、10Gbps×4または10Gbps×10では信号の本数が多く、既存のモジュールではピンが足りないため、当然そのままというわけにはいかなかった。これに関しては、業界団体であるCFP MSAが仕様を策定した。CFPはC Form-factor Pluggableの、MSAはMulti-Source Agreementの略である。

 要するに100Gのプラグイン可能なトランシーバーモジュールについて、複数メーカーで共通仕様を策定し、これを遵守しようという話だ。このあたりは『XENPAK→X2→XFP→SFP+と移った10GBASEのトランシーバーモジュール規格』で紹介した「XENPAK MSA」や「X2 MSA」の場合と同じだ。

CFP MSAのウェブページに示されているそれぞれのモジュールの寸法図。ちなみにこの高さはヒートシンクを付けない場合で、ヒートシンクを付ければ倍増する

 2009年3月、Finisar Corporation、Opnext, Inc、住友電工とその子会社のExcelight Communications, Incは、共同でCFP MSAを設立し、40G/100Gのトランシーバー規格を定めることを発表した。そして翌2010年6月、Avago Technologiesをメンバー企業に加えるとともに、CFP MSA Revision 1.4のSpecificationを発表している。

 CFPモジュールの寸法図をみると、最初に定義されたのが一番左のCFPである。最初に定義されたCFPは、XENPAK並みというか、厚みこそXENPAKよりやや薄いが、大きさそのものはXENPAK2つ分よりもまだかなり大きいものだったが、SFP+のモジュール10個分よりは小さく、その意味ではスペースの節約にはなっていた。

3.3VおよびGNDのピン数がかなり多いのが気になるが、消費電力の多さを考えれば致し方ないところか。出典はCFP MSA Hardware Specification Version 1.4のTable 5-6

 そのモジュールは148ピンの構成だ。やけに3.3Vが多いと思われるかもしれないが、この初代CFPの場合はPower Classが1~4まで定義されていて、1で8W以下、2が16W以下、3が24W以下、4で32W以下となっている。32Wということは、3.3V電源だとほぼ10Aほどが流れる計算なので、余裕を見て(というか、安全性を高めるために)ピンあたり500mAほどに抑えるとすると、20ピンほどが必要なのは、仕方ないところだろう。

 ちなみに信号電圧は、いくつかの制御ピンを除くと1.2Vだし、送受信の10対の信号は当然ディファレンシャルである。この10対の信号ピン全てを使えば100Gを、4対だけでも40Gを伝送できるわけだ。

大原 雄介

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