SGMII, 1000BASE-X, QSGMII, USXGMII: อินเทอร์เฟซแบบอนุกรมไปยัง PHY และ SFP · อินเทอร์เฟซไฟฟ้า: ตระกูล MII และ AUI · การ์ดเครือข่ายและสวิตช์ · เอกสารประกอบ · CodingBox
CodingBox เอกสารประกอบ

SGMII, 1000BASE-X, QSGMII, USXGMII: อินเทอร์เฟซแบบอนุกรมไปยัง PHY และ SFP

เคจ SFP ทุกตัวที่ 1G มีเลนอนุกรม 1.25 GBd และเลนนั้นสามารถพูดได้สองสำเนียงที่หน้าตาเหมือนกันทุกประการบนออสซิลโลสโคป ได้แก่ 1000BASE-X อินเทอร์เฟซของ IEEE ที่โมดูลใยแก้วนำแสงคาดหวัง และ SGMII ตัวแปรของ Cisco ที่เพิ่ม 10/100 Mb/s เข้ามาพร้อมการเจรจาอัตโนมัติที่ต่างออกไป SFP ทองแดงอยู่บนเส้นแบ่งระหว่างสองสำเนียงนี้ และปัญหาส่วนใหญ่ในลักษณะ “SFP ทองแดงลิงก์ที่ 1G ได้ แต่กล้อง 100 Mb/s ของฉันไม่ลิงก์” ล้วนเป็นความไม่ตรงกันของสำเนียง หน้านี้ครอบคลุมสำเนียงกิกะบิตทั้งสองแบบ การเจรจาอัตโนมัติของแต่ละแบบ 2500BASE-X, QSGMII แบบหลายพอร์ต, USXGMII สำหรับมัลติกิกและ 10GBASE-T SFP+ และวิธีที่ Linux กับสวิตช์เลือกโหมด

1000BASE-X: อินเทอร์เฟซดั้งเดิมของ SFP (Clause 36/37)

รายการค่า
อัตราเร็ว1.25 GBd, 8b/10b → เพย์โหลด 1000 Mb/s
เลนคู่ดิฟเฟอเรนเชียล 1 คู่ต่อทิศทาง (CML, ต่อผ่าน AC)
การเข้ารหัส8b/10b พร้อม comma /K28.5/, ชุดคำสั่งเรียงลำดับ /C1/ /C2/ (การคอนฟิก), /I1/ /I2/ (ไอเดิล)
การเจรจาอัตโนมัติClause 37: แลกเปลี่ยนเวิร์ดคอนฟิกขนาด 16 บิตในชุดคำสั่งเรียงลำดับ /C/ ได้แก่ ฟูลดูเพล็กซ์/ฮาล์ฟดูเพล็กซ์, pause (สมมาตร/ไม่สมมาตร), remote fault, acknowledge ไม่มีฟิลด์ความเร็ว: 1000BASE-X เป็น 1G เท่านั้น
ที่ไหนSerDes ของสวิตช์/NIC → เคจ SFP; SFP ใยแก้วนำแสง (SX/LX/ZX/BiDi/CWDM) ส่งผ่านตรงไปยังเลเซอร์; PCS อยู่ในฝั่งโฮสต์

SFP ใยแก้วนำแสงโปร่งใส สิ่งที่โฮสต์เข้ารหัสออกไปก็ออกไปเป็นแสงตรงตามนั้น นี่คือเหตุผลที่โมดูลใยแก้วนำแสง 1G ไม่มี “โหมด” ของตัวเอง แต่พอร์ตมี และพอร์ตต้องอยู่ในโหมด 1000BASE-X (มักแสดงเป็นโหมด “SerDes” หรือ “fiber”, ใช้ speed nonegotiate บน Cisco เมื่อปลายอีกด้านไม่มี AN)

SGMII: กิกะบิตบวก 10/100 (ข้อกำหนด Cisco SGMII v1.8)

