CodingBox 說明文件

媒體獨立介面:端口的電氣側

交換機 ASIC 或 NIC 控制器內部的以太網 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 必須模擬甚麼,以及為甚麼處於"錯誤模式"的端口會拒絕一個完全正常的模組。

銅纜 PHY 端口、可插拔光模組和銅纜 SFP 的分層結構 MAC → xMII → PCS → PMA/AUI → PMD

為甚麼要分層

位置到下一層的介面
MAC(成幀、地址)交換機 ASIC、NIC 控制器、SoC協調子層 → xMII
PCS(編碼:8b/10b、64b/66b、FEC)可插拔模組由 ASIC/控制器實現;銅纜由 PHY 晶片實現PMA
PMA / SerDesASIC 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 與串行千兆)。

介面階梯

介面速率形式信號傳輸距離定義標準典型場景
MII10/1004 位元並行 @ 2.5/25 MHz16–18cmIEEE 802.3 Cl. 22舊式 MAC ↔ PHY
RMII10/1002 位元 @ 50 MHz7–9cmRMII Consortium嵌入式 SoC ↔ PHY
SMII / SS-SMII10/1001 位元 @ 125 MHz每端口 2–3cmCisco多端口 PHY
GMII1G(+10/100)8 位元 @ 125 MHz24+cmCl. 35MAC ↔ PHY,如今多用於片內
RGMII1G(+10/100)4 位元 DDR @ 125 MHz12≤ 10–15 cmHP/Marvell RGMII v1.3/2.0小型交換機/路由器上的 SoC ↔ 銅纜 PHY
TBI / RTBI1G10 位元 @ 125 MHz20+cmCl. 36MAC ↔ 外部 SerDes(舊式)
1000BASE-X(SerDes)1G1 通道 1.25 GBd,8b/10b2 對差分線50 cm+Cl. 36/37SFP 籠子在 1G 下傳送的內容
SGMII10/100/10001 通道 1.25 GBd,8b/10b2 對(+ 時鐘)50 cm+Cisco SGMII v1.8MAC ↔ 銅纜 PHY;MAC ↔ 銅纜 SFP
2500BASE-X2.5GSGMII/1000BASE-X 速率的 1.25 倍:3.125 GBd2 對50 cm事實標準2.5G SFP、PON 棒
QSGMII4 × 1G1 通道 5 GBd2 對50 cmCiscoASIC ↔ 四路銅纜 PHY
USXGMII10M–10G1 通道 10.3125 GBd,64b/66b2 對30 cmCisco/MarvellASIC ↔ mGig PHY;10GBASE-T SFP+
XGMII10G32 位元 DDR @ 156.25 MHz74< 7 cmCl. 46片內
XAUI10G4 × 3.125 GBd,8b/10b8 對50 cmCl. 47XENPAK/X2 模組、舊式 PHY
XFI / SFI10G1 × 10.3125 GBd,64b/66b2 對20–30 cmXFP MSA / SFF-8431XFP / SFP+ 籠子
10GBASE-KR10G1 × 10.3125 GBd2 對1 m 背板Cl. 72背板、10GBASE-T PHY
25GAUI25G1 × 25.78 GBd NRZ2 對C2MAnnex 109A/BSFP28 籠子
XLAUI / CAUI-1040G / 100G4 / 10 × 10.3125 GBd8 / 20 對C2C/C2MAnnex 83A/BQSFP+ / CFP、CXP
CAUI-4100G4 × 25.78 GBd NRZ8 對C2MAnnex 83D/EQSFP28 籠子
50GAUI-2 / -150G2 × 26.5625 NRZ / 1 × 26.5625 GBd PAM44 / 2 對C2MAnnex 135B–ESFP56
100GAUI-4 / -2 / -1100G4 × NRZ / 2 × 53 GBd PAM4 / 1 × 106 GBd PAM4C2MAnnex 135D–G、120GQSFP28(PAM4 變體)、QSFP112
200GAUI-8 / -4 / -2200G8 × 26.5 PAM4 / 4 × 53 / 2 × 106C2MAnnex 120C–GQSFP56、QSFP112
400GAUI-16 / -8 / -4400G16 × 25 NRZ / 8 × 53 PAM4 / 4 × 106 PAM4C2MAnnex 120B–GCFP8 / QSFP-DD、OSFP / QSFP112、OSFP
800GAUI-8 / -4800G8 × 106 PAM4 / 4 × 212 PAM4C2M802.3df / djOSFP、QSFP-DD800 / OSFP224、OSFP-XD

詳情參見:MII、RMII、GMII、RGMIISGMII、1000BASE-X、QSGMII、USXGMIIXGMII、XAUI、SFI 與 AUI 家族

各介面的位置

設備MAC → …… → 介質
48 口 1G 銅纜交換機ASIC → QSGMII → 四路 PHYPHY → RJ45
小型路由器 / SoC 板卡SoC → RGMIISGMII → PHYPHY → 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 → 模組的 PHYPHY → RJ45
10GBASE-T SFP+主機 SFI(10GBASE-R) → 模組的 PHY(USXGMII 類)PHY → RJ45
多速率 RJ45 交換機端口ASIC → USXGMII → mGig PHY2.5/5/10GBASE-T

PHY 與模組的管理方式

銅纜 PHY 晶片可插拔模組
總線MDIO/MDC(Clause 22:5 位元地址,32 個 16 位元暫存器;Clause 45:面向 10G+ 的設備/暫存器對)I²C 雙線(A0h/A2h,CMIS 頁面)(雙線介面
鏈路狀態PHY 狀態暫存器(暫存器 1),RGMII/SGMII 上的帶內狀態LOS/LOL 引腳與旗標、DDM
Linux 工具mii-toolphytoolethtool(PHY 驅動程式)ethtool -m、i2c-dev(NIC 工具
銅纜 SFP 的特殊之處模組內部的 PHY 可通過 I²C 的第二地址訪問(例如基於 Marvell 88E1111 的模組使用 0xAC),或通過廠商頁面訪問——即 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 (參見CDRDSP 與 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合規代碼)。


如果您發現本文有不準確之處或錯誤,請選取相應片段並按 Ctrl+Enter,即可