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 通道的分 bank 分頁、模組與每條數據通路各自的 狀態機、以 應用(application) 取代兼容性位元欄位、多樣化診斷(VDM)以及用於固件和擴展功能的命令通道(CDB)。版本位元組與歷史:規範版本。
記憶體模型
| 區域 | 尋址 | 內容 |
|---|---|---|
| 下層頁面(位元組 0–127) | 始終可見 | 識別碼、版本、模組狀態、旗標、模組監測量、全局控制、介質類型、應用描述符 1–8、密碼、bank select 126、頁面選擇 127 |
| 上層頁面 00h(128–255) | 頁面 127 = 00h | 廠商資訊塊、功耗等級、連接器、線纜長度、介質技術、校驗和 |
| 01h | 能力廣播 | 固件/硬件版本、鏈路長度、波長、支援的頁面與 bank、各階段耗時、信號完整性控制、描述符 9–15 |
| 02h | 閾值 | 模組與通道警報/警告閾值 |
| 04h | 激光器能力 | 可調諧激光器的頻率網格與範圍(SFF-TA-1004 譜系) |
| 10h(分 bank) | 通道控制 | 數據通路去初始化、Tx disable、極性、squelch、均衡、分級控制集(staged control set) |
| 11h(分 bank) | 通道狀態 | 數據通路狀態、逐通道旗標、通道監測量、配置狀態、當前生效控制集 |
| 12h(分 bank) | 可調諧激光器控制 | 每通道的信道/波長 |
| 13h–14h(分 bank) | 診斷 | 環回、PRBS 發生器與檢測器 |
| 20h–2Fh(分 bank) | VDM | 描述符、採樣值、閾值、旗標 |
| 9Fh | CDB | 命令塊:命令 ID、長度、校驗和、本地負載 |
| A0h–AFh | CDB EPL | 用於大數據量傳輸(固件鏡像)的擴展負載 |
| 80h–FFh(其他) | 廠商 | 自定義頁面 |
bank 尋址 8 條通道:bank 0 對應通道 1–8,bank 1 對應通道 9–16,依此類推;具體實現了多少個 bank 由 page 01h 廣播。只有 page 00h 的模組會置位 flat memory 位(位元組 2 bit 7)。總線:單一地址 A0h,最高 400 kHz,每個插槽一根 ModSelL — 雙線介面。
下層頁面 — 主機據以運行的位元組
| 位元組 | 欄位 | 說明 |
|---|---|---|
| 0 | 識別碼 | 18h QSFP-DD、19h OSFP、1Eh QSFP with CMIS…(SFF-8024) |
| 1 | CMIS 版本 | 高低半位元組分別為主、次版本號:50h = 5.0,40h = 4.0,30h = 3.0 |
| 2 | 記憶體特性 | bit 7 為 flat memory,另有僅支援分級配置等能力位 |
| 3 | 模組狀態 | bit 3–1:1 LowPwr,2 PwrUp,3 Ready,4 PwrDn,5 Fault;bit 0 中斷未置位 |
| 8–11 | 模組旗標 | 狀態變化、溫度/Vcc 警報、輔助警報、自定義;均為鎖存,讀取後清除 |
| 14–25 | 模組監測量 | 溫度、Vcc、Aux1–Aux3(TEC 電流、激光器溫度、附加電源),以及自定義項 |
| 26 | 全局控制 | 5.x:bit 6 LowPwrAllowRequestHW,bit 5 squelch method,bit 4 LowPwrRequestSW,bit 3 軟件復位(4.x:bit 6 LowPwr,bit 4 ForceLowPwr) |
| 37–38 | CDB 狀態 | 命令塊 1 和 2 的 busy / success / fail |
| 39–40 | 當前固件 | 運行鏡像的主、次版本號 |
| 85 | 介質類型 | 01h MMF,02h SMF,03h 無源銅纜,04h 有源電纜,05h BASE-T |
| 86–117 | 應用描述符 1–8 | 每個 4 位元組:主機介面 ID、介質介面 ID、主機/介質通道數、主機通道分配選項 |
| 118–121 | 密碼修改 | 由廠商定義 |
| 122–125 | 密碼輸入 | 由廠商定義 — 寫保護密碼存放於此 |
| 126 | Bank 選擇 | — |
| 127 | 頁面選擇 | — |
模組狀態機
Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
▲ │
└──────── ModulePwrDn ◄────────┘
(發生致命錯誤時,任何狀態都可能轉入 ModuleFault)
- MgmtInit — 模組啟動其控制器,此時尚不能讀取身份資訊(按硬件規範最長 2 s)。
- ModuleLowPwr — 可讀取身份、能力廣播和閾值;功耗限制在 class 1;主機在此階段校驗模組。
- ModulePwrUp → ModuleReady — 主機拉低 LPMode 引腳(或清除 LowPwrRequestSW),模組隨即為光學部分上電;此後即可初始化數據通路。
- ModulePwrDn — LPMode 置位後的相反過程。
一直停留在 LowPwr 的模組是最典型的 CMIS 故障: CMIS 問題排查、功耗與熱管理。
應用與數據通路
CMIS 模組不使用兼容性位元,而是廣播 應用(application) — 主機電介面與介質介面的搭配,並給出通道數:
| 描述符 | 主機介面 | 介質介面 | 主機通道 / 介質通道 | 示例 |
|---|---|---|---|---|
| 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 拆分 |
主機通過向 Staged Control Set 0(page 10h 位元組 145–152)寫入 AppSel(bit 7–4)、 DataPathID(bit 3–1)和顯式控制位來為每條通道選擇應用,隨後置位 ApplyDPInit(page 10h 位元組 143)。模組在 ConfigStatus(page 11h 位元組 202–205:accepted、rejected、invalid AppSel、invalid lane combination…)中給出應答,並將被接受的值複製到 Active Control Set (page 11h 206–221)。此後每條數據通路各自運行自己的狀態機:
DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
▲ │
└────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘
各通道的狀態記錄在 page 11h 位元組 128–131 中(每通道佔一個半位元組),每一步的最長耗時在 page 01h 中廣播,供主機據此判斷等待時間。逐通道的 Tx disable 位於 page 10h 位元組 130。模組未列為應用的拆分方式一律不可用 — 速度與速率。
監測:旗標、監測量、VDM
- 模組監測量(下層頁面 14–25)和 通道監測量(page 11h:Tx 功率 154–169,Tx 偏置電流 170–185,Rx 功率 186–201,每通道 2 位元組)使用與 SFP/QSFP 相同的 16 位元格式(單位)。
- 閾值 位於 page 02h;旗標 均為鎖存,讀取後清除,且每個旗標各有掩碼;IntL 在任意未屏蔽的旗標置位時給出信號。
- VDM(page 20h–2Fh)新增了舊規範從未提供的觀測量:pre-FEC BER、不可糾正的 FEC 幀數、每通道 SNR、激光器溫度與老化、eSNR、PAM4 電平轉換參數 — 每一項都有各自的描述符、閾值和旗標位。這就是 400G 模組能在錯誤到達主機之前就報告鏈路品質的方式(監測)。
CDB — 命令數據塊
page 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 是廠商工具在現場升級模組固件的途徑,部分廠商也用它實現配置和解鎖功能。支援情況與特性在 page 01h 中廣播。
校驗和與密碼
page 00h 位元組 222 是位元組 128–221 的校驗和;page 01h、02h 和 04h 在位元組 255 中攜帶各自的頁面校驗和(校驗和)。密碼(122–125)和廠商解鎖方案不在規範範圍內 — EEPROM 重編程。
主機支援情況
各家網絡作業系統對 CMIS 4.0 和 5.x 的實現深度不一:有的會完整驅動應用/數據通路流程,有的只是釋放 LPMode,指望模組自行完成上電。這一差異是大多數「已識別但始終未就緒」故障的根源 — CMIS 問題排查、主機做了甚麼。
在 CodingBox 中
CodingBox 通過識別碼和版本位元組識別 CMIS,讀取低位記憶體、page 00h、01h、02h 以及分 bank 的通道頁面,依據 SFF-8024 解碼應用描述符,在 DDM 中顯示模組與數據通路狀態及逐通道監測量,並在 EEPROM editor 中編輯身份資訊,同時重新計算頁面校驗和。通過 CDB 進行的固件操作因廠商而異,不在編輯器功能範圍內。
暫存器級別的表格:下層頁面映射表、上層頁面映射表 00h/01h/02h、通道頁面映射表 10h/11h、VDM、CDB。