รายการค่า
อัตราเร็ว1.25 GBd, 8b/10b เท่ากัน
การรองรับ 10/100แต่ละไบต์ข้อมูลถูกทำซ้ำ 100 เท่า (10 Mb/s) หรือ 10 เท่า (100 Mb/s) เพื่อให้สายสัญญาณยังคงอยู่ที่ 1.25 GBd
เลน2 คู่; มีคู่สัญญาณนาฬิกา DDR 625 MHz เป็นตัวเลือก (TX_CLK/RX_CLK) — การใช้งาน SerDes ส่วนใหญ่ทำงานแบบไม่มีสัญญาณนาฬิกา
การเจรจาอัตโนมัติเวิร์ดควบคุมของ SGMII (ส่งในชุดคำสั่งเรียงลำดับ /C/ เช่นกัน ขนาด 16 บิต): บิต 15 คือลิงก์, บิต 11–10 คือความเร็ว (10/100/1000), บิต 12 คือดูเพล็กซ์, บิต 14 คือ ack — ส่งจาก PHY → MAC เพื่อบอก MAC ว่าฝั่งทองแดงเจรจาได้ผลอย่างไร ไม่เข้ากันกับเนื้อหาของ Clause 37
ที่ไหนMAC ↔ PHY ทองแดง (Marvell 88E15xx, TI DP83867, Broadcom), SoC ↔ เคจ SFP บนบอร์ดที่ต้องการรองรับ SFP ทองแดง, ภายใน SFP ทองแดง 1000BASE-T

SGMII คืออินเทอร์เฟซ MAC–PHY “การเจรจาอัตโนมัติ” เกิดขึ้นสองรอบ ได้แก่ Clause 28 บนคู่สายบิดเกลียวระหว่าง PHY กับคู่ลิงก์ จากนั้นเวิร์ดควบคุมของ SGMII จึงรายงานผลลัพธ์ให้ MAC ทราบ เมื่อโฮสต์คาดหวัง Clause 37 แต่ได้รับเวิร์ดของ SGMII เข้ามา (หรือในทางกลับกัน) ลิงก์จะไม่มีวันทำ AN จนเสร็จสมบูรณ์ วิธีแก้ที่ใช้กันทั่วไปคือปิด AN บนพอร์ต (speed nonegotiate, no negotiation auto, autoneg off) โดยใช้ได้เฉพาะที่ 1G เท่านั้น

SFP ทองแดงระหว่างสองแบบ

โหมดพอร์ตของโฮสต์พฤติกรรมของ SFP ทองแดงไคลเอนต์ 10/100
1000BASE-X, เปิด ANPHY ของโมดูลต้องตอบสนอง Clause 37 — หลายรุ่นทำได้ (จำลองพฤติกรรม) บางรุ่นทำไม่ได้ → ไม่ลิงก์จนกว่าจะปิด ANไม่ได้ (ไม่มีฟิลด์ความเร็ว)
1000BASE-X, ปิด ANลิงก์ที่ 1G เมื่อฝั่งทองแดงเจรจาได้ 1Gไม่ได้
SGMII, เปิด ANPHY รายงาน 10/100/1000 ผ่านเวิร์ดควบคุมได้
SGMII, ปิด ANคงที่ 1Gไม่ได้

โมดูล SFP ทองแดงที่ใช้ Marvell 88E1111 จะเป็น SGMII หรือ 1000BASE-X โดยค่าเริ่มต้น ขึ้นอยู่กับ EEPROM คอนฟิก/สแตรปที่ตั้งไว้ตั้งแต่การผลิต ผู้ผลิตขายโมดูลตัวเดียวกันเป็นรุ่น “SGMII” และรุ่น “SerDes” แยกกัน และบางรุ่นสลับโหมดได้ผ่านรีจิสเตอร์ของ PHY ที่เข้าถึงได้ทาง I²C ของโมดูล พอร์ตสวิตช์ที่ระบุว่า “รองรับ SFP 1000BASE-T” หมายถึงใช้ SGMII บนเคจเหล่านั้น (อีเทอร์เน็ตทองแดงและ DAC)

SFP แบบ 100BASE-FX

SFP ใยแก้วนำแสง 100 Mb/s (100BASE-FX, 1310 nm, 2 km) ต้องการให้โฮสต์รันเลนที่ 125 MBd แบบ 4b/5b ซึ่งเป็น PCS ที่ต่างออกไปโดยสิ้นเชิง มีเพียงพอร์ตที่รองรับ “100M SFP” อย่างชัดเจนเท่านั้นที่ใช้งานได้ (สวิตช์แคมปัสหลายรุ่นในบางพอร์ต, เราเตอร์ส่วนใหญ่; สวิตช์ดาต้าเซ็นเตอร์น้อยราย) ส่วนพอร์ตอื่นจะตรวจพบโมดูลแต่ไม่มีวันลิงก์ โฮสต์บางตัวทำ 100BASE-FX ด้วยการทำซ้ำแบบ SGMII ผ่าน PHY ภายนอกในโมดูล (SFP แบบ “100M over SGMII”)

2500BASE-X

