光模块知识 · 北亿纤通
CMIS是什么?光模块通用管理接口规范详解(400G/800G/1.6T)
一、为什么需要CMIS
光模块不只是“插上就能用”的电光转换器件。交换机需要读取模块的厂商、型号、序列号和类型信息,需要控制模块进入低功耗或工作状态,还需要实时获取温度、电压、偏置电流和收发光功率等数字诊断(DDM)数据,用于告警与运维。这些交互都通过模块上的管理接口完成。
在CMIS之前,SFP/SFP+系列主要使用SFF-8472,QSFP+/QSFP28系列主要使用SFF-8636。这两份规范面向通道数固定、工作模式单一的模块设计,难以描述400G以后出现的新需求:一个8通道模块可能支持多种“应用”(例如整口400G或拆分为4×100G),需要按数据通路分组初始化;高功耗模块需要受控的上电流程;DSP模块还需要固件升级和更丰富的链路诊断。为此,QSFP-DD MSA于2018年发布CMIS 3.0,并在后续版本中把它发展为一套与具体封装无关的通用管理规范。
二、CMIS的版本演进
| 版本 | 发布方 | 时间 | 要点 |
|---|---|---|---|
| CMIS 3.0 | QSFP-DD MSA | 2018年 | 首个公开版本,面向8×/16×可插拔模块 |
| CMIS 4.0 | QSFP-DD MSA | 2019年5月 | 引入VDM多功能诊断监控、CDB命令通道(Page 9Fh、A0h–AFh)、诊断页13h/14h;与3.0不互通 |
| CMIS 5.0 | QSFP-DD MSA | 2021年5月 | 大规模整理与修正,调整状态机与时序,建议4.0实现升级到5.0 |
| CMIS 5.1 / 5.2 | QSFP-DD MSA | 2021年11月 / 2022年 | 维护更新与可选功能扩展,保持与5.x前版本兼容 |
| CMIS 5.3 | OIF | 2024年9月 | 新增共封装光学(CPO)、ELSFP外置光源、SPI接口、链路训练等支持,并增强模块能力通告 |
同一主版本号内(如5.x)规范保持向后兼容,跨主版本(4.0与5.0)则可能存在不兼容之处,因此主机软件通常需要识别模块声明的CMIS版本号。相干光模块(如400ZR)在CMIS基础上还使用OIF的C-CMIS扩展规范。
三、CMIS的核心组成
3.1 管理总线与内存映射
CMIS模块通过I²C兼容的两线接口(TWI)与主机通信,主机可直接寻址256字节空间:字节0–127为始终可访问的低位内存(Lower Memory),存放模块状态、标志、全局监控值以及Bank/Page选择寄存器(字节126、127);字节128–255为高位内存,通过选择不同Bank与Page映射出大量寄存器页。这种分页方式让一个模块可以容纳远超256字节的信息。
| 页 | 主要内容 |
|---|---|
| Page 00h | 管理信息:厂商名称、料号、序列号、日期码、连接器类型等 |
| Page 01h | 能力通告:支持的功能、应用相关属性、页支持情况等 |
| Page 02h | 监控阈值:温度、电压、光功率、偏置电流的高/低告警与预警门限 |
| Page 10h / 11h | 按通道的控制与状态:数据通路配置、Tx禁用、各通道标志与监控值 |
| Page 13h / 14h | 诊断功能:环回、PRBS码型发生与检测、误码统计等 |
| Page 20h–2Fh | VDM多功能诊断监控,例如FEC前误码率、信噪比等扩展观测量 |
| Page 9Fh、A0h–AFh | CDB命令/应答消息通道,用于固件升级等复杂操作 |
3.2 模块状态机(MSM)
CMIS用模块状态机规范上电过程:模块插入后处于低功耗状态(ModuleLowPwr),此时只允许读取管理信息、功耗不超过规定上限;主机确认端口散热与供电预算满足要求后,通过LPMode硬件信号或软件LowPwr控制位放行,模块经ModulePwrUp进入ModuleReady;异常时进入ModuleFault。这一机制避免了高功耗800G/1.6T模块在插入瞬间冲击主机电源。
3.3 数据通路状态机(DPSM)与应用选择
CMIS把模块内一组协同工作的通道称为一条“数据通路”(Data Path)。模块在通告表中列出所支持的应用,每个应用由主机侧接口代码与介质侧接口代码组合描述(代码定义引用SFF-8024),例如一个400G DR4模块既可通告“400GAUI-8 C2M + 400GBASE-DR4”的整口应用,也可通告“100GAUI-2 C2M + 100GBASE-DR”的4×100G拆分应用。主机通过应用选择码(AppSel)为各通道指定应用,再驱动数据通路经DPDeactivated、DPInit、DPInitialized、DPTxTurnOn等状态进入DPActivated,完成激活。端口拆分(Breakout)正是依靠这套机制实现的。
3.4 数字诊断与VDM
CMIS保留了传统DDM的核心监控量:模块温度、供电电压,以及每通道的发射偏置电流、发射光功率和接收光功率,并配有告警/预警阈值与锁存标志、掩码和中断(IntL)机制。对于带DSP的高速模块,VDM还能提供FEC前误码率、信噪比等更贴近链路质量的指标,帮助运维人员在误码累积为丢包之前发现劣化链路。
3.5 CDB命令与固件升级
CDB(Command Data Block)是CMIS在寄存器读写之上定义的命令/应答通道,可以传输较大数据块。其最典型的用途是模块固件在线升级:主机分段下载固件镜像,模块在A/B双镜像之间切换运行并确认提交,从而在不拔出模块的情况下修复DSP固件问题。
四、CMIS与SFF-8636、SFF-8472的区别
| 对比项 | SFF-8472 | SFF-8636 | CMIS |
|---|---|---|---|
| 主要适用 | SFP / SFP+ / SFP28 | QSFP+ / QSFP28 等4通道模块 | QSFP-DD、OSFP、QSFP112、QSFP、COBO等 |
| 地址结构 | A0h / A2h 两个器件地址 | 单地址,高位内存分页 | 单地址,Bank + Page 两级分页 |
| 状态机 | 无统一定义 | 简单的低功耗控制 | 模块状态机 + 数据通路状态机 |
| 多应用与拆分 | 不支持 | 有限 | 原生支持应用通告与按通道选择 |
| 扩展诊断 | 基础DDM | 基础DDM | DDM + VDM + 环回/PRBS诊断 |
| 固件升级 | 无标准方式 | 无标准方式 | CDB标准化命令通道 |
五、CMIS在800G/1.6T、LPO与CPO中的作用
在800G光模块和1.6T光模块中,CMIS是主机识别模块类型、完成端口拆分、监控链路和升级DSP固件的基础。LPO/LRO线性驱动光模块虽然去除或简化了DSP,管理接口同样采用CMIS,但由于缺少DSP提供的链路观测,其可读取的诊断信息通常少于DSP模块。AOC与AEC有源线缆也普遍采用CMIS管理。面向CPO共封装光学,CMIS 5.3增加了对共封装光引擎与ELSFP外置激光源的管理支持,说明这套规范正从可插拔模块延伸到下一代光互连。关于DSP与线性方案的取舍,可阅读LPO优缺点详解。
六、工程实践:选型与调试时关注什么
- 版本匹配:确认交换机或网卡操作系统支持的CMIS版本,重点关注4.0与5.x之间的差异;
- 应用通告核对:检查模块通告的应用列表是否包含所需的整口或拆分模式,避免端口无法up;
- 初始化时序:关注模块从低功耗到就绪、数据通路激活所需时间,主机超时设置过短可能导致误判故障;
- 诊断监控:通过网络操作系统(如SONiC的收发器管理进程)或Linux的ethtool -m命令读取DDM/VDM数据,并合理配置告警阈值;
- 固件管理:通过CDB升级固件时应在维护窗口内操作,并在升级前后记录固件版本;
- 兼容性测试:批量导入前与目标主机做插拔、上电、拆分和长时间稳定性测试,详见AI数据中心光模块选型指南。
更多高速光模块典型规格可在产品中心查看,包括400G光模块等。
如需查看北亿纤通在售型号,可浏览北亿纤通产品站的OSFP 800G 光模块、QSFP-DD800 光模块分类页(具体型号与参数以产品页为准)。
常见问题(FAQ)
CMIS和DDM是什么关系?
DDM(数字诊断监控)是指模块上报温度、电压、偏置电流和光功率等监控量的功能;CMIS是完整的管理接口规范,DDM只是其中的一部分,CMIS还包含状态机、应用选择、VDM扩展诊断和CDB命令等内容。
CMIS 4.0和CMIS 5.0模块能混用吗?
不一定。CMIS 5.0相对4.0修改了部分寄存器含义和时序,规范本身提示两者可能不互通,主机软件需要识别模块的CMIS版本。同一主版本内(如5.0到5.3)保持向后兼容。
QSFP28光模块使用CMIS吗?
通常不使用。QSFP28等4通道模块主要使用SFF-8636,SFP系列使用SFF-8472;CMIS主要用于QSFP-DD、OSFP、QSFP112等400G及以上速率模块,也可用于部分QSFP形态的新模块。
CMIS由哪个组织维护?
CMIS最初由QSFP-DD MSA制定并发布至5.2版本,之后由OIF(光互联论坛)负责维护,OIF于2024年发布了CMIS 5.3。
说明:本文为行业通用技术科普,文中数值为业内典型值或公开资料中的常见范围,典型规格,具体以实际型号为准。