CodingBox Документация

Медиа-независимые интерфейсы: электрическая сторона порта

Между Ethernet-MAC внутри ASIC коммутатора или контроллера сетевой карты и средой — медной парой, волокном, объединительной платой — стоит стандартизованный электрический интерфейс. IEEE называет это семейство медиа-независимыми интерфейсами (MII): MAC не заботит, что на той стороне — медный PHY, клетка SFP или модуль 400G, пока оно говорит на согласованном интерфейсе. Каждое поколение Ethernet добавляло свой: MII и RMII для 10/100, GMII/RGMII/SGMII для гигабита, XGMII/XAUI/XFI/SFI для 10G и семейство AUI (CAUI-4, 400GAUI-8, 800GAUI-8) для всего последующего. Этот подраздел объясняет их с точки зрения трансивера — что приходит к клетке, что должен эмулировать медный SFP и почему порт «не в том режиме» отвергает совершенно исправный модуль.

Зачем нужно разделение

УровеньГде живётИнтерфейс к следующему уровню
MAC (кадрирование, адреса)ASIC коммутатора, контроллер NIC, SoCподуровень согласования → xMII
PCS (кодирование: 8b/10b, 64b/66b, FEC)ASIC/контроллер для съёмных модулей; чип PHY для медиPMA
PMA / SerDesSerDes ASIC или PHYканалы AUI к модулю или среде
PMD (лазер, медный драйвер)модуль трансивера или чип PHYволокно / кабель

Для съёмной оптики PCS и SerDes остаются в хосте; модуль получает последовательные каналы (SFI, CAUI-4, 400GAUI-8) и превращает их в свет. Для меди чип PHY делает PCS+PMA+PMD и говорит с MAC по параллельному (RGMII) или последовательному (SGMII) интерфейсу. Медный SFP помещает этот PHY внутрь модуля, так что клетка должна нести к нему SGMII или 1000BASE-X (SGMII и последовательный гигабит).

Лестница

ИнтерфейсСкоростьФормаСигналыДальностьОпределёнТипичное место
MII10/1004-бит параллельный @ 2,5/25 МГц16–18смIEEE 802.3 Cl. 22старый MAC ↔ PHY
RMII10/1002-бит @ 50 МГц7–9смRMII Consortiumвстраиваемый SoC ↔ PHY
SMII / SS-SMII10/1001-бит @ 125 МГц2–3 на портсмCiscoмногопортовые PHY
GMII1G (+10/100)8-бит @ 125 МГц24+смCl. 35MAC ↔ PHY, сегодня в основном внутри чипа
RGMII1G (+10/100)4-бит DDR @ 125 МГц12≤ 10–15 смHP/Marvell RGMII v1.3/2.0SoC ↔ медный PHY на малых коммутаторах/роутерах
TBI / RTBI1G10-бит @ 125 МГц20+смCl. 36MAC ↔ внешний SerDes (наследие)
1000BASE-X (SerDes)1G1 канал 1,25 ГБод, 8b/10b2 диф. пары50 см+Cl. 36/37что несёт клетка SFP на 1G
SGMII10/100/10001 канал 1,25 ГБод, 8b/10b2 пары (+ такты)50 см+Cisco SGMII v1.8MAC ↔ медный PHY; MAC ↔ медный SFP
2500BASE-X2,5G2,5 × 1000BASE-X: 3,125 ГБод2 пары50 смде-фактоSFP 2,5G, PON-стики
QSGMII4 × 1G1 канал 5 ГБод2 пары50 смCiscoASIC ↔ четверной медный PHY
USXGMII10M–10G1 канал 10,3125 ГБод, 64b/66b2 пары30 смCisco/MarvellASIC ↔ mGig PHY; 10GBASE-T SFP+
XGMII10G32-бит DDR @ 156,25 МГц74< 7 смCl. 46внутри чипа
XAUI10G4 × 3,125 ГБод, 8b/10b8 пар50 смCl. 47модули XENPAK/X2, старые PHY
XFI / SFI10G1 × 10,3125 ГБод, 64b/66b2 пары20–30 смMSA XFP / SFF-8431клетка XFP / SFP+
10GBASE-KR10G1 × 10,3125 ГБод2 пары1 м объединительной платыCl. 72объединительные платы, PHY 10GBASE-T
25GAUI25G1 × 25,78 ГБод NRZ2 парыC2MAnnex 109A/Bклетка SFP28
XLAUI / CAUI-1040G / 100G4 / 10 × 10,3125 ГБод8 / 20 парC2C/C2MAnnex 83A/BQSFP+ / CFP, CXP
CAUI-4100G4 × 25,78 ГБод NRZ8 парC2MAnnex 83D/Eклетка QSFP28
50GAUI-2 / -150G2 × 26,5625 NRZ / 1 × 26,5625 ГБод PAM44 / 2 парыC2MAnnex 135B–ESFP56
100GAUI-4 / -2 / -1100G4 × NRZ / 2 × 53 ГБод PAM4 / 1 × 106 ГБод 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, RGMII, SGMII, 1000BASE-X, QSGMII, USXGMII, XGMII, XAUI, SFI и семейство AUI.

Где стоит каждый

УстройствоMAC → …… → среда
Медный коммутатор 48 × 1GASIC → QSGMII → четверные PHYPHY → RJ45
Малый роутер / плата SoCSoC → RGMII или SGMII → PHYPHY → RJ45; или SoC → 1000BASE-X/SGMII → клетка SFP
Порт SFP+/SFP28 коммутатора 10G/25G или NICSerDes ASIC → SFI / 25GAUI → клеткамодуль → волокно или DAC
Порт QSFP28 100GASIC → CAUI-4 (4 × 25G) → клеткамодуль → 4 λ или 4 волокна
Порт QSFP-DD / OSFP 400GASIC → 400GAUI-8 (8 × 50G PAM4) → клеткагирбокс модуля → 4 × 100G оптических
Порт OSFP 800GASIC → 800GAUI-8 (8 × 100G PAM4) → клеткамодуль → 8 × 100G (DR8) или 4 × 200G
Медный SFP 1000BASE-Tхост 1000BASE-X или SGMII → PHY модуляPHY → RJ45
10GBASE-T SFP+хост SFI (10GBASE-R) → PHY модуля (класса USXGMII)PHY → RJ45
Мультигигабитный порт RJ45ASIC → 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 (reg 1), внутриполосно на RGMII/SGMIIпины и флаги LOS/LOL, DDM
Инструменты Linuxmii-tool, phytool, ethtool (драйвер PHY)ethtool -m, i2c-dev (Инструменты NIC)
Особенность медных SFPPHY внутри модуля доступен по I²C по второму адресу (например 0xAC у модулей на Marvell 88E1111) или через вендорские страницы — MDIO туннелируется

Почему это важно для работы с трансиверами

  • Режим клетки. Порт SFP 1G может быть в режиме 1000BASE-X или SGMII; медный SFP ведёт себя в каждом по-разному, а клиенты 10/100 работают только в SGMII (или с модулем, который скрывает разницу) (SGMII и последовательный гигабит).
  • Скорость и кодирование. Модуль должен принимать скорость и кодирование канала хоста: SFI на 10,3125 ГБод, 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, внутриполосный статус, управление PHY по MDIO, типичные неисправности.
  • 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. Их правка меняет то, какой интерфейс попробует хост (Check transceiver, Коды соответствия).