รายการค่า
อัตราเร็ว3.125 GBd, 8b/10b → 2.5 Gb/s
มาตรฐานไม่มีจาก IEEE (โดยพฤตินัย เป็น 2.5 × 1000BASE-X); Linux phy-interface-type = "2500base-x"
ANรูปแบบ Clause 37 มักถูกปิดใช้งาน
ที่ไหนโมดูล SFP 2.5G (ทองแดง 2.5GBASE-T, ใยแก้วนำแสง 2.5G), สติ๊ก ONU ของ GPON/EPON ฝั่งที่หันเข้าหาโฮสต์ (ขาลง 2.5G), อัปลิงก์ของ AP Wi-Fi 6, เคจ SFP ของสวิตช์ 2.5G บางรุ่น

มาตรฐาน IEEE ที่เทียบเท่าสำหรับมัลติกิกคือ 2.5GBASE-X/5GBASE-R (802.3bz) แต่ซิลิคอนส่วนใหญ่พูด 2500BASE-X หรือ USXGMII

QSGMII: สี่พอร์ตบนเลนเดียว

รายการค่า
อัตราเร็ว5 GBd, 8b/10b; มัลติเพล็กซ์ตามเวลา 4 ช่องสัญญาณ SGMII
เลน2 คู่สำหรับสี่พอร์ต
ที่ไหนASIC ของสวิตช์ ↔ PHY ทองแดงสี่ตัว (สวิตช์แอ็กเซส 48 พอร์ต: เลน QSGMII 12 เส้นแทนที่จะเป็น SGMII 48 เส้น), ดีไซน์เคจ SFP สี่พอร์ตบางแบบผ่าน SerDes ภายนอก
รูปแบบย่อยQSGMII (Cisco) และ “PSGMII” (5 พอร์ต) บน SoC ของ Qualcomm/Realtek บางรุ่น

ไม่ปรากฏให้เห็นที่เคจในดีไซน์ทั่วไป แต่มีผลเมื่อบอร์ดที่ใช้ PHY สี่ตัวเปิดพอร์ตคอมโบ SFP ที่รับโหมดมาจากช่องสัญญาณของ PHY

USXGMII: 10 Mb/s ถึง 10 Gb/s บนเลน 10G เดียว

รายการค่า
อัตราเร็ว10.3125 GBd, 64b/66b (ไฟฟ้าแบบ 10GBASE-R)
ความเร็ว10M, 100M, 1G, 2.5G, 5G, 10G ด้วยการทำซ้ำสัญลักษณ์ (เหมือน SGMII แต่ขยายสเกลขึ้น)
สเปกCisco USXGMII (v1.2) ถูกนำไปใช้อย่างแพร่หลาย; Linux usxgmii
หลายพอร์ตUSXGMII-M: 4 × 2.5G, 2 × 5G, 4 × 1G+… บนเลน 10G เดียว (เหมือน QSGMII)
ANเวิร์ด AN ของ USXGMII อยู่ในช่วงไอเดิลของ 64b/66b รายงานความเร็ว/ดูเพล็กซ์/ลิงก์
ที่ไหนASIC ↔ PHY มัลติกิก (พอร์ต 2.5/5/10GBASE-T), โมดูล 10GBASE-T SFP+ (PHY ภายใน เช่น Marvell AQR/Broadcom)

โมดูล 10GBASE-T SFP+ นำเสนอ 10GBASE-R (SFI) ให้กับพอร์ต SFP+ ทั่วไปและลิงก์ที่ 10G ส่วนที่ว่ามันจะรองรับไคลเอนต์ 1G/2.5G/5G ได้ด้วยหรือไม่นั้น ขึ้นอยู่กับว่าโฮสต์รองรับการปรับอัตราเร็วแบบ USXGMII บนเคจนั้นหรือไม่ — สวิตช์ส่วนใหญ่ไม่รองรับ ดังนั้นโมดูลจึงทำงานได้ที่ 10G เท่านั้น หรือไม่ก็ทำการปรับอัตราเร็วภายในตัวเองแล้วรายงาน 10G ให้โฮสต์ ในขณะที่ฝั่งทองแดงรันช้ากว่านั้น (ความเร็วและอัตรา)

โฮสต์เลือกโหมดอย่างไร

