Interfejsy niezależne od nośnika: elektryczna strona portu
Między MAC Ethernet wewnątrz ASIC przełącznika lub kontrolera NIC a medium — parą miedzianą, światłowodem, backplane'em — znajduje się znormalizowany interfejs elektryczny. IEEE nazywa tę rodzinę interfejsami niezależnymi od medium (MII): MAC-owi nie zależy na tym, czy po drugiej stronie jest miedziany PHY, klatka SFP czy moduł 400G, dopóki posługuje się ona uzgodnionym interfejsem. Każda kolejna generacja Ethernetu dodawała własny: MII i RMII dla 10/100, GMII/RGMII/SGMII dla gigabitu, XGMII/XAUI/XFI/SFI dla 10G oraz rodzina AUI (CAUI-4, 400GAUI-8, 800GAUI-8) dla wszystkiego, co pojawiło się później. Ten rozdział opisuje je z punktu widzenia transceivera — co trafia do klatki, co musi emulować miedziany SFP i dlaczego port „w niewłaściwym trybie” odrzuca całkowicie sprawny moduł.
Dlaczego istnieje taki podział
| Warstwa | Znajduje się w | Interfejs do kolejnej warstwy |
|---|---|---|
| MAC (ramkowanie, adresy) | ASIC przełącznika, kontroler NIC, SoC | podwarstwa uzgadniania → xMII |
| PCS (kodowanie: 8b/10b, 64b/66b, FEC) | ASIC/kontroler dla modułów wpinanych; układ PHY dla miedzi | PMA |
| PMA / SerDes | SerDes w ASIC lub PHY | linie AUI do modułu lub medium |
| PMD (laser, sterownik miedzi) | moduł transceivera lub układ PHY | światłowód / kabel |
Przy optyce wpinanej PCS i SerDes pozostają po stronie hosta; moduł odbiera linie szeregowe (SFI, CAUI-4, 400GAUI-8) i zamienia je na światło. Dla miedzi układ PHY realizuje PCS+PMA+PMD i komunikuje się z MAC przez interfejs równoległy (RGMII) lub szeregowy (SGMII). Miedziany SFP umieszcza ten PHY wewnątrz modułu, więc klatka musi doprowadzać do niego SGMII lub 1000BASE-X (SGMII i szeregowy gigabit).
Drabina
| Interfejs | Szybkość | Forma | Sygnały | Zasięg | Definiuje | Typowe miejsce |
|---|---|---|---|---|---|---|
| MII | 10/100 | 4-bitowy równoległy @ 2,5/25 MHz | 16–18 | cm | IEEE 802.3 Cl. 22 | starsze MAC ↔ PHY |
| RMII | 10/100 | 2-bitowy @ 50 MHz | 7–9 | cm | RMII Consortium | wbudowany SoC ↔ PHY |
| SMII / SS-SMII | 10/100 | 1-bitowy @ 125 MHz | 2–3 na port | cm | Cisco | wieloportowe PHY |
| GMII | 1G (+10/100) | 8-bitowy @ 125 MHz | 24+ | cm | Cl. 35 | MAC ↔ PHY, dziś głównie on-chip |
| RGMII | 1G (+10/100) | 4-bitowy DDR @ 125 MHz | 12 | ≤ 10–15 cm | HP/Marvell RGMII v1.3/2.0 | SoC ↔ miedziany PHY w małych przełącznikach/routerach |
| TBI / RTBI | 1G | 10-bitowy @ 125 MHz | 20+ | cm | Cl. 36 | MAC ↔ zewnętrzny SerDes (starsze rozwiązanie) |
| 1000BASE-X (SerDes) | 1G | 1 linia 1,25 GBd, 8b/10b | 2 pary różnicowe | 50 cm+ | Cl. 36/37 | to, co klatka SFP przenosi przy 1G |
| SGMII | 10/100/1000 | 1 linia 1,25 GBd, 8b/10b | 2 pary (+ zegary) | 50 cm+ | Cisco SGMII v1.8 | MAC ↔ miedziany PHY; MAC ↔ miedziany SFP |
| 2500BASE-X | 2,5G | 1,25 × szybkość SGMII/1000BASE-X: 3,125 GBd | 2 pary | 50 cm | de facto | SFP 2,5G, PON stick |
| QSGMII | 4 × 1G | 1 linia 5 GBd | 2 pary | 50 cm | Cisco | ASIC ↔ poczwórny miedziany PHY |
| USXGMII | 10M–10G | 1 linia 10,3125 GBd, 64b/66b | 2 pary | 30 cm | Cisco/Marvell | ASIC ↔ PHY mGig; 10GBASE-T SFP+ |
| XGMII | 10G | 32-bitowy DDR @ 156,25 MHz | 74 | < 7 cm | Cl. 46 | on-chip |
| XAUI | 10G | 4 × 3,125 GBd, 8b/10b | 8 par | 50 cm | Cl. 47 | moduły XENPAK/X2, starsze PHY |
| XFI / SFI | 10G | 1 × 10,3125 GBd, 64b/66b | 2 pary | 20–30 cm | XFP MSA / SFF-8431 | klatka XFP / SFP+ |
| 10GBASE-KR | 10G | 1 × 10,3125 GBd | 2 pary | 1 m backplane | Cl. 72 | backplane'y, PHY 10GBASE-T |
| 25GAUI | 25G | 1 × 25,78 GBd NRZ | 2 pary | C2M | Annex 109A/B | klatka SFP28 |
| XLAUI / CAUI-10 | 40G / 100G | 4 / 10 × 10,3125 GBd | 8 / 20 par | C2C/C2M | Annex 83A/B | QSFP+ / CFP, CXP |
| CAUI-4 | 100G | 4 × 25,78 GBd NRZ | 8 par | C2M | Annex 83D/E | klatka QSFP28 |
| 50GAUI-2 / -1 | 50G | 2 × 26,5625 NRZ / 1 × 26,5625 GBd PAM4 | 4 / 2 pary | 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 (warianty 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 |
Szczegóły: MII, RMII, GMII, RGMII, SGMII, 1000BASE-X, QSGMII, USXGMII, XGMII, XAUI, SFI i rodzina AUI.
Gdzie który występuje
| Urządzenie | MAC → … | … → medium |
|---|---|---|
| 48-portowy miedziany przełącznik 1G | ASIC → QSGMII → poczwórne PHY | PHY → RJ45 |
| Mały router / płytka SoC | SoC → RGMII lub SGMII → PHY | PHY → RJ45; lub SoC → 1000BASE-X/SGMII → klatka SFP |
| Port SFP+/SFP28 przełącznika lub NIC 10G/25G | SerDes ASIC → SFI / 25GAUI → klatka | moduł → światłowód lub DAC |
| Port 100G QSFP28 | ASIC → CAUI-4 (4 × 25G) → klatka | moduł → 4 λ lub 4 światłowody |
| Port 400G QSFP-DD / OSFP | ASIC → 400GAUI-8 (8 × 50G PAM4) → klatka | gearbox modułu → 4 × 100G optycznie |
| Port 800G OSFP | ASIC → 800GAUI-8 (8 × 100G PAM4) → klatka | moduł → 8 × 100G (DR8) lub 4 × 200G |
| Miedziany SFP 1000BASE-T | host 1000BASE-X lub SGMII → PHY modułu | PHY → RJ45 |
| 10GBASE-T SFP+ | host SFI (10GBASE-R) → PHY modułu (klasy USXGMII) | PHY → RJ45 |
| Multigigabitowy port RJ45 przełącznika | ASIC → USXGMII → PHY mGig | 2,5/5/10GBASE-T |
Zarządzanie: PHY a moduły
| Miedziany układ PHY | Moduł wpinany | |
|---|---|---|
| Magistrala | MDIO/MDC (Clause 22: adres 5-bitowy, 32 × 16-bitowe rejestry; Clause 45: pary urządzenie/rejestr dla 10G+) | I²C dwuprzewodowy (A0h/A2h, strony CMIS) (Interfejs dwuprzewodowy) |
| Stan łącza | rejestr statusu PHY (reg 1), in-band w RGMII/SGMII | piny i flagi LOS/LOL, DDM |
| Narzędzia Linuksa | mii-tool, phytool, ethtool (sterownik PHY) | ethtool -m, i2c-dev (Narzędzia NIC) |
| Osobliwość miedzianego SFP | PHY wewnątrz modułu jest dostępny przez I²C pod drugim adresem (np. 0xAC w modułach opartych na Marvell 88E1111) lub przez strony producenta — MDIO tunelowane | — |
Dlaczego to ważne w pracy z transceiverami
- Tryb klatki. Port SFP 1G może pracować w trybie 1000BASE-X lub SGMII; miedziany SFP zachowuje się w każdym z nich inaczej, a klienci 10/100 działają tylko w SGMII (albo z modułem, który maskuje tę różnicę) (SGMII i szeregowy gigabit).
- Szybkość i kodowanie. Moduł musi akceptować szybkość i kodowanie linii hosta: SFI przy 10,3125 GBd, CAUI-4 przy 25,78, 400GAUI-8 PAM4 — to właśnie deklarują kody zgodności i aplikacje CMIS (Kody zgodności).
- Kto retimuje. Moduły SFP+ są często liniowe/ograniczające z korekcją po stronie hosta; moduły 25G+ mają CDR; moduły PAM4 mają DSP; moduły LPO znów są liniowe i zależą od SerDes hosta (CDR, DSP i LPO).
- Linie elektryczne ≠ optyczne. 400G-FR4 przyjmuje 8 linii elektrycznych i emituje 4 długości fali; gearbox znajduje się w module (XGMII, XAUI i rodzina AUI).
- Linux wybiera interfejs na podstawie EEPROM. Warstwa SFP jądra odczytuje bajty 3–10, 12 i 36, aby wybrać między 1000BASE-X, SGMII, 2500BASE-X, 10GBASE-R — błędny bajt zgodności powoduje, że sprawny moduł łączy się w niewłaściwym trybie (Mapa pamięci).
Dalsza lektura
- MII, RMII, GMII, RGMII — interfejsy równoległe: piny, zegary, tryby opóźnienia RGMII, status in-band, zarządzanie PHY przez MDIO, typowe usterki.
- SGMII, 1000BASE-X, QSGMII, USXGMII — interfejsy szeregowe do PHY i klatek SFP: różnice autonegocjacji, miedziane SFP, 100BASE-FX, 2,5G, multigigabit, jak Linux wybiera tryb.
- XGMII, XAUI, XFI/SFI i rodzina AUI — od 10G do 800G: liczba linii, C2C a C2M, punkty zgodności, mapowanie OIF CEI, mapowanie linii elektrycznych na optyczne, moduły retimowane a liniowe.
W CodingBox
Bajty pokazywane przez CodingBox to deklaracja modułu, które interfejsy hosta obsługuje: kody zgodności (1000BASE-T → miedź zdolna do SGMII/1000BASE-X), znamionowa szybkość bitowa, bajt kodowania (8b/10b a 64b/66b a PAM4), bity CDR i identyfikatory interfejsu hosta CMIS. Edycja tych bajtów zmienia interfejs, którego spróbuje użyć host (Check transceiver, Kody zgodności).