Interfaces independentes de mídia: o lado elétrico da porta
Entre o MAC Ethernet dentro do ASIC do switch ou do controlador da NIC e o meio — par de cobre, fibra, backplane — fica uma interface elétrica padronizada. O IEEE chama essa família de interfaces independentes de mídia (MII): o MAC não se importa se o outro lado é um PHY de cobre, uma gaiola (cage) SFP ou um módulo de 400G, desde que fale a interface combinada. Cada geração do Ethernet adicionou uma: MII e RMII para 10/100, GMII/RGMII/SGMII para gigabit, XGMII/XAUI/XFI/SFI para 10G, e a família AUI (CAUI-4, 400GAUI-8, 800GAUI-8) para tudo desde então. Esta seção as explica do ponto de vista do transceptor: o que chega à gaiola (cage), o que um SFP de cobre precisa emular, e por que uma porta “no modo errado” recusa um módulo perfeitamente bom.
Por que essa divisão existe
| Camada | Está em | Interface para a próxima camada |
|---|---|---|
| MAC (enquadramento, endereços) | ASIC do switch, controlador da NIC, SoC | subcamada de reconciliação → xMII |
| PCS (codificação: 8b/10b, 64b/66b, FEC) | ASIC/controlador para módulos conectáveis; chip PHY para cobre | PMA |
| PMA / SerDes | SerDes do ASIC ou PHY | lanes AUI para o módulo ou meio |
| PMD (laser, driver de cobre) | módulo transceptor ou chip PHY | fibra / cabo |
Nas ópticas conectáveis, o PCS e o SerDes ficam no host; o módulo recebe lanes seriais (SFI, CAUI-4, 400GAUI-8) e converte para luz. No cobre, um chip PHY faz PCS+PMA+PMD e conversa com o MAC por uma interface paralela (RGMII) ou serial (SGMII). Um SFP de cobre coloca esse PHY dentro do módulo, então a gaiola (cage) precisa levar SGMII ou 1000BASE-X até ele (SGMII e gigabit serial).
A escada
| Interface | Taxa | Forma | Sinais | Alcance | Definido por | Local típico |
|---|---|---|---|---|---|---|
| MII | 10/100 | paralela de 4 bits @ 2,5/25 MHz | 16–18 | cm | IEEE 802.3 Cl. 22 | MAC legado ↔ PHY |
| RMII | 10/100 | 2 bits @ 50 MHz | 7–9 | cm | RMII Consortium | SoC embarcado ↔ PHY |
| SMII / SS-SMII | 10/100 | 1 bit @ 125 MHz | 2–3 por porta | cm | Cisco | PHYs multiporta |
| GMII | 1G (+10/100) | 8 bits @ 125 MHz | 24+ | cm | Cl. 35 | MAC ↔ PHY, hoje majoritariamente on-chip |
| RGMII | 1G (+10/100) | DDR de 4 bits @ 125 MHz | 12 | ≤ 10–15 cm | HP/Marvell RGMII v1.3/2.0 | SoC ↔ PHY de cobre em switches/roteadores pequenos |
| TBI / RTBI | 1G | 10 bits @ 125 MHz | 20+ | cm | Cl. 36 | MAC ↔ SerDes externo (legado) |
| 1000BASE-X (SerDes) | 1G | 1 lane a 1,25 GBd, 8b/10b | 2 pares diferenciais | 50 cm+ | Cl. 36/37 | o que uma gaiola (cage) SFP carrega a 1G |
| SGMII | 10/100/1000 | 1 lane a 1,25 GBd, 8b/10b | 2 pares (+ clocks) | 50 cm+ | Cisco SGMII v1.8 | MAC ↔ PHY de cobre; MAC ↔ SFP de cobre |
| 2500BASE-X | 2,5G | 1,25 × taxa do SGMII/1000BASE-X: 3,125 GBd | 2 pares | 50 cm | de facto | SFP de 2,5G, sticks PON |
| QSGMII | 4 × 1G | 1 lane a 5 GBd | 2 pares | 50 cm | Cisco | ASIC ↔ PHY de cobre quádruplo |
| USXGMII | 10M–10G | 1 lane a 10,3125 GBd, 64b/66b | 2 pares | 30 cm | Cisco/Marvell | ASIC ↔ PHY mGig; SFP+ 10GBASE-T |
| XGMII | 10G | DDR de 32 bits @ 156,25 MHz | 74 | < 7 cm | Cl. 46 | on-chip |
| XAUI | 10G | 4 × 3,125 GBd, 8b/10b | 8 pares | 50 cm | Cl. 47 | módulos XENPAK/X2, PHYs legados |
| XFI / SFI | 10G | 1 × 10,3125 GBd, 64b/66b | 2 pares | 20–30 cm | XFP MSA / SFF-8431 | gaiola (cage) XFP / SFP+ |
| 10GBASE-KR | 10G | 1 × 10,3125 GBd | 2 pares | 1 m de backplane | Cl. 72 | backplanes, PHYs 10GBASE-T |
| 25GAUI | 25G | 1 × 25,78 GBd NRZ | 2 pares | C2M | Annex 109A/B | gaiola (cage) SFP28 |
| XLAUI / CAUI-10 | 40G / 100G | 4 / 10 × 10,3125 GBd | 8 / 20 pares | C2C/C2M | Annex 83A/B | QSFP+ / CFP, CXP |
| CAUI-4 | 100G | 4 × 25,78 GBd NRZ | 8 pares | C2M | Annex 83D/E | gaiola (cage) QSFP28 |
| 50GAUI-2 / -1 | 50G | 2 × 26,5625 NRZ / 1 × 26,5625 GBd PAM4 | 4 / 2 pares | 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 (variantes 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 |
Detalhes: MII, RMII, GMII, RGMII, SGMII, 1000BASE-X, QSGMII, USXGMII, XGMII, XAUI, SFI e a família AUI.
Onde cada uma fica
| Dispositivo | MAC → … | … → meio |
|---|---|---|
| Switch de cobre 1G de 48 portas | ASIC → QSGMII → PHYs quádruplos | PHYs → RJ45 |
| Roteador pequeno / placa SoC | SoC → RGMII ou SGMII → PHY | PHY → RJ45; ou SoC → 1000BASE-X/SGMII → gaiola (cage) SFP |
| Porta SFP+/SFP28 de switch ou NIC 10G/25G | SerDes do ASIC → SFI / 25GAUI → gaiola (cage) | módulo → fibra ou DAC |
| Porta QSFP28 100G | ASIC → CAUI-4 (4 × 25G) → gaiola (cage) | módulo → 4 λ ou 4 fibras |
| Porta QSFP-DD / OSFP 400G | ASIC → 400GAUI-8 (8 × 50G PAM4) → gaiola (cage) | gearbox do módulo → 4 × 100G óptico |
| Porta OSFP 800G | ASIC → 800GAUI-8 (8 × 100G PAM4) → gaiola (cage) | módulo → 8 × 100G (DR8) ou 4 × 200G |
| SFP 1000BASE-T de cobre | host 1000BASE-X ou SGMII → PHY do módulo | PHY → RJ45 |
| SFP+ 10GBASE-T | host SFI (10GBASE-R) → PHY do módulo (classe USXGMII) | PHY → RJ45 |
| Porta de switch RJ45 multigig | ASIC → USXGMII → PHY mGig | 2,5/5/10GBASE-T |
Gerenciamento de PHYs vs. módulos
| Chip PHY de cobre | Módulo conectável | |
|---|---|---|
| Barramento | MDIO/MDC (Clause 22: endereço de 5 bits, 32 registradores de 16 bits; Clause 45: pares dispositivo/registrador para 10G+) | I²C de dois fios (A0h/A2h, páginas CMIS) (Interface de dois fios) |
| Status do enlace | registrador de status do PHY (reg 1), in-band em RGMII/SGMII | pinos e flags LOS/LOL, DDM |
| Ferramentas Linux | mii-tool, phytool, ethtool (driver do PHY) | ethtool -m, i2c-dev (Ferramentas de NIC) |
| Peculiaridade do SFP de cobre | o PHY dentro do módulo é acessível por I²C em um segundo endereço (por exemplo, 0xAC em módulos baseados no Marvell 88E1111) ou via páginas do fabricante (MDIO tunelado) | — |
Por que isso importa para o trabalho com transceptores
- Modo da gaiola (cage). Uma porta SFP de 1G pode estar no modo 1000BASE-X ou SGMII; um SFP de cobre se comporta de forma diferente em cada um, e clientes 10/100 só funcionam em SGMII (ou com um módulo que esconde a diferença) (SGMII e gigabit serial).
- Taxa e codificação. O módulo precisa aceitar a taxa de lane e a codificação do host: SFI a 10,3125 GBd, CAUI-4 a 25,78, 400GAUI-8 PAM4. É isso que os códigos de conformidade e as aplicações CMIS anunciam (Códigos de conformidade).
- Quem retemporiza. Módulos SFP+ costumam ser lineares/limitantes com equalização do host; módulos 25G+ incorporam CDRs; módulos PAM4 incorporam DSPs; módulos LPO voltam a ser lineares e dependem do SerDes do host (CDR, DSP e LPO).
- Lanes elétricas ≠ lanes ópticas. O 400G-FR4 usa 8 lanes elétricas e emite 4 comprimentos de onda; o gearbox fica no módulo (XGMII, XAUI e a família AUI).
- O Linux escolhe a interface a partir da EEPROM. A camada SFP do kernel lê os bytes 3–10, 12 e 36 para decidir entre 1000BASE-X, SGMII, 2500BASE-X, 10GBASE-R. Um byte de conformidade errado faz um módulo bom estabelecer o enlace no modo errado (Mapa de memória).
Leitura adicional
- MII, RMII, GMII, RGMII — as interfaces paralelas: pinos, clocks, modos de atraso do RGMII, status in-band, gerenciamento de PHY por MDIO, falhas típicas.
- SGMII, 1000BASE-X, QSGMII, USXGMII — interfaces seriais para PHYs e gaiolas (cage) SFP: diferenças de autonegociação, SFPs de cobre, 100BASE-FX, 2,5G, multigig, como o Linux escolhe o modo.
- XGMII, XAUI, XFI/SFI e a família AUI — de 10G a 800G: contagem de lanes, C2C vs. C2M, pontos de conformidade, mapeamento OIF CEI, mapeamento de lanes elétricas para ópticas, módulos retemporizados vs. lineares.
No CodingBox
Os bytes que o CodingBox mostra são a declaração do módulo sobre quais interfaces de host ele suporta: códigos de conformidade (1000BASE-T → cobre compatível com SGMII/1000BASE-X), taxa de bits nominal, byte de codificação (8b/10b vs. 64b/66b vs. PAM4), bits de CDR e IDs de interface de host do CMIS. Editá-los muda qual interface o host vai tentar (Check transceiver, Códigos de conformidade).