メディア非依存インターフェース:ポートの電気的な側面
スイッチ ASIC や NIC コントローラー内の Ethernet MAC と、銅線対・光ファイバー・バックプレーンといった伝送路との間には、標準化された電気的インターフェースが存在します。IEEE はこの系列を メディア非依存インターフェース(MII)と呼びます。合意されたインターフェースさえ話せれば、 MAC は相手側が銅線 PHY か SFP ケージか 400G モジュールかを気にしません。イーサネットは世代が進むたびに新しいインターフェースを追加してきました。10/100 向けの MII と RMII、ギガビット向けの GMII/RGMII/SGMII、10G 向けの XGMII/XAUI/XFI/SFI、そしてそれ以降のすべてを担う AUI ファミリー(CAUI-4、400GAUI-8、800GAUI-8)です。この章では、トランシーバーの視点からこれらを説明します。ケージに何が届くのか、銅線 SFP が何をエミュレートしなければならないのか、そして「モードが違う」ポートが問題のない良品モジュールを拒否するのはなぜか、という点です。
レイヤーが分かれている理由
| レイヤー | 存在場所 | 次のレイヤーへのインターフェース |
|---|---|---|
| MAC(フレーミング、アドレス) | スイッチ ASIC、NIC コントローラー、SoC | 調整サブレイヤー → xMII |
| PCS(符号化:8b/10b、64b/66b、FEC) | プラガブルでは ASIC/コントローラー、銅線では PHY チップ | PMA |
| PMA/SerDes | ASIC の SerDes または PHY | モジュールまたは伝送路へ向かう AUI レーン |
| PMD(レーザー、銅線ドライバー) | トランシーバーモジュールまたは PHY チップ | 光ファイバー/ケーブル |
プラガブル光学部品の場合、PCS と SerDes はホスト側にとどまり、モジュールはシリアルレーン(SFI、CAUI-4、400GAUI-8)を受け取って光に変換します。銅線の場合は PHY チップが PCS+PMA+PMD を担い、パラレル(RGMII)またはシリアル(SGMII)インターフェースで MAC と通信します。銅線 SFP はその PHY をモジュール内部に収めるため、ケージは SGMII または 1000BASE-X をそこまで届ける必要があります(SGMII と直列ギガビット)。
インターフェース一覧
| インターフェース | レート | 形式 | 信号数 | 伝送距離 | 規定元 | 代表的な用途 |
|---|---|---|---|---|---|---|
| MII | 10/100 | 4 ビットパラレル @ 2.5/25 MHz | 16–18 | cm | IEEE 802.3 Cl. 22 | レガシーな MAC ↔ PHY |
| RMII | 10/100 | 2 ビット @ 50 MHz | 7–9 | cm | RMII Consortium | 組み込み SoC ↔ PHY |
| SMII / SS-SMII | 10/100 | 1 ビット @ 125 MHz | ポートあたり 2–3 | cm | Cisco | マルチポート PHY |
| GMII | 1G(+10/100) | 8 ビット @ 125 MHz | 24+ | cm | Cl. 35 | MAC ↔ PHY、現在は主にオンチップ |
| RGMII | 1G(+10/100) | 4 ビット DDR @ 125 MHz | 12 | ≤ 10–15 cm | HP/Marvell RGMII v1.3/2.0 | 小型スイッチ/ルーターにおける SoC ↔ 銅線 PHY |
| TBI / RTBI | 1G | 10 ビット @ 125 MHz | 20+ | cm | Cl. 36 | MAC ↔ 外部 SerDes(レガシー) |
| 1000BASE-X(SerDes) | 1G | 1 レーン 1.25 GBd、8b/10b | 2 差動対 | 50 cm+ | Cl. 36/37 | 1G で SFP ケージが伝送するもの |
| SGMII | 10/100/1000 | 1 レーン 1.25 GBd、8b/10b | 2 対(+ クロック) | 50 cm+ | Cisco SGMII v1.8 | MAC ↔ 銅線 PHY;MAC ↔ 銅線 SFP |
| 2500BASE-X | 2.5G | SGMII/1000BASE-X レートの 1.25 倍:3.125 GBd | 2 対 | 50 cm | 事実上の標準 | 2.5G SFP、PON スティック |
| QSGMII | 4 × 1G | 1 レーン 5 GBd | 2 対 | 50 cm | Cisco | ASIC ↔ 4連銅線 PHY |
| USXGMII | 10M–10G | 1 レーン 10.3125 GBd、64b/66b | 2 対 | 30 cm | Cisco/Marvell | ASIC ↔ mGig PHY;10GBASE-T SFP+ |
| XGMII | 10G | 32 ビット DDR @ 156.25 MHz | 74 | < 7 cm | Cl. 46 | オンチップ |
| XAUI | 10G | 4 × 3.125 GBd、8b/10b | 8 対 | 50 cm | Cl. 47 | XENPAK/X2 モジュール、レガシー PHY |
| XFI / SFI | 10G | 1 × 10.3125 GBd、64b/66b | 2 対 | 20–30 cm | XFP MSA / SFF-8431 | XFP/SFP+ ケージ |
| 10GBASE-KR | 10G | 1 × 10.3125 GBd | 2 対 | 1 m バックプレーン | Cl. 72 | バックプレーン、10GBASE-T PHY |
| 25GAUI | 25G | 1 × 25.78 GBd NRZ | 2 対 | C2M | Annex 109A/B | SFP28 ケージ |
| XLAUI / CAUI-10 | 40G / 100G | 4 / 10 × 10.3125 GBd | 8 / 20 対 | C2C/C2M | Annex 83A/B | QSFP+ / CFP、CXP |
| CAUI-4 | 100G | 4 × 25.78 GBd NRZ | 8 対 | C2M | Annex 83D/E | QSFP28 ケージ |
| 50GAUI-2 / -1 | 50G | 2 × 26.5625 NRZ / 1 × 26.5625 GBd PAM4 | 4 / 2 対 | C2M | Annex 135B–E | SFP56 |
| 100GAUI-4 / -2 / -1 | 100G | 4 × NRZ / 2 × 53 GBd PAM4 / 1 × 106 GBd PAM4 | — | C2M | Annex 135D–G、120G | QSFP28(PAM4 系)、QSFP112 |
| 200GAUI-8 / -4 / -2 | 200G | 8 × 26.5 PAM4 / 4 × 53 / 2 × 106 | — | C2M | Annex 120C–G | QSFP56、QSFP112 |
| 400GAUI-16 / -8 / -4 | 400G | 16 × 25 NRZ / 8 × 53 PAM4 / 4 × 106 PAM4 | — | C2M | Annex 120B–G | CFP8 / QSFP-DD, OSFP / QSFP112、OSFP |
| 800GAUI-8 / -4 | 800G | 8 × 106 PAM4 / 4 × 212 PAM4 | — | C2M | 802.3df / dj | OSFP、QSFP-DD800 / OSFP224、OSFP-XD |
詳細:MII、RMII、GMII、RGMII、SGMII、1000BASE-X、 QSGMII、USXGMII、XGMII、XAUI、SFI と AUI ファミリー。
各インターフェースの配置
| デバイス | MAC → … | … → 伝送路 |
|---|---|---|
| 48 ポートの 1G 銅線スイッチ | ASIC → QSGMII → 4連 PHY | PHY → RJ45 |
| 小型ルーター/SoC ボード | SoC → RGMII または SGMII → PHY | PHY → RJ45、または SoC → 1000BASE-X/SGMII → SFP ケージ |
| 10G/25G スイッチまたは NIC の SFP+/SFP28 ポート | ASIC の SerDes → SFI / 25GAUI → ケージ | モジュール → 光ファイバーまたは DAC |
| 100G QSFP28 ポート | ASIC → CAUI-4(4 × 25G) → ケージ | モジュール → 4 波長または光ファイバー4心 |
| 400G QSFP-DD/OSFP ポート | ASIC → 400GAUI-8(8 × 50G PAM4) → ケージ | モジュールのギアボックス → 4 × 100G 光信号 |
| 800G OSFP ポート | ASIC → 800GAUI-8(8 × 100G PAM4) → ケージ | モジュール → 8 × 100G(DR8)または 4 × 200G |
| 銅線 1000BASE-T SFP | ホスト 1000BASE-X または SGMII → モジュールの PHY | PHY → RJ45 |
| 10GBASE-T SFP+ | ホスト SFI(10GBASE-R) → モジュールの PHY(USXGMII クラス) | PHY → RJ45 |
| マルチギガ RJ45 スイッチポート | ASIC → USXGMII → mGig PHY | 2.5/5/10GBASE-T |
PHY とモジュールの管理
| 銅線 PHY チップ | プラガブルモジュール | |
|---|---|---|
| バス | MDIO/MDC(Clause 22:5 ビットアドレス、32 × 16 ビットレジスタ;Clause 45:10G 以上向けのデバイス/レジスタペア) | I²C 2線式(A0h/A2h、CMIS ページ)(2線式インターフェース) |
| リンク状態 | PHY ステータスレジスタ(reg 1)、RGMII/SGMII ではインバンド | LOS/LOL ピンとフラグ、DDM |
| Linux ツール | mii-tool、phytool、ethtool(PHY ドライバー) | ethtool -m、i2c-dev(NIC ツール) |
| 銅線 SFP の特殊事情 | モジュール内部の PHY には、第2のアドレス(例:Marvell 88E1111 系モジュールでは 0xAC)またはベンダーページ経由で I²C からアクセスできる(MDIO トンネリング) | — |
トランシーバー作業にとって重要な理由
- ケージのモード。 1G の SFP ポートは 1000BASE-X または SGMII のいずれかのモードで動作し、銅線 SFP はそれぞれで挙動が異なります。10/100 のクライアントは SGMII でのみ動作します(その違いを隠すモジュールを使う場合を除く)(SGMII と直列ギガビット)。
- レートと符号化。 モジュールはホストのレーンレートと符号化を受け入れる必要があります。SFI は 10.3125 GBd、CAUI-4 は 25.78、400GAUI-8 は PAM4 です。これはコンプライアンスコードと CMIS のアプリケーションがアドバタイズする内容そのものです(コンプライアンスコード)。
- 誰がリタイミングするか。 SFP+ モジュールはリニア/リミッティングで、ホスト側が等化を担うことが多く、25G 以上のモジュールは CDR を、PAM4 モジュールは DSP を搭載します。LPO モジュールは再びリニアになり、ホストの SerDes に依存します(CDR、DSP と LPO)。
- 電気レーン ≠ 光レーン。 400G-FR4 は8本の電気レーンを受け取り、4波長を送出します。ギアボックスはモジュール内にあります(XGMII、XAUI と AUI ファミリー)。
- Linux は EEPROM からインターフェースを選ぶ。 カーネルの SFP レイヤーはバイト 3–10、 12、36 を読み取り、1000BASE-X、SGMII、2500BASE-X、10GBASE-R のいずれかを判断します。準拠バイトが誤っていると、良品モジュールでも誤ったモードでリンクしてしまいます(メモリマップ)。
関連資料
- MII、RMII、GMII、RGMII — パラレルインターフェース:ピン、クロック、RGMII の遅延モード、インバンドステータス、MDIO 経由の PHY 管理、典型的な故障。
- SGMII、1000BASE-X、QSGMII、USXGMII — PHY と SFP ケージへのシリアルインターフェース:オートネゴシエーションの違い、銅線 SFP、100BASE-FX、2.5G、マルチギガ、Linux がモードを選ぶ仕組み。
- XGMII、XAUI、XFI/SFI と AUI ファミリー — 10G から 800G まで:レーン数、C2C と C2M の違い、準拠点、OIF CEI との対応関係、電気レーンから光レーンへの対応、リタイム型とリニア型の違い。
CodingBox では
CodingBox が表示するバイトは、モジュールがどのホストインターフェースに対応しているかの申告です。コンプライアンスコード(1000BASE-T → SGMII/1000BASE-X 対応の銅線)、公称ビットレート、符号化バイト(8b/10b か 64b/66b か PAM4 か)、CDR ビット、CMIS のホストインターフェース ID です。これらを編集すると、ホストが試みるインターフェースが変わります(Check transceiver、コンプライアンスコード)。