อินเทอร์เฟซที่ไม่ขึ้นกับสื่อ: ด้านไฟฟ้าของพอร์ต
ระหว่าง Ethernet MAC ภายใน ASIC ของสวิตช์หรือคอนโทรลเลอร์ NIC กับสื่อกลาง ไม่ว่าจะเป็นคู่สายทองแดง ใยแก้วนำแสง หรือแบ็กเพลน มีอินเทอร์เฟซไฟฟ้ามาตรฐานคั่นอยู่ IEEE เรียกตระกูลนี้ว่า อินเทอร์เฟซอิสระจากสื่อกลาง (MII) โดย MAC ไม่จำเป็นต้องรู้ว่าอีกด้านเป็น PHY ทองแดง เคจ SFP หรือโมดูล 400G ตราบใดที่มันสื่อสารด้วยอินเทอร์เฟซที่ตกลงกันไว้ อีเทอร์เน็ตแต่ละรุ่นเพิ่มอินเทอร์เฟซของตัวเองเข้ามา ได้แก่ 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 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) | DDR 4 บิต @ 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 | 1.25 × อัตราของ SGMII/1000BASE-X: 3.125 GBd | 2 คู่ | 50 cm | โดยพฤตินัย | SFP 2.5G, สติ๊ก 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 ↔ PHY mGig; 10GBASE-T SFP+ |
| XGMII | 10G | DDR 32 บิต @ 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 | แบ็กเพลน, PHY แบบ 10GBASE-T |
| 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 → … | … → สื่อกลาง |
|---|---|---|
| สวิตช์ทองแดง 1G ขนาด 48 พอร์ต | ASIC → QSGMII → PHY สี่ตัว | PHY → RJ45 |
| เราเตอร์ขนาดเล็ก / บอร์ด SoC | SoC → RGMII หรือ SGMII → PHY | PHY → RJ45; หรือ SoC → 1000BASE-X/SGMII → เคจ SFP |
| พอร์ต SFP+/SFP28 ของสวิตช์หรือ NIC 10G/25G | 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 |
| SFP+ แบบ 10GBASE-T | โฮสต์ SFI (10GBASE-R) → PHY ของโมดูล (ระดับ USXGMII) | PHY → RJ45 |
| พอร์ตสวิตช์ RJ45 แบบมัลติกิก | ASIC → USXGMII → PHY mGig | 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 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, สถานะแบบอินแบนด์, การจัดการ 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 และ ID อินเทอร์เฟซโฮสต์ของ CMIS การแก้ไขค่าเหล่านี้เปลี่ยนอินเทอร์เฟซที่โฮสต์จะพยายามใช้ (Check transceiver, รหัสความสอดคล้อง)