미디어 독립 인터페이스: 포트의 전기적 측면
이더넷 MAC(스위치 ASIC이나 NIC 컨트롤러 내부)과 매체(구리 페어, 광섬유, 백플레인) 사이에는 표준화된 전기적 인터페이스가 있습니다. IEEE는 이 계열을 매체 독립 인터페이스(MII)라고 부릅니다. MAC은 반대쪽이 구리 PHY든 SFP 케이지든 400G 모듈이든, 합의된 인터페이스로 통신하기만 하면 신경 쓰지 않습니다. 이더넷은 세대마다 인터페이스를 하나씩 추가해 왔습니다: 10/100용 MII와 RMII, 기가비트용 GMII/RGMII/SGMII, 10G용 XGMII/XAUI/XFI/SFI, 그 이후 전부를 위한 AUI 계열(CAUI-4, 400GAUI-8, 800GAUI-8)입니다. 이 섹션은 이를 트랜시버의 관점에서 설명합니다 — 케이지에 무엇이 도착하는지, 구리 SFP가 무엇을 에뮬레이션해야 하는지, “모드가 맞지 않는” 포트가 정상 모듈을 왜 거부하는지입니다.
계층이 나뉘는 이유
| 계층 | 위치 | 다음 계층과의 인터페이스 |
|---|---|---|
| MAC(프레이밍, 주소) | 스위치 ASIC, NIC 컨트롤러, SoC | 조정 서브계층 → xMII |
| PCS(코딩: 8b/10b, 64b/66b, FEC) | 플러거블용은 ASIC/컨트롤러, 구리용은 PHY 칩 | PMA |
| PMA / SerDes | ASIC SerDes 또는 PHY | 모듈이나 매체로 가는 AUI 레인 |
| PMD(레이저, 구리 드라이버) | 트랜시버 모듈 또는 PHY 칩 | 광섬유 / 케이블 |
플러거블 광학 부품의 경우 PCS와 SerDes는 호스트에 남아 있으며, 모듈은 직렬 레인(SFI, CAUI-4, 400GAUI-8)을 받아 빛으로 변환합니다. 구리의 경우 PHY 칩이 PCS+PMA+PMD를 모두 수행하며 병렬(RGMII) 또는 직렬(SGMII) 인터페이스로 MAC과 통신합니다. 구리 SFP는 이 PHY를 모듈 내부에 넣으므로, 케이지는 SGMII나 1000BASE-X를 그 PHY까지 전달해야 합니다(SGMII & 시리얼 기가비트).
단계별 인터페이스
| 인터페이스 | 레이트 | 형태 | 신호 수 | 전송 거리 | 정의 주체 | 대표적 사용처 |
|---|---|---|---|---|---|---|
| MII | 10/100 | 4비트 병렬 @ 2.5/25 MHz | 16–18 | cm | IEEE 802.3 Cl. 22 | 레거시 MAC ↔ PHY |
| RMII | 10/100 | 2비트 @ 50 MHz | 7–9 | cm | RMII Consortium | 임베디드 SoC ↔ PHY |
| SMII / SS-SMII | 10/100 | 1비트 @ 125 MHz | 포트당 2–3 | cm | Cisco | 멀티포트 PHY |
| GMII | 1G(+10/100) | 8비트 @ 125 MHz | 24개 이상 | cm | Cl. 35 | MAC ↔ PHY, 오늘날에는 대부분 온칩 |
| RGMII | 1G(+10/100) | 4비트 DDR @ 125 MHz | 12 | ≤ 10–15 cm | HP/Marvell RGMII v1.3/2.0 | 소형 스위치/라우터의 SoC ↔ 구리 PHY |
| TBI / RTBI | 1G | 10비트 @ 125 MHz | 20개 이상 | cm | Cl. 36 | MAC ↔ 외장 SerDes(레거시) |
| 1000BASE-X(SerDes) | 1G | 1레인 1.25 GBd, 8b/10b | 차동 페어 2개 | 50 cm+ | Cl. 36/37 | SFP 케이지가 1G에서 전달하는 신호 |
| SGMII | 10/100/1000 | 1레인 1.25 GBd, 8b/10b | 2페어(+ 클록) | 50 cm+ | Cisco SGMII v1.8 | MAC ↔ 구리 PHY, MAC ↔ 구리 SFP |
| 2500BASE-X | 2.5G | SGMII/1000BASE-X 레이트의 1.25배: 3.125 GBd | 2페어 | 50 cm | 사실상 표준 | 2.5G SFP, PON 스틱 |
| QSGMII | 4 × 1G | 1레인 5 GBd | 2페어 | 50 cm | Cisco | ASIC ↔ 쿼드 구리 PHY |
| USXGMII | 10M–10G | 1레인 10.3125 GBd, 64b/66b | 2페어 | 30 cm | Cisco/Marvell | ASIC ↔ mGig PHY, 10GBASE-T SFP+ |
| XGMII | 10G | 32비트 DDR @ 156.25 MHz | 74 | < 7 cm | Cl. 46 | 온칩 |
| XAUI | 10G | 4 × 3.125 GBd, 8b/10b | 8페어 | 50 cm | Cl. 47 | XENPAK/X2 모듈, 레거시 PHY |
| XFI / SFI | 10G | 1 × 10.3125 GBd, 64b/66b | 2페어 | 20–30 cm | XFP MSA / SFF-8431 | XFP / SFP+ 케이지 |
| 10GBASE-KR | 10G | 1 × 10.3125 GBd | 2페어 | 백플레인 1 m | Cl. 72 | 백플레인, 10GBASE-T PHY |
| 25GAUI | 25G | 1 × 25.78 GBd NRZ | 2페어 | C2M | Annex 109A/B | SFP28 케이지 |
| XLAUI / CAUI-10 | 40G / 100G | 4 / 10 × 10.3125 GBd | 8 / 20페어 | C2C/C2M | Annex 83A/B | QSFP+ / CFP, CXP |
| CAUI-4 | 100G | 4 × 25.78 GBd NRZ | 8페어 | C2M | Annex 83D/E | QSFP28 케이지 |
| 50GAUI-2 / -1 | 50G | 2 × 26.5625 NRZ / 1 × 26.5625 GBd PAM4 | 4 / 2페어 | 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(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 케이지 |
| 10G/25G 스위치 또는 NIC의 SFP+/SFP28 포트 | ASIC SerDes → SFI / 25GAUI → 케이지 | 모듈 → 광섬유 또는 DAC |
| 100G QSFP28 포트 | ASIC → CAUI-4(4 × 25G) → 케이지 | 모듈 → 4 λ 또는 광섬유 4가닥 |
| 400G QSFP-DD / OSFP 포트 | ASIC → 400GAUI-8(8 × 50G PAM4) → 케이지 | 모듈 기어박스 → 4 × 100G 광신호 |
| 800G OSFP 포트 | ASIC → 800GAUI-8(8 × 100G PAM4) → 케이지 | 모듈 → 8 × 100G(DR8) 또는 4 × 200G |
| 구리 1000BASE-T SFP | 호스트 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 2선식(A0h/A2h, CMIS 페이지)(2선식 인터페이스) |
| 링크 상태 | PHY 상태 레지스터(reg 1), RGMII/SGMII에서는 인밴드로 전달 | LOS/LOL 핀과 플래그, DDM |
| Linux 도구 | mii-tool, phytool, ethtool(PHY 드라이버) | ethtool -m, i2c-dev(NIC 도구) |
| 구리 SFP의 특이점 | 모듈 내부의 PHY는 두 번째 주소(예: Marvell 88E1111 기반 모듈의 0xAC)를 통해 I²C로 접근할 수 있거나, 벤더 페이지를 거쳐 MDIO가 터널링됩니다 | — |
트랜시버 작업에서 중요한 이유
- 케이지의 모드. 1G SFP 포트는 1000BASE-X 모드나 SGMII 모드로 동작할 수 있습니다. 구리 SFP는 모드마다 다르게 동작하며, 10/100 클라이언트는 SGMII에서만 동작합니다(또는 그 차이를 감추는 모듈을 쓰는 경우도 있습니다)(SGMII & 시리얼 기가비트).
- 레이트와 코딩. 모듈은 호스트의 레인 레이트와 코딩을 받아들여야 합니다: SFI는 10.3125 GBd, 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 지연 모드, 인밴드 상태, MDIO를 통한 PHY 관리, 일반적인 장애.
- 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 호스트 인터페이스 ID입니다. 이를 편집하면 호스트가 시도할 인터페이스가 바뀝니다(Check transceiver, 컴플라이언스 코드).