CMIS — सामान्य प्रबंधन
CMIS, यानी Common Management Interface Specification, हर नए हाई-स्पीड फ़ॉर्म फ़ैक्टर के लिए मैनेजमेंट मॉडल है: QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD और SFP112 (SFP+ with CMIS के तौर पर), DSFP, COBO और CMIS-सक्षम QSFP। इसकी शुरुआत QSFP-DD MSA (CMIS 3.0, 2018) में हुई, इसे OSFP और COBO ग्रुप ने अपनाया, और वर्शन 5.0 (2021) से इसे OIF मेंटेन करता है। SFF-8636 के मुक़ाबले यह बड़ा मेमोरी मैप भर नहीं बल्कि एक अलग मॉडल है: 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 with CMIS… (SFF-8024) |
| 1 | CMIS रिविज़न | major.minor निबल: 50h = 5.0, 40h = 4.0, 30h = 3.0 |
| 2 | मेमोरी कैरेक्टरिस्टिक्स | बिट 7 फ़्लैट मेमोरी, साथ में stepped-config-only और अन्य कैपेबिलिटी बिट |
| 3 | मॉड्यूल स्टेट | बिट 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; बिट 0 इंटरप्ट डीअसर्टेड |
| 8–11 | मॉड्यूल फ़्लैग | स्टेट चेंज, तापमान/Vcc अलार्म, aux अलार्म, कस्टम; लैच्ड, रीड पर क्लियर |
| 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 के लिए busy / success / fail |
| 39–40 | एक्टिव फ़र्मवेयर | चल रही इमेज का major.minor |
| 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 मॉड्यूल एप्लिकेशन एडवर्टाइज़ करता है — होस्ट इलेक्ट्रिकल इंटरफ़ेस और मीडिया इंटरफ़ेस के जोड़े, लेन काउंट के साथ:
| डिस्क्रिप्टर | होस्ट इंटरफ़ेस | मीडिया इंटरफ़ेस | होस्ट लेन / मीडिया लेन | उदाहरण |
|---|---|---|---|---|
| App 1 | 12h 400GAUI-8 C2M | 1Ch 400GBASE-DR4 | 8 / 4 | एक 400G लिंक |
| App 2 | 0Eh 100GAUI-2 C2M | 14h 100GBASE-DR | 2 / 1 | 4 × 100G ब्रेकआउट |
होस्ट प्रति लेन एक एप्लिकेशन चुनता है AppSel (बिट 7–4), एक DataPathID (बिट 3–1) और एक्सप्लिसिट-कंट्रोल बिट Staged Control Set 0 (पेज 10h बाइट 145–152) में लिखकर, फिर ApplyDPInit (पेज 10h बाइट 143) असर्ट करके। मॉड्यूल ConfigStatus (पेज 11h बाइट 202–205: accepted, rejected, invalid AppSel, invalid lane combination…) में जवाब देता है और स्वीकार की गई वैल्यू Active Control Set (पेज 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 बाइट) SFP/QSFP जैसे ही 16-बिट फ़ॉर्मैट इस्तेमाल करते हैं (यूनिट)।
- थ्रेशोल्ड पेज 02h पर हैं; फ़्लैग लैच्ड होते हैं और रीड पर क्लियर होते हैं, हर फ़्लैग के लिए मास्क के साथ; IntL किसी भी अनमास्क्ड फ़्लैग का सिग्नल देता है।
- VDM (पेज 20h–2Fh) ऐसे ऑब्ज़र्वेबल जोड़ता है जो पुराने स्पेक्स में कभी नहीं थे: pre-FEC BER, अनकरेक्टेबल 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 रिलीज़ करते हैं और उम्मीद करते हैं कि मॉड्यूल ख़ुद ऊपर आ जाए। यही अंतर ज़्यादातर “recognised but never ready” टिकट के पीछे है — CMIS की समस्याएँ, होस्ट क्या करता है।
CodingBox में
CodingBox आइडेंटिफ़ायर और रिविज़न बाइट से CMIS पहचानता है, लोअर मेमोरी, पेज 00h, 01h, 02h और बैंक्ड लेन पेज पढ़ता है, SFF-8024 के मुक़ाबले एप्लिकेशन डिस्क्रिप्टर डिकोड करता है, DDM पर मॉड्यूल और डेटा-पाथ स्टेट व प्रति-लेन मॉनिटर दिखाता है, और EEPROM editor में पेज चेकसम दोबारा कैलकुलेट करते हुए पहचान जानकारी एडिट करता है। CDB पर फ़र्मवेयर ऑपरेशन वेंडर-स्पेसिफ़िक हैं और एडिटर के दायरे से बाहर हैं।
रजिस्टर-लेवल टेबल: लोअर पेज मैप, अपर पेज मैप 00h/01h/02h, लेन पेज मैप 10h/11h, VDM, CDB।