Медиа-независимые интерфейсы: электрическая сторона порта
Между 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 / SerDes | SerDes 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 и последовательный гигабит).
Лестница
| Интерфейс | Скорость | Форма | Сигналы | Дальность | Определён | Типичное место |
|---|---|---|---|---|---|---|
| MII | 10/100 | 4-бит параллельный @ 2,5/25 МГц | 16–18 | см | IEEE 802.3 Cl. 22 | старый MAC ↔ PHY |
| RMII | 10/100 | 2-бит @ 50 МГц | 7–9 | см | RMII Consortium | встраиваемый SoC ↔ PHY |
| SMII / SS-SMII | 10/100 | 1-бит @ 125 МГц | 2–3 на порт | см | Cisco | многопортовые PHY |
| GMII | 1G (+10/100) | 8-бит @ 125 МГц | 24+ | см | Cl. 35 | MAC ↔ PHY, сегодня в основном внутри чипа |
| RGMII | 1G (+10/100) | 4-бит DDR @ 125 МГц | 12 | ≤ 10–15 см | HP/Marvell RGMII v1.3/2.0 | SoC ↔ медный PHY на малых коммутаторах/роутерах |
| TBI / RTBI | 1G | 10-бит @ 125 МГц | 20+ | см | Cl. 36 | MAC ↔ внешний SerDes (наследие) |
| 1000BASE-X (SerDes) | 1G | 1 канал 1,25 ГБод, 8b/10b | 2 диф. пары | 50 см+ | Cl. 36/37 | что несёт клетка SFP на 1G |
| SGMII | 10/100/1000 | 1 канал 1,25 ГБод, 8b/10b | 2 пары (+ такты) | 50 см+ | Cisco SGMII v1.8 | MAC ↔ медный PHY; MAC ↔ медный SFP |
| 2500BASE-X | 2,5G | 2,5 × 1000BASE-X: 3,125 ГБод | 2 пары | 50 см | де-факто | SFP 2,5G, PON-стики |
| QSGMII | 4 × 1G | 1 канал 5 ГБод | 2 пары | 50 см | Cisco | ASIC ↔ четверной медный PHY |
| USXGMII | 10M–10G | 1 канал 10,3125 ГБод, 64b/66b | 2 пары | 30 см | Cisco/Marvell | ASIC ↔ mGig PHY; 10GBASE-T SFP+ |
| XGMII | 10G | 32-бит DDR @ 156,25 МГц | 74 | < 7 см | Cl. 46 | внутри чипа |
| XAUI | 10G | 4 × 3,125 ГБод, 8b/10b | 8 пар | 50 см | Cl. 47 | модули XENPAK/X2, старые PHY |
| XFI / SFI | 10G | 1 × 10,3125 ГБод, 64b/66b | 2 пары | 20–30 см | MSA XFP / SFF-8431 | клетка XFP / SFP+ |
| 10GBASE-KR | 10G | 1 × 10,3125 ГБод | 2 пары | 1 м объединительной платы | Cl. 72 | объединительные платы, PHY 10GBASE-T |
| 25GAUI | 25G | 1 × 25,78 ГБод NRZ | 2 пары | C2M | Annex 109A/B | клетка SFP28 |
| XLAUI / CAUI-10 | 40G / 100G | 4 / 10 × 10,3125 ГБод | 8 / 20 пар | C2C/C2M | Annex 83A/B | QSFP+ / CFP, CXP |
| CAUI-4 | 100G | 4 × 25,78 ГБод NRZ | 8 пар | C2M | Annex 83D/E | клетка QSFP28 |
| 50GAUI-2 / -1 | 50G | 2 × 26,5625 NRZ / 1 × 26,5625 ГБод PAM4 | 4 / 2 пары | C2M | Annex 135B–E | SFP56 |
| 100GAUI-4 / -2 / -1 | 100G | 4 × NRZ / 2 × 53 ГБод PAM4 / 1 × 106 ГБод 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 → четверные PHY | PHY → RJ45 |
| Малый роутер / плата SoC | SoC → RGMII или SGMII → PHY | PHY → RJ45; или SoC → 1000BASE-X/SGMII → клетка SFP |
| Порт SFP+/SFP28 коммутатора 10G/25G или NIC | SerDes ASIC → SFI / 25GAUI → клетка | модуль → волокно или DAC |
| Порт QSFP28 100G | ASIC → CAUI-4 (4 × 25G) → клетка | модуль → 4 λ или 4 волокна |
| Порт QSFP-DD / OSFP 400G | ASIC → 400GAUI-8 (8 × 50G PAM4) → клетка | гирбокс модуля → 4 × 100G оптических |
| Порт OSFP 800G | ASIC → 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 |
| Мультигигабитный порт RJ45 | ASIC → USXGMII → mGig PHY | 2,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 |
| Инструменты Linux | mii-tool, phytool, ethtool (драйвер PHY) | ethtool -m, i2c-dev (Инструменты NIC) |
| Особенность медных SFP | PHY внутри модуля доступен по 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, Коды соответствия).