QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:02 低页内存(控制与状态的基本信息)
文章目录
- 8.2.0 总述
- 8.2.1 管理信息字段(Management Characteristics)
- (1)SFF8024 ID(SFF8024Identifier)字节0,bit 7~0
- (2)支持的CMIS版本(CmisRevision)字节1,bit 7~0
- (3)内存模式(MemoryModel)字节2,bit 7
- (4)是否逐步配置(SteppedConfigOnly)字节2,bit 6
- (5)MCI接口最大速率(MciMaxSpeed)字节2,bit 3~2
- 8.2.2 全局信息字段
摘要:此专栏主要介绍光模块通用管理接口规范(Common Management Interface Specification, CMIS)协议规范V5.0的解读。本文主要关注协议文档的8.2小节管理信息和全局信息的内容。不只是简单地翻译文档,还剖析协议规定背后的深意。为了方便和协议文档内容相互对应,本文的章节编号和协议文档一致。
8.2.0 总述
在 CMIS 的内存布局里,低页内存(Lower Memory,00h–7Fh)就像一个永远敞开的信息窗口。这 128 个字节采用静态寻址,即每一个地址都固定指向同一个物理寄存器,主机总能在第一时间、不加任何配置就读到它们。低页内存和高页内存的对比如下表所示。对于平坦内存模块,必须支持低页内存和高页内存的Page 00h。
CMIS文档的表8-2简要罗列了低页内存各个字节存储的内容,如下所示。
8.2.1 管理信息字段(Management Characteristics)
主机通过管理信息字段可以知道”这个模块是否可以管理”和“如何管理”。该字段包含SFF8024 ID、支持的CMIS版本、内存模式、是否逐步配置、MCI接口最大速率。
(1)SFF8024 ID(SFF8024Identifier)字节0,bit 7~0
在SFF-8024协议文档的表4-1中,列举了00h~FFh代表的光模块类型。
例如:18h代表QSFP-DD,19h代表OSFP,26h代表XPO。主机根据这个字段,对应SFF8024协议就可以知道这个光模块是哪种类型。
(2)支持的CMIS版本(CmisRevision)字节1,bit 7~0
表明此光模块支持的CMIS版本。高四位(bit7~4)表示小数点前的数字。低四位(bit3~0)表示小数点后的数字。
例如:01h代表支持的CMIS版本为0.1,21h表示版本为2.1。
(3)内存模式(MemoryModel)字节2,bit 7
表明此光模块的内存模式是平坦内存还是分页内存。
- 0b:分页内存,高页包含00h~02h页,和10h~11h页。
- 1b:平坦内存,高页只包含00h页。
(4)是否逐步配置(SteppedConfigOnly)字节2,bit 6
- 背景:
模块内部有一个数据路径状态机(DPSM,Data Path State Machine),它管理着模块从上电、初始化、配置到正常工作(Activated)的各个状态。当主机需要改变模块的工作模式(比如从 400G SR4 切换到 100G FR1)时,就需要执行一次重配置,让 DPSM 从当前状态安全地过渡到新状态。 - 0b:无干预重配置
- 含义:主机只需把新的配置参数(写在内存页里)准备好,然后发一次 ApplyImmediate 或 ApplyDPInit 命令就可以了。模块会自己判断当前状态,自动完成内部状态转换的全过程,无需主机再逐步干预。
- 特点:自动化、一步到位、速度快、省去主机反复读写步骤。
- 适用场景:特别适合要求快速切换速率(比如交换机之间自动协商链路速率)的场景。
- 1b:逐步重配置
- 含义:模块不支持全自动切换,需要主机严格按照 DPSM 状态的步骤,一步一步下发命令来引导模块。
- 典型流程:比如主机必须先写命令让模块进入低功耗状态或复位某个模块,等到状态确认后,再写命令进行下一步配置,最后再写激活命令。
- 适用场景:这类模块的硬件或固件较简单,或者它的设计本身就不支持热切换复杂功能,但更稳健。代价是重配置耗时较长。
逐步配置存在两条关键约束:
- ApplyDPInit 被“假接受”:无论模块当前处于什么状态,主机写入 ApplyDPInit 命令在总线通信上不会有错误,但模块不会真的执行它,DPSM 状态不会发生任何变化。这相当于一个安全保护,防止一个不当命令把模块打乱。
- ApplyImmediate 被忽略:模块完全不支持这个即时应用命令。意味着主机不能指望一键切换,必须遵循固定步骤。
注意:
有些高速互联标准,比如 InfiniBand 或 Fibre Channel,在和有源光缆(AOC)或有源模块对接时,需要做时间非常敏感的速率协商。如果采用逐步重配置,这个协商过程可能因响应太慢而超时失败。所以,任何声称支持这类应用的模块,强制要求实现 0b(无干预重配置),保证协商能一次命令瞬间完成。
字节2,bit 5~4:保留。
(5)MCI接口最大速率(MciMaxSpeed)字节2,bit 3~2
表明此光模块MCI接口(通常为I2C总线)支持的最大速率。
00b:最大速率400kHz。
01b:最大速率1MHz。
10b 和 11b:保留。
字节2,bit 1~0:保留。
将管理信息字段汇总如下表所示。
8.2.2 全局信息字段
描述光模块的一些全局信息。
- 平坦内存模块的ModuleState要求始终上报为ModuleReady。因为平坦内存模块不存在复杂的状态切换过程,所以它永远直接返回ModuleReady,告诉主机:“我不需要什么复杂切换流程,你可以随时管理我。”
- 并不是所有的状态都能被观测到。因为有些非常短暂、自动跳转的过度状态,主机要去读取时,这些状态可能就已经跳过了。因此,主机只需要关注模块当下的状态,而不需要捕获所有中间状态才做决策,不必纠结“为什么没看到状态 2,直接从状态 1 跳到了 3 ”。
这就是本篇文章的全部内容,欢迎有疑问的小伙伴在评论区留言讨论。下篇将解读CMIS 规范中关于“标志、掩码和中断”的总纲。
