CMIS: อินเทอร์เฟซการจัดการร่วม
CMIS หรือ Common Management Interface Specification คือโมเดลการจัดการสำหรับฟอร์มแฟกเตอร์ความเร็วสูงรุ่นใหม่ทุกแบบ ได้แก่ QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD และ SFP112 (ในชื่อ SFP+ with CMIS), DSFP, COBO และ QSFP ที่รองรับ CMIS เริ่มต้นจาก QSFP-DD MSA (CMIS 3.0 ปี 2018) ถูกนำไปใช้โดยกลุ่ม OSFP และ COBO และตั้งแต่รุ่น 5.0 (ปี 2021) ดูแลโดย OIF เมื่อเทียบกับ SFF-8636 แล้ว CMIS ไม่ใช่แค่หน่วยความจำที่ใหญ่กว่า แต่เป็นโมเดลที่ต่างไปจากเดิม ได้แก่ เพจที่แบ่งเป็นแบงก์สำหรับสูงสุด 32 เลน กลไกสถานะ ที่ชัดเจนสำหรับโมดูลและแต่ละเส้นทางข้อมูล การใช้งาน แทนบิตฟิลด์ความสอดคล้อง การวินิจฉัยอเนกประสงค์ (VDM) และช่องคำสั่ง (CDB) สำหรับเฟิร์มแวร์และฟังก์ชันส่วนขยาย ไบต์รุ่นและประวัติ: ฉบับปรับปรุงของสเปก
โมเดลหน่วยความจำ
| พื้นที่ | การกำหนดแอดเดรส | เนื้อหา |
|---|---|---|
| เพจล่าง (ไบต์ 0–127) | เข้าถึงได้เสมอ | ตัวระบุ, รุ่น, สถานะโมดูล, แฟล็ก, ค่าที่ตรวจวัดของโมดูล, การควบคุมส่วนกลาง, ชนิดสื่อกลาง, ตัวบ่งชี้การใช้งาน 1–8, รหัสผ่าน, การเลือกแบงก์ 126, การเลือกเพจ 127 |
| เพจบน 00h (128–255) | เพจ 127 = 00h | บล็อกผู้ผลิต, คลาสกำลังไฟ, คอนเนกเตอร์, ความยาวสาย, เทคโนโลยีสื่อกลาง, เช็กซัม |
| 01h | การประกาศความสามารถ | รุ่นเฟิร์มแวร์/ฮาร์ดแวร์, ความยาวลิงก์, ความยาวคลื่น, เพจและแบงก์ที่รองรับ, ระยะเวลา, การควบคุมความสมบูรณ์ของสัญญาณ, ตัวบ่งชี้การใช้งาน 9–15 |
| 02h | ค่าเกณฑ์ | ค่าเกณฑ์อะลาร์ม/คำเตือนระดับโมดูลและระดับเลน |
| 04h | ความสามารถของเลเซอร์ | กริดและช่วงของเลเซอร์ปรับความยาวคลื่นได้ (ตระกูล SFF-TA-1004) |
| 10h (แบบแบงก์) | การควบคุมเลน | การปิดเส้นทางข้อมูล, การปิด Tx, โพลาริตี, สเควลช์, การอีควอไลซ์, ชุดควบคุมที่เตรียมไว้ |
| 11h (แบบแบงก์) | สถานะเลน | สถานะเส้นทางข้อมูล, แฟล็กต่อเลน, ค่าที่ตรวจวัดของเลน, สถานะการตั้งค่า, ชุดควบคุมที่ใช้งานอยู่ |
| 12h (แบบแบงก์) | การควบคุมเลเซอร์ปรับความยาวคลื่นได้ | ช่องสัญญาณ/ความยาวคลื่นต่อเลน |
| 13h–14h (แบบแบงก์) | การวินิจฉัย | ลูปแบ็ก, ตัวสร้างและตัวตรวจสอบ PRBS |
| 20h–2Fh (แบบแบงก์) | VDM | ตัวบ่งชี้, ค่าตัวอย่าง, ค่าเกณฑ์, แฟล็ก |
| 9Fh | CDB | บล็อกคำสั่ง: ID คำสั่ง, ความยาว, เช็กซัม, เพย์โหลดภายใน |
| A0h–AFh | CDB EPL | เพย์โหลดส่วนขยายสำหรับการโอนข้อมูลขนาดใหญ่ (อิมเมจเฟิร์มแวร์) |
| 80h–FFh (อื่น ๆ) | ผู้ผลิต | เพจเฉพาะของผู้ผลิต |
แบงก์ หนึ่งตัวกำหนดแอดเดรสได้ 8 เลน แบงก์ 0 คือเลน 1–8 แบงก์ 1 คือเลน 9–16 และต่อไปเรื่อย ๆ จำนวนแบงก์ที่ใช้งานจริงถูกประกาศไว้ในเพจ 01h โมดูลที่มีเฉพาะเพจ 00h จะตั้งบิตหน่วยความจำแบบแฟลต (ไบต์ 2 บิต 7) บัส: แอดเดรสเดียว A0h สูงสุด 400 kHz, ModSelL ต่อสล็อต (อินเทอร์เฟซสองสาย)
เพจล่าง — ไบต์ที่โฮสต์ใช้งานอยู่ตลอด
| ไบต์ | ฟิลด์ | หมายเหตุ |
|---|---|---|
| 0 | ตัวระบุ | 18h QSFP-DD, 19h OSFP, 1Eh QSFP ที่รองรับ CMIS… (SFF-8024) |
| 1 | รุ่น CMIS | นิบเบิลรุ่นหลักและรุ่นย่อย: 50h = 5.0, 40h = 4.0, 30h = 3.0 |
| 2 | คุณลักษณะหน่วยความจำ | บิต 7 หน่วยความจำแบบแฟลต บวกกับบิตความสามารถแบบตั้งค่าทีละขั้นเท่านั้นและอื่น ๆ |
| 3 | สถานะโมดูล | บิต 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; บิต 0 อินเทอร์รัปต์ไม่ยืนยันสัญญาณ |
| 8–11 | แฟล็กโมดูล | สถานะเปลี่ยนแปลง, อะลาร์มอุณหภูมิ/Vcc, อะลาร์มเสริม, เฉพาะของผู้ผลิต; ค้างค่าไว้ ล้างเมื่ออ่าน |
| 14–25 | ค่าที่ตรวจวัดของโมดูล | อุณหภูมิ, Vcc, Aux1–Aux3 (กระแส TEC, อุณหภูมิเลเซอร์, แหล่งจ่ายไฟเสริม), เฉพาะของผู้ผลิต |
| 26 | การควบคุมส่วนกลาง | 5.x: บิต 6 LowPwrAllowRequestHW, บิต 5 วิธีสเควลช์, บิต 4 LowPwrRequestSW, บิต 3 การรีเซ็ตด้วยซอฟต์แวร์ (4.x: บิต 6 LowPwr, บิต 4 ForceLowPwr) |
| 37–38 | สถานะ CDB | กำลังทำงาน/สำเร็จ/ล้มเหลว สำหรับบล็อกคำสั่งที่ 1 และ 2 |
| 39–40 | เฟิร์มแวร์ที่ใช้งานอยู่ | รุ่นหลักและรุ่นย่อยของอิมเมจที่กำลังทำงาน |
| 85 | ชนิดสื่อกลาง | 01h MMF, 02h SMF, 03h ทองแดงพาสซีฟ, 04h สายเคเบิลแอ็กทีฟ, 05h BASE-T |
| 86–117 | ตัวบ่งชี้การใช้งาน 1–8 | 4 ไบต์ต่อรายการ: ID อินเตอร์เฟซโฮสต์, ID อินเตอร์เฟซสื่อกลาง, จำนวนเลนโฮสต์/สื่อกลาง, ตัวเลือกการกำหนดเลนโฮสต์ |
| 118–121 | การเปลี่ยนรหัสผ่าน | กำหนดโดยผู้ผลิต |
| 122–125 | ช่องป้อนรหัสผ่าน | กำหนดโดยผู้ผลิต เป็นที่เก็บรหัสผ่านป้องกันการเขียน |
| 126 | การเลือกแบงก์ | — |
| 127 | การเลือกเพจ | — |
กลไกสถานะของโมดูล
Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
▲ │
└──────── ModulePwrDn ◄────────┘
(ModuleFault from any state on a fatal error)
- MgmtInit — โมดูลบูตตัวควบคุมของตัวเอง ข้อมูลระบุตัวตนยังอ่านไม่ได้ (สูงสุด 2 s ตามสเปกฮาร์ดแวร์)
- ModuleLowPwr — อ่านข้อมูลระบุตัวตน การประกาศความสามารถ และค่าเกณฑ์ได้ จำกัดกำลังไฟไว้ที่คลาส 1 โฮสต์ตรวจสอบความถูกต้องของโมดูลในขั้นนี้
- ModulePwrUp → ModuleReady — โฮสต์ปลดการยืนยันขา LPMode (หรือล้าง LowPwrRequestSW) แล้วโมดูลจ่ายไฟให้วงจรออปติคัล จากนั้นเริ่มต้นเส้นทางข้อมูลได้
- ModulePwrDn — ย้อนกลับขั้นตอนเดิมเมื่อมีการยืนยันขา LPMode
โมดูลที่ไม่ยอมออกจาก LowPwr คือปัญหาคลาสสิกของ CMIS: ปัญหา CMIS, กำลังไฟและความร้อน
การใช้งานและเส้นทางข้อมูล
แทนที่จะใช้บิตความสอดคล้อง โมดูล CMIS จะประกาศ การใช้งาน ซึ่งเป็นคู่ของอินเตอร์เฟซไฟฟ้าฝั่งโฮสต์กับอินเตอร์เฟซสื่อกลาง พร้อมจำนวนเลน:
| ตัวบ่งชี้ | อินเตอร์เฟซโฮสต์ | อินเตอร์เฟซสื่อกลาง | เลนโฮสต์ / เลนสื่อกลาง | ตัวอย่าง |
|---|---|---|---|---|
| การใช้งาน 1 | 12h 400GAUI-8 C2M | 1Ch 400GBASE-DR4 | 8 / 4 | ลิงก์ 400G หนึ่งลิงก์ |
| การใช้งาน 2 | 0Eh 100GAUI-2 C2M | 14h 100GBASE-DR | 2 / 1 | เบรกเอาต์ 4 × 100G |
โฮสต์เลือกการใช้งานต่อเลนโดยเขียน AppSel (บิต 7–4) DataPathID (บิต 3–1) และบิตควบคุมแบบระบุชัดเจนลงใน ชุดควบคุมที่เตรียมไว้ 0 (เพจ 10h ไบต์ 145–152) จากนั้นยืนยัน ApplyDPInit (เพจ 10h ไบต์ 143) โมดูลตอบกลับใน ConfigStatus (เพจ 11h ไบต์ 202–205: ยอมรับ, ปฏิเสธ, AppSel ไม่ถูกต้อง, การรวมเลนไม่ถูกต้อง…) และคัดลอกค่าที่ยอมรับลงใน ชุดควบคุมที่ใช้งานอยู่ (เพจ 11h 206–221) จากนั้นแต่ละเส้นทางข้อมูลจะดำเนินตามกลไกสถานะของตัวเอง:
DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
▲ │
└────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘
สถานะรายงานต่อเลนในเพจ 11h ไบต์ 128–131 (หนึ่งนิบเบิลต่อเลน) และระยะเวลาสูงสุดของแต่ละขั้นตอนถูกประกาศไว้ในเพจ 01h เพื่อให้โฮสต์รู้ว่าต้องรอนานเท่าใด การปิด Tx ต่อเลนอยู่ที่เพจ 10h ไบต์ 130 เบรกเอาต์ที่โมดูลไม่ได้ระบุไว้เป็นการใช้งานจะใช้งานไม่ได้เลย (ดูความเร็วและอัตรา)
การตรวจติดตาม: แฟล็ก ค่าที่ตรวจวัด VDM
- ค่าที่ตรวจวัดของโมดูล (เพจล่าง 14–25) และค่าที่ตรวจวัดของเลน (เพจ 11h: กำลังส่ง (Tx) 154–169, ไบอัส Tx 170–185, กำลังรับ (Rx) 186–201, 2 ไบต์ต่อเลน) ใช้รูปแบบ 16 บิตเดียวกับ SFP/QSFP (หน่วย)
- ค่าเกณฑ์ อยู่ที่เพจ 02h แฟล็ก ค้างค่าไว้และล้างเมื่ออ่าน โดยมีมาสก์ต่อแฟล็ก IntL ส่งสัญญาณเมื่อมีแฟล็กที่ไม่ถูกมาสก์
- VDM (เพจ 20h–2Fh) เพิ่มค่าที่สังเกตได้ซึ่งสเปกรุ่นเก่าไม่เคยมี ได้แก่ BER ก่อน FEC, เฟรม FEC ที่แก้ไม่ได้, SNR ต่อเลน, อุณหภูมิและอายุการใช้งานของเลเซอร์, eSNR, พารามิเตอร์การเปลี่ยนระดับ PAM4 โดยแต่ละตัวมีตัวบ่งชี้ ค่าเกณฑ์ และแฟล็กของตัวเอง นี่คือวิธีที่โมดูล 400G รายงานคุณภาพลิงก์ ก่อน ที่ความผิดพลาดจะไปถึงโฮสต์ (การตรวจติดตาม)
CDB — บล็อกข้อมูลคำสั่ง
เพจ 9Fh คือเมลบ็อกซ์ โฮสต์เขียน ID คำสั่ง (ไบต์ 128–129) ความยาวเพย์โหลด (130–132) เช็กซัม (133) และเพย์โหลดภายในสูงสุด 120 ไบต์ (136–255) หรือเพิ่มเติมได้ในเพจ EPL A0h–AFh โมดูลจะประมวลผลและรายงานในไบต์สถานะ 37–38 พร้อมเพย์โหลดตอบกลับ คำสั่งมาตรฐานได้แก่:
| คำสั่ง | จุดประสงค์ |
|---|---|
| 0000h | สอบถามสถานะ |
| 0040h / 0041h | ความสามารถของโมดูล / ความสามารถการจัดการเฟิร์มแวร์ |
| 0100h | ขอข้อมูลเฟิร์มแวร์ (อิมเมจที่ทำงานอยู่และที่ไม่ได้ใช้งาน) |
| 0101h | เริ่มดาวน์โหลดเฟิร์มแวร์ |
| 0103h / 0104h | เขียนบล็อกเฟิร์มแวร์ผ่าน LPL / EPL |
| 0107h | ดาวน์โหลดเสร็จสมบูรณ์ |
| 0109h / 010Ah | เรียกใช้อิมเมจ / ยืนยันอิมเมจ |
| 0102h | ยกเลิก |
CDB คือกลไกที่เครื่องมือของผู้ผลิตใช้อัปเดตเฟิร์มแวร์ของโมดูลในภาคสนาม และที่ผู้ผลิตบางรายใช้ทำฟังก์ชันตั้งค่าและปลดล็อก การรองรับและความสามารถถูกประกาศไว้ในเพจ 01h
เช็กซัมและรหัสผ่าน
เพจ 00h ไบต์ 222 เป็นเช็กซัมของไบต์ 128–221 เพจ 01h, 02h และ 04h มีเช็กซัมของเพจอยู่ที่ไบต์ 255 (เช็กซัม) รหัสผ่าน (122–125) และรูปแบบการปลดล็อกของผู้ผลิตอยู่นอกเหนือขอบเขตของสเปก (ดูการเขียนโค้ด EEPROM ใหม่)
การรองรับของโฮสต์
ระบบปฏิบัติการเครือข่ายรองรับ CMIS 4.0 และ 5.x ในระดับความลึกที่ต่างกัน บางระบบควบคุมกระบวนการการใช้งาน/เส้นทางข้อมูลแบบเต็มรูปแบบ บางระบบก็แค่ปล่อย LPMode แล้วคาดหวังให้โมดูลเริ่มทำงานเอง ความแตกต่างนี้คือสาเหตุเบื้องหลังปัญหาส่วนใหญ่ที่ “ตรวจพบแต่ไม่พร้อมใช้งานสักที” (ดูปัญหา CMIS, สิ่งที่โฮสต์ทำ)
ใน CodingBox
CodingBox ตรวจพบ CMIS จากไบต์ตัวระบุและไบต์รุ่น อ่านหน่วยความจำส่วนล่าง เพจ 00h, 01h, 02h และเพจเลนแบบแบงก์ ถอดรหัสตัวบ่งชี้การใช้งานเทียบกับ SFF-8024 แสดงสถานะโมดูลและเส้นทางข้อมูล พร้อมค่าที่ตรวจวัดต่อเลนในDDM และแก้ไขข้อมูลระบุตัวตนโดยคำนวณเช็กซัมของเพจใหม่ในEEPROM editor การดำเนินการเฟิร์มแวร์ผ่าน CDB เป็นเรื่องเฉพาะของผู้ผลิตและอยู่นอกขอบเขตของตัวแก้ไข
ตารางระดับรีจิสเตอร์: แผนที่เพจล่าง, แผนที่เพจบน 00h/01h/02h, แผนที่เพจเลน 10h/11h, VDM, CDB