Interfaces independientes del medio: el lado eléctrico del puerto
Entre el MAC de Ethernet dentro de un ASIC de conmutador o un controlador de NIC y el medio —par de cobre, fibra, backplane— se sitúa una interfaz eléctrica normalizada. El IEEE llama a esta familia interfaces independientes del medio (MII): al MAC no le importa si el otro lado es un PHY de cobre, una jaula SFP o un módulo de 400G, mientras hable la interfaz acordada. Cada generación de Ethernet añadió una: MII y RMII para 10/100, GMII/RGMII/SGMII para gigabit, XGMII/XAUI/XFI/SFI para 10G, y la familia AUI (CAUI-4, 400GAUI-8, 800GAUI-8) para todo lo posterior. Esta sección las explica desde el punto de vista del transceptor: qué llega a la jaula, qué tiene que emular un SFP de cobre y por qué un puerto «en el modo equivocado» rechaza un módulo perfectamente bueno.
Por qué existe esta división
| Capa | Reside en | Interfaz hacia la siguiente capa |
|---|---|---|
| MAC (tramas, direcciones) | ASIC de conmutador, controlador de NIC, SoC | subcapa de reconciliación → xMII |
| PCS (codificación: 8b/10b, 64b/66b, FEC) | ASIC/controlador para módulos enchufables; chip PHY para cobre | PMA |
| PMA / SerDes | SerDes del ASIC o PHY | carriles AUI hacia el módulo o el medio |
| PMD (láser, driver de cobre) | módulo transceptor o chip PHY | fibra / cable |
Para la óptica enchufable, el PCS y el SerDes permanecen en el host; el módulo recibe carriles serie (SFI, CAUI-4, 400GAUI-8) y los convierte en luz. Para el cobre, un chip PHY hace PCS+PMA+PMD y habla con el MAC mediante una interfaz paralela (RGMII) o serie (SGMII). Un SFP de cobre coloca ese PHY dentro del módulo, de modo que la jaula debe llevarle SGMII o 1000BASE-X (SGMII y gigabit serie).
La escalera
| Interfaz | Velocidad | Forma | Señales | Alcance | Definida por | Lugar habitual |
|---|---|---|---|---|---|---|
| MII | 10/100 | paralelo de 4 bits @ 2,5/25 MHz | 16–18 | cm | IEEE 802.3 Cl. 22 | MAC ↔ PHY heredado |
| RMII | 10/100 | 2 bits @ 50 MHz | 7–9 | cm | RMII Consortium | SoC embebido ↔ PHY |
| SMII / SS-SMII | 10/100 | 1 bit @ 125 MHz | 2–3 por puerto | cm | Cisco | PHYs multipuerto |
| GMII | 1G (+10/100) | 8 bits @ 125 MHz | 24+ | cm | Cl. 35 | MAC ↔ PHY, hoy mayormente en el propio chip |
| RGMII | 1G (+10/100) | 4 bits DDR @ 125 MHz | 12 | ≤ 10–15 cm | HP/Marvell RGMII v1.3/2.0 | SoC ↔ PHY de cobre en conmutadores/routers pequeños |
| TBI / RTBI | 1G | 10 bits @ 125 MHz | 20+ | cm | Cl. 36 | MAC ↔ SerDes externo (heredado) |
| 1000BASE-X (SerDes) | 1G | 1 carril 1,25 GBd, 8b/10b | 2 pares diferenciales | 50 cm+ | Cl. 36/37 | lo que lleva una jaula SFP a 1G |
| SGMII | 10/100/1000 | 1 carril 1,25 GBd, 8b/10b | 2 pares (+ relojes) | 50 cm+ | Cisco SGMII v1.8 | MAC ↔ PHY de cobre; MAC ↔ SFP de cobre |
| 2500BASE-X | 2,5G | 1,25 × la tasa de SGMII/1000BASE-X: 3,125 GBd | 2 pares | 50 cm | de facto | SFP de 2,5G, sticks PON |
| QSGMII | 4 × 1G | 1 carril 5 GBd | 2 pares | 50 cm | Cisco | ASIC ↔ PHY de cobre cuádruple |
| USXGMII | 10M–10G | 1 carril 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 | en el propio chip |
| XAUI | 10G | 4 × 3,125 GBd, 8b/10b | 8 pares | 50 cm | Cl. 47 | módulos XENPAK/X2, PHYs heredados |
| XFI / SFI | 10G | 1 × 10,3125 GBd, 64b/66b | 2 pares | 20–30 cm | XFP MSA / SFF-8431 | jaula 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 | Anexo 109A/B | jaula SFP28 |
| XLAUI / CAUI-10 | 40G / 100G | 4 / 10 × 10,3125 GBd | 8 / 20 pares | C2C/C2M | Anexo 83A/B | QSFP+ / CFP, CXP |
| CAUI-4 | 100G | 4 × 25,78 GBd NRZ | 8 pares | C2M | Anexo 83D/E | jaula QSFP28 |
| 50GAUI-2 / -1 | 50G | 2 × 26,5625 NRZ / 1 × 26,5625 GBd PAM4 | 4 / 2 pares | C2M | Anexo 135B–E | SFP56 |
| 100GAUI-4 / -2 / -1 | 100G | 4 × NRZ / 2 × 53 GBd PAM4 / 1 × 106 GBd PAM4 | — | C2M | Anexo 135D–G, 120G | QSFP28 (variantes PAM4), QSFP112 |
| 200GAUI-8 / -4 / -2 | 200G | 8 × 26,5 PAM4 / 4 × 53 / 2 × 106 | — | C2M | Anexo 120C–G | QSFP56, QSFP112 |
| 400GAUI-16 / -8 / -4 | 400G | 16 × 25 NRZ / 8 × 53 PAM4 / 4 × 106 PAM4 | — | C2M | Anexo 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 |
Detalles: MII, RMII, GMII, RGMII, SGMII, 1000BASE-X, QSGMII, USXGMII, XGMII, XAUI, SFI y la familia AUI.
Dónde se sitúa cada una
| Dispositivo | MAC → … | … → medio |
|---|---|---|
| Conmutador de cobre de 48 puertos 1G | ASIC → QSGMII → PHYs cuádruples | PHYs → RJ45 |
| Router pequeño / placa SoC | SoC → RGMII o SGMII → PHY | PHY → RJ45; o SoC → 1000BASE-X/SGMII → jaula SFP |
| Puerto SFP+/SFP28 de conmutador o NIC 10G/25G | SerDes del ASIC → SFI / 25GAUI → jaula | módulo → fibra o DAC |
| Puerto QSFP28 100G | ASIC → CAUI-4 (4 × 25G) → jaula | módulo → 4 λ o 4 fibras |
| Puerto QSFP-DD / OSFP 400G | ASIC → 400GAUI-8 (8 × 50G PAM4) → jaula | gearbox del módulo → 4 × 100G óptico |
| Puerto OSFP 800G | ASIC → 800GAUI-8 (8 × 100G PAM4) → jaula | módulo → 8 × 100G (DR8) o 4 × 200G |
| SFP de cobre 1000BASE-T | host 1000BASE-X o SGMII → PHY del módulo | PHY → RJ45 |
| SFP+ 10GBASE-T | host SFI (10GBASE-R) → PHY del módulo (clase USXGMII) | PHY → RJ45 |
| Puerto de conmutador RJ45 multigig | ASIC → USXGMII → PHY mGig | 2,5/5/10GBASE-T |
Gestión de PHYs frente a módulos
| Chip PHY de cobre | Módulo enchufable | |
|---|---|---|
| Bus | MDIO/MDC (cláusula 22: dirección de 5 bits, 32 registros de 16 bits; cláusula 45: pares dispositivo/registro para 10G+) | I²C de dos hilos (páginas A0h/A2h, CMIS) (Interfaz de dos hilos) |
| Estado del enlace | registro de estado del PHY (reg 1), in-band en RGMII/SGMII | pines y señales LOS/LOL, DDM |
| Herramientas Linux | mii-tool, phytool, ethtool (driver del PHY) | ethtool -m, i2c-dev (Herramientas de NIC) |
| Particularidad del SFP de cobre | el PHY dentro del módulo es accesible por I²C en una segunda dirección (p. ej. 0xAC en módulos basados en Marvell 88E1111) o mediante páginas de fabricante — MDIO tunelizado | — |
Por qué importa para el trabajo con transceptores
- Modo de la jaula. Un puerto SFP de 1G puede estar en modo 1000BASE-X o SGMII; un SFP de cobre se comporta de forma distinta en cada uno, y los clientes 10/100 solo funcionan en SGMII (o con un módulo que oculte la diferencia) (SGMII y gigabit serie).
- Velocidad y codificación. El módulo debe aceptar la velocidad y la codificación del carril del host: SFI a 10,3125 GBd, CAUI-4 a 25,78, 400GAUI-8 PAM4 — esto es lo que anuncian los códigos de conformidad y las aplicaciones CMIS (Códigos de conformidad).
- Quién retemporiza. Los módulos SFP+ suelen ser lineales/limitantes con ecualización en el host; los módulos de 25G+ llevan CDR; los módulos PAM4 llevan DSP; los módulos LPO vuelven a ser lineales y dependen del SerDes del host (CDR, DSP y LPO).
- Carriles eléctricos ≠ carriles ópticos. 400G-FR4 toma 8 carriles eléctricos y emite 4 longitudes de onda; el gearbox está en el módulo (XGMII, XAUI y la familia AUI).
- Linux elige la interfaz a partir de la EEPROM. La capa SFP del kernel lee los bytes 3–10, 12 y 36 para decidir entre 1000BASE-X, SGMII, 2500BASE-X, 10GBASE-R — un byte de conformidad erróneo hace que un módulo bueno enlace en el modo equivocado (Mapa de memoria).
Para seguir leyendo
- MII, RMII, GMII, RGMII — las interfaces paralelas: pines, relojes, modos de retardo de RGMII, estado in-band, gestión del PHY por MDIO, fallos típicos.
- SGMII, 1000BASE-X, QSGMII, USXGMII — interfaces serie hacia PHYs y jaulas SFP: diferencias de autonegociación, SFP de cobre, 100BASE-FX, 2,5G, multigig, cómo elige Linux el modo.
- XGMII, XAUI, XFI/SFI y la familia AUI — de 10G a 800G: número de carriles, C2C frente a C2M, puntos de conformidad, correspondencia con OIF CEI, mapeo de carriles eléctricos a ópticos, módulos retemporizados frente a lineales.
En CodingBox
Los bytes que muestra CodingBox son la declaración del módulo sobre qué interfaces de host admite: códigos de conformidad (1000BASE-T → cobre capaz de SGMII/1000BASE-X), tasa de bits nominal, byte de codificación (8b/10b frente a 64b/66b frente a PAM4), bits de CDR e identificadores de interfaz de host de CMIS. Editarlos cambia qué interfaz probará el host (Check transceiver, Códigos de conformidad).