โฮสต์กลไก
Linux phylink/SFPอ่าน A0h ไบต์ 3–10 (ความสอดคล้อง), 12 (อัตราตามพิกัด), 36 (ความสอดคล้องขยาย) และไบต์ 6 บิต 3 (1000BASE-T): 1000BASE-T → SGMII (หรือ 1000BASE-X ถ้า SoC ไม่มี SGMII); 1000BASE-SX/LX → 1000BASE-X; BR 3.1 GBd → 2500BASE-X; รหัส 10G → 10GBASE-R; PHY ทองแดงภายในโมดูลถูกตรวจสอบผ่าน I²C (แอดเดรส 0x56/0xAC) และขับเคลื่อนโดย phylib
NOS ของสวิตช์ค่าเริ่มต้นของพอร์ตขึ้นอยู่กับแพลตฟอร์ม (เคจ SFP 1G ส่วนใหญ่รองรับ SGMII; SFP+/SFP28 ที่ 1G มักรองรับเฉพาะ 1000BASE-X), คำสั่ง speed 1000, speed nonegotiate, media-type sfp, negotiation auto, port-mode
ไดรเวอร์ NICIntel: พอร์ต SFP+ รองรับ 1G แบบ 1000BASE-X เท่านั้น (ไม่มี SFP ทองแดง 10/100); Mellanox: 1G ผ่าน 1000BASE-X ในบางรุ่น; Broadcom: ขึ้นอยู่กับเฟิร์มแวร์ (พอร์ต NIC)
SFP ทองแดงสแตรป/EEPROM ของโหมด PHY (รุ่น SGMII เทียบกับ SerDes), พฤติกรรม AN ตั้งค่าโดยเฟิร์มแวร์ของผู้ผลิต

ตารางความไม่ตรงกัน

อาการสาเหตุวิธีแก้
SFP ทองแดง: ไคลเอนต์ 1G ใช้ได้ปกติ แต่ 10/100 ไม่ลิงก์เลยพอร์ตอยู่ในโหมด 1000BASE-Xย้ายไปพอร์ตที่รองรับ SGMII หรือใช้โมดูลที่ซ่อน 10/100 ไว้หลังการปรับให้เป็น 1G ต่อโฮสต์
SFP ใยแก้วนำแสงลิงก์ได้เฉพาะเมื่อปิด ANปลายอีกด้านไม่มี Clause 37 (มีเดียคอนเวอร์เตอร์, ONU บางรุ่น) หรือได้รับเวิร์ดของ SGMII จากโมดูลทองแดงspeed nonegotiate / autoneg off
ตรวจพบ SFP แบบ 100BASE-FX แต่ไม่ลิงก์โฮสต์ไม่มีโหมด SerDes 100Mใช้พอร์ตที่รองรับ 100M SFP หรือโมดูล 100BASE-FX-over-SGMII
SFP 2.5G ลิงก์ได้แค่ 1G หรือไม่ลิงก์เลยโฮสต์ไม่มี 2500BASE-Xเลือกเคจที่รองรับ 2.5G หรือโมดูลที่ลดอัตราเร็วสำรองได้
สติ๊ก ONU ลิงก์ได้แล้วหลุดความคาดหวังระหว่าง 2500BASE-X กับ 1000BASE-X ไม่ตรงกัน, ANตั้งโฮสต์เป็น 2500BASE-X, ปิด AN (ออปติกของ PON)
10GBASE-T SFP+ ลิงก์ได้แค่ 10Gโฮสต์ไม่มี USXGMIIยอมรับว่าใช้ได้แค่ 10G หรือใช้โมดูลที่ปรับอัตราเร็วภายในตัวเอง
Linux: โมดูลทำงานได้บนบอร์ดหนึ่งแต่ไม่ได้บนอีกบอร์ดphylink เลือกอินเทอร์เฟซที่ต่างไปจาก EEPROM; SoC ไม่มีโหมดนั้นตรวจสอบ dmesg หา sfp: module … interface; แก้ไขไบต์ความสอดคล้องหรือ device tree

ใน CodingBox

ไบต์ที่กำหนดการเลือกของโฮสต์อยู่ใน A0h ทั้งหมด ได้แก่ รหัสความสอดคล้อง 3–10 (1000BASE-T, SX, LX, รหัส 10G), อัตราบิตตามพิกัด 12, การเข้ารหัส 11 (8b/10b เทียบกับ 64b/66b), ความสอดคล้องขยาย 36 โมดูลทองแดงที่เขียนรหัสเป็น 1000BASE-SX จะถูกมองเป็นใยแก้วนำแสงและเสียเส้นทาง 10/100 ไป ส่วนโมดูลใยแก้วนำแสงที่มีบิต 1000BASE-T หลงเหลืออยู่จะถูกขับเป็น SGMII CodingBox แสดงและแก้ไขฟิลด์เหล่านี้ได้ (Check transceiver, รหัสความสอดคล้อง)


หากพบข้อมูลที่ไม่ถูกต้องหรือข้อผิดพลาดในบทความนี้ ให้เลือกข้อความส่วนนั้นแล้วกด Ctrl+Enter เพื่อ