7 高级管理特性
高级管理特性#
本章描述高级管理特性和功能,这些特性均为可选的。
模块在模块管理内存映射中通告其实际支持的高级特性。
7.1 多功能诊断监控(VDM)#
多功能诊断监控(VDM)是一项可选特性,扩展了性能和诊断监控能力,包括新功能(统计)以及可能被监控的新观测量(当模块支持时)。
模块在 01h:142.6 中通告通用 VDM 支持。当通用支持时,VDM 的 Fh 页提供更详细的信息以及实际支持的 VDM 观测量的描述符数组。
VDM 功能在 20h-2Fh 页中表示,详见第 8.19 节,其中表 8-167 展示了这些 VDM 页的摘要。
7.1.1 目的与背景#
高级模块具有新型观测量。对于所有观测量,都需要常规的性能监控功能:实时采样值和阈值越限通知(包括告警和警告阈值)。
例如,对于具有可调谐激光器的模块,实现密集波分复用(DWDM)光接口时,激光波长(或频率)监控非常重要,因为它可以评估激光器的健康状况。当无法直接测量激光频率偏差时,通常使用激光温度与目标值的偏差作为替代。此外,DWDM 模块通常使用热电冷却器(TEC)来控制激光器温度,流过 TEC 的电流是模块健康指标。此类观测量的阈值越限警告或告警是模块即将发生故障的早期信号。
对于使用 PAM4 信令的模块,若干额外的观测量有助于确定模块和线路信号质量的健康状况。这些包括误码率(BER)和帧错误率或帧错误计数、信噪比估计,以及表征接收 PAM 眼图的电平转换(判决阈值)测量。
各种模块都可能包含前向纠错(FEC),这使得可以估计数字传输质量和链路余量:纠错计数器和不可纠正帧计数器用于推导帧、符号或误码计数,以及相关的错误率(每单位时间)或误码比(每接收数据量)。错误率或误码比随时间的短期波动最好通过统计来观察,跟踪最小值、最大值和平均值。统计间隔在主机控制之下。
7.1.2 技术概述#
VDM 首先扩展了可监控和告警的观测量列表,超出了低位内存和 Banked|h 中定义的核心管理功能范围。模块可能提供的额外监控观测量列表见表 8-170。
VDM 还通过为具有快速内部采样率的基本观测量添加区间统计支持来扩展模块的监控功能。
任何 VDM 监控器的基本功能与基本监控器的功能相同:
- 提供被监控观测量的当前值(又称采样值、实时值)
- 标志位指示高和低阈值越限,包括警告和告警阈值级别
- 掩码用于抑制与阈值越限标志相关的中断生成
- 阈值越限级别信息(通告的标志设置条件)
VDM 的功能扩展为主机控制的区间统计,适用于观测量的一个子集,即:
- 最小值
- 最大值
- 平均值
注意:统计目前仅支持错误性能观测量,因为有意使用精细的采样时间分辨率来捕获这些性能指标的波动。其他更普遍关注的波动观测量通常以更慢的时间尺度采样或更新,这使得主机可以自行构建任何所需的统计。
注意:区分支持统计的观测量的两种区间类型非常重要:(较短的)采样区间和(较长的)统计收集区间(有时简称为统计区间)。
-
采样区间(或测量区间)是模块内部用于周期性估计或测量观测量一个采样值的区间。采样区间的持续时间未作规定(厂商定义),但通常较短(亚秒级),因为关注的是短时间尺度上的性能相关波动。采样值序列用于馈入观测量的统计,例如统计区间内观测量采样值的最小/最大/平均值。
-
统计收集区间是主机发出的两次”VDM Freeze”请求之间的持续时间,用于获取当前统计结果并同时重启下一统计区间的统计收集。统计收集区间的典型持续时间约为一到几秒。注意统计区间完全由主机定义,可能会有意或无意地变化。这与从其他系统已知的模块生成的周期性”PM tick”不同。除此之外,VDM Freeze 命令的作用类似于主机控制的”PM tick”。
注意:模块应以尽力而为的方式最小化采样区间持续时间的实现相关变化。
注意:由于计数器未被指定为饱和式的,建议主机使用确保计数器类型监控器不超过寄存器可容纳最大值的收集区间持续时间。为避免主机超出此区间时的混淆,PM 计数器应以饱和方式实现。另见第 7.1.5 节关于错误性能统计的描述和第 8.19 节关于 VDM Freeze/Unfreeze 机制的更详细描述。
注意:VDM 错误性能统计通告的采样区间(采样测量区间)(FineIntervalLength, 2Fh:129-139)不指定其他观测量的采样测量持续时间或值更新周期,无论是否支持统计。特别是,错误性能观测量的采样区间是 CMIS 模块特性,而用于读出的”PM 区间”是 CMIS 主机特性。
在某些应用中,VDM 监控不用于性能监督,而仅用于调试和诊断。为允许在正常操作期间节省计算能力,VDM 功能可以在省电模式下被禁用(当通告支持时)。
7.1.3 技术详情#
另见第 8.19 节的更详细描述。
VDM 功能在以下 Banked 页中表示:
- 页 20h-23h:支持的 VDM 观测量描述符(每页 64 个)
- 页 24h-27h:支持的 VDM 观测量的实时采样值(当前值)(每页 64 个)
- 页 28h-2Bh:用于生成 TC 告警或警告的四元阈值(每页 16 个四元组)
- C 页:最多 256 个标志寄存器,每个观测量 4 个标志(告警/警告-高/低)
- D 页:与标志关联的最多 256 个掩码位
- F 页:通告寄存器和握手控制
7.1.3.1 观测量#
VDM 允许模块在 Bank 0 中为 8 个通道提供最多 256 个观测量。最多 3 个额外的 Bank 可以为具有超过 8 个通道的模块提供扩展,每个 Bank 为 8 个通道提供观测量。
VDM 观测量可能与模块整体相关、与数据路径相关,或者可能特定于某条通道。
VDM 观测量通过数值观测量 ID 来标识。
预计并非所有可能的观测量都会被所有模块或所有通道支持。为解决这种情况,模块通告正在监控的观测量。
注意:这允许在不进行重大规范变更的情况下添加新的观测量。
模块通过每个观测量实例(槽位)的 2 字节描述符寄存器通告支持的观测量。
未使用的槽位通过槽位配置寄存器两个字节中的值 00h 来指示。
7.1.3.2 阈值#
提供最多 64 个阈值集合,每个集合包含四个阈值(四元组),256 个观测量中的每一个都(由模块)与阈值组中的一个阈值集合相关联。
注意:某些与性能相关的观测量可能未实现全部四个阈值。例如,BER 不需要低告警或警告阈值,SNR 不需要高告警或警告阈值。
为表示缺失的高(低)阈值,模块应通告可表示的最大(最小)阈值,因为这样的阈值无法被向外越过。
注意:未规定是越过(首选)还是达到阈值会导致标志设置。为获得完整精度,由厂商在数据手册中指定哪些观测量实现了少于全部四个阈值。
实际阈值取决于已开通的应用集合,因此每当开通新应用时可能会发生变化。
注意:模块仅因此原因更新阈值。对于数据路径应用,阈值将在相关数据路径达到 DPInitialized 时更新。对于网络路径应用,媒体侧阈值将在相关网络路径达到 NPInitialized 时更新,主机侧阈值将在相关主机路径达到 DPInitialized 时更新。
注意:建议对阈值感兴趣的主机在数据路径初始化和/或网络路径初始化之后读取阈值。
观测量描述符寄存器还指示每个观测量使用的阈值集合。
注意:VDM 机制假设多个观测量可能共享同一阈值集合,例如在同一观测量在多个通道上被测量时。
7.1.3.3 结构#
256 个观测量槽位分为 4 组。每组由一页描述符、一页实时值(采样值)、一页阈值集合以及各 ¼ 页的标志和掩码组成。
| OIF-CMIS-05.3 | |
|---|---|
| 7.1.4 | PAM4 观测量 |
| 两个 VDM 观测量,信噪比(SNR)和电平转换参数(LTP),是从电 PAM4 幅度直方图中确定的,接收器也可以从中确定切片器的最佳判决阈值。注意:SNR 和 LTP 都是信噪比的度量,但 LTP 对噪声基底更敏感。下面的图 7-1 显示了模块光入口路径的典型框图,显示了 SNR 和电平转换(判决阈值)观测量的测量位置。 | |
| 图 7-1 模块光入口路径 | |
| 下面的图 7-2 显示了在切片器中判决数据之前,通过对水平眼中心的接收信号采样收集的 PAM4 幅度直方图。直方图 x 轴为 bin,y 轴为 bin 命中次数。bin 数量和命中计数量级由厂商定义。注意:同样的观测量可以为 PAM2 定义,只需进行显而易见的修改。 | |
| 图例:µᵢ 第 i 个峰的位置,σᵢ 第 i 个峰的标准差,Pᵢ 第 i 个峰的高度,Vᵢ 第 i 个谷的高度 | |
| 图 7-2 PAM4 幅度直方图 | |
| 峰位置是任意两个谷之间命中次数最多的 bin(第一个和最后一个峰分别在谷 1 以下和谷 3 以上)。谷是两个峰之间命中计数最低的 bin,谷的高度是该最低命中计数的值。 |
| OIF-CMIS-05.3 | |
|---|---|
| 报告的 PAM4 眼图参数 SNR 和 LTP 的计算公式为: | |
| SNR (dB) := 10 * log₁₀ | |
| LTP (dB) := 10 * log₁₀ | |
| 注意:峰位置可以通过邻近 bin 的直方图均值更精确地计算。 | |
| SNR 和 LTP 以 dB 为单位测量,在数值上以 U16 表示,单位为 1/256 dB。 | |
| 注意:在管理寄存器映射中,SNR(dB) 和 LTP(dB) 均以 1/256 dB 单位数值表示。 | |
| 对于厂商指定的波长,报告的 SNR 和 LTP 观测量的精度应在指定温度和电压范围内优于 +/-3 dB。 | |
| 当 PAM 电平之间的最小直方图高度为零时,LTP 值编码为 FFFFh。大于 255.996 dB 的有限 LTP 值编码为 FFFEh。 |
信噪比(SNR)观测量
注意:例如,值 1380h 对应于 19.5 dB 的 SNR。
对于入口光通道,此可观测量表示从电幅度统计估计的光信噪比。
对于入口电通道,此可观测量表示从电幅度统计估计的电信噪比。
对于每条光通道,SNR 定义为三个独立眼图 SNR 的最小值。
PAM 电平转换参数(LTP)观测量
此可观测量表示切片信号电平(判决阈值)周围的电噪声,理想情况下这些阈值应位于直方图计数最少的信号电平(谷值),通过考虑峰高度与谷高度之间的比值来表征。
LTP 以 dB 为单位测量,在数值上以 U16 表示,单位为 1/256 dB。
对于每个眼图,LTP 定义为相邻 PAM 电平均值电压差的一半与相邻电平方差之和的比值。
对于每条电通道,此可观测量表示电信噪比。
对于每条光通道,此可观测量表示从电幅度统计估计的光信噪比。
整体 LTP 定义为三个独立 LTP 的最小值。
注意:这些公式也建议在 VDM 之外使用,在模块性能诊断中。
7.1.5 错误性能统计(FEC)#
7.1.5.1 FEC 相关主观测量#
三种检测错误指标可作为 VDM 采样观测量被支持:
-
帧错误计数¹(FERC)在采样区间内:此观测量表示采样区间内发生的不可纠正 FEC 帧数,以 RS(544,514)等效帧度量。这是一种 FEC 解码器后的错误指标,看似是累积(增长的)观测量,但由于(隐式的但固定的)采样区间持续时间,实际上是强度型(波动的)观测量。
-
FEC 前误码率(BER)在采样区间内:这是强度型(波动的)观测量,表示在采样区间内被 FEC 解码纠正的总比特数除以该采样区间内接收的总比特数。这是平均 FEC 前误码率或误码概率的估计值。
-
最大 FEC 符号错误权重²(SEWmax)在采样区间内:此观测量表示在采样测量区间内 FEC 解码器检测到的 FEC 帧中可纠正 FEC 符号的最高数量。这是一种波动的 FEC 前性能指标。
帧错误以每采样区间 RS(544,514)等效帧为单位报告:当实际使用的 FEC 不同时,测量的帧错误计数按二进制 FEC 帧大小除以 5440 的比例进行缩放。
注意:例如,如果 FEC 帧大小比 RS(544,514) FEC 帧大 10%,则报告的等效帧错误计数将比实际测量的真实帧错误计数高 10%。
注意:这是为了允许比较不同 FEC 编码下的帧错误计数。
对于代数解码器,接收 FEC 帧的符号错误权重(SEW)是 0 到 t 之间的整数,其中 t 表示 FEC 解码器的符号纠错能力⁴。值 t+1 用于不可纠正的 FEC 帧,而 SEW 值 0 意味着 FEC 帧无错误。
注意:与帧错误计数不同,SEWmax 无法缩放到 5440 位的等效帧大小。
对于其他 FEC 方案,例如具有迭代二进制解码的方案,SEW 的定义仍然有效(作为某参考帧内纠正的最大位错误数),并且作为相对性能度量是有用的。
注意:不同的 FEC 方案要达到相同的最大 FEC 后 BER 目标,有不同的最大 FEC 前 BER 要求。
注意:厂商定义的错误性能采样区间理想情况下具有恒定持续时间(例如采样区间内接收的恒定比特数),此名义上恒定的持续时间在 VDM 字段(FineIntervalLength)中通告。然而,由于实现原因(如不确定的任务调度抖动),采样区间的实际持续时间会有轻微变化。实际采样区间持续时间的允许变异性****未作规定。
注意:为使采样统计最有意义且作为性能指标最有用,模块实现应确保采样区间持续时间的相对变化及其与名义采样区间长度的偏差保持尽可能小。具有较大采样区间变化的实现需要更长的采样区间持续时间。
7.1.5.2 FEC 相关统计#
当前采样值
如果支持,主机可以始终读取在最近完成的采样区间内测量的最新 BER、FERC 或 SEWmax 采样值(“实时值”或”当前值”)。
采样统计(最小值、最大值、平均值、总计)
支持统计的模块在厂商特定的精细测量时间间隔(例如 1 ms 或 10 ms)内对 BER、FERC 或 SEWmax 进行短期测量(采样),然后更新内部采样统计变量(最小值、最大值和平均值,或更可能是:累积和加采样计数)。对于 FERC,还计算统计收集周期内所有 FERC 采样值的累积和。
注意:BER 的采样平均值最好从内部累积的误码计数和接收的总比特数计算,因为此方法在数学上等效于对 BER 采样值求平均,但对采样区间长度变化更具鲁棒性。
注意:FERC 每采样区间的采样平均值最好从内部累积的帧错误计数和已处理的采样区间总数计算,因为此方法在数学上等效于对 FERC 采样值求平均,但对采样区间长度变化更具鲁棒性。
统计收集行为
当前统计收集区间中的累积统计随每个新采样值更新,直到主机最终通过请求冻结统计报告寄存器并同时内部重启新区间的统计收集来终止当前统计收集区间。
当没有冻结处于活动状态时,主机可以在当前运行的统计收集区间内的任何时间以较慢的速度读出”实时”统计。
注意:未冻结时,FERC 总计统计是累积(增长的)观测量。
此关闭统计区间并读取稳定结果的机制在第 8.19 节中描述。
示例
Freeze 请求 → Unfreeze 请求 → Freeze 请求 → Unfreeze 请求 → Freeze 请求
图 7-3 BER 短期测量和区间统计(示例)
图 7-3 显示了精细区间测量(即在周期性采样区间中确定的采样值)时间序列的示例,以统计 Freeze 事件为界,这些事件划定了主机统计监控区间(采样统计收集区间)。当没有 Freeze 请求挂起时,在 Unfreeze 请求之后,主机仍然可以读取计算的统计值,这些值随后覆盖最近 Freeze 请求和最近完成的采样区间之间的当前监控周期。
注意:请记住,可用的统计集合取决于观测量类型。
模块为每个精细区间(采样区间)周期性计算 BER/FERC 采样值,以浅色边框表示。主机确定的监控区间(统计收集区间)以深色边框表示。图中顶行显示每个精细区间(采样区间)内内部测量的采样值。底四行显示模块应请求报告的统计。
Min、Max 和 Avg 行显示,在 Unfreeze 请求之后,模块持续更新统计报告值。然后,在下一个 Freeze 请求时,统计报告值停止变化,直到后续 Unfreeze 请求,此时恢复报告新的但尚未完成的主机监控区间的更新统计。当前采样值始终独立于统计冻结而更新。
注意:阈值越限检测也可用于 BER 和 FERC 观测量。模块应使用低阈值 0。为对 FEC 后错误进行告警,FERC 的高阈值也应为 0,除非存在其他纠错方案。
7.1.6 可调谐激光器监控器#
7.1.6.1 TEC 电流#
如果支持,此监控器观测流向冷却激光器 TEC 的电流量。
辅助监控功能中提供整个模块 TEC 的单一观测量。模块应使用 VDM 系统提供每通道 TEC 控制器。
编码、单位和缩放信息见表 8-170。
7.1.6.2 激光频率偏差#
如果支持,此监控器观测目标中心频率与实际当前中心频率之间的差异(以频率单位表示)。这与激光温度测量类似,但以频率差而非温度差表示,厂商可能支持其中一种或两种测量。
编码、单位和缩放信息见表 8-170。
7.1.6.3 激光温度#
如果支持,此监控器观测冷却激光器的目标激光温度与实际当前温度之间的差异。
这是与频率误差类似的测量,但以温度差而非频率差表示,厂商可能支持其中一种或两种测量。
辅助监控功能中提供整个模块激光频率的单一观测量。模块应使用 VDM 系统提供每通道激光温度。
编码、单位和缩放信息见表 8-170。
7.1.7 共封装光学(CPO)监控器#
在许多方面,共封装光学(CPO)对主机表现为一个多通道传输模块,通过多个通道进行并行应用。
注意:假定 CPO 子系统的主机事先了解 CPO 子系统的存在和 CPO 架构。因此,不提供特定的通告。
然而,CPO 模块带有一小组在普通传输模块中不存在的新监控观测量:外部激光器(如有)提供的额外电压和光输入功率级别。
这些额外的观测量作为 VDM 观测量实现。参见第 8.22.1.2 节。
7.2 命令数据块(CDB)消息通信#
7.2.1 特性概述#
可选的命令数据块(CDB)特性允许主机发起的功能交互,超出了仅允许读写寄存器的基本 CMIS 核心交互。
CDB 最好理解为一种非对称的消息交换机制,用于实现命令与应答类型的交互,与调用函数并等待返回结果没有太大区别。为主机(发起方)提供消息发送功能,为模块(目标方)提供消息应答功能,包括状态信息和使用标志的完成通知。
存在两种命令处理变体。在两种情况下,主机都可以发送命令然后去做其他事情,稍后在应答返回结果时再回来,通过轮询或接收中断来确定。在前台处理模式下,模块在命令处理期间拒绝任何寄存器访问,而在后台处理模式下寄存器访问是可能的。
7.2.2 CDB 技术基础#
模块在多个字段 01h:163-166 中通告对 CDB 的支持,如下文和第 8.4.11 节所述。
主机发送 CDB 命令(CMD)消息,该消息由 CMD ID 标识,模块以 CDB 应答(REPLY)消息响应,而不更改 CMD ID。
CMD 和 REPLY 消息交换通过读写位于 CDB 消息页 9Fh(第 8.23 节)的消息头字段和位于 Fh 本地或扩展负载页 A0h-AFh(第 8.24 节)的消息体数据(也称为负载)来执行。
CDB 状态寄存器(00h:37 或 00h:38)通知主机 CDB 设施的状态和最近消息交换的状态,如第 8.2.8 节所述。
CDB 命令完成标志(00h:8.6 或 00h:8.7)在 REPLY 可用时通知主机,如第 8.2.4 节所述。
CDB 消息页 9Fh 包含待执行命令的 CMD 消息头,并提供最多 120 字节的消息体页面内区域,称为本地负载(LPL)区域。
CDB EPL 页 A0h-AFh 为具有大消息体的消息提供最多 2048 字节的扩展负载(EPL)区域。对 EPL 页的支持如第 8.4.11 节所述进行通告。
相同的 LPL 和 EPL 区域用于 CMD 参数和 REPLY 数据,具体取决于第 9 章中的命令规范。虽然消息 REPLY 不会覆盖 CMD 头,但 REPLY 消息体可能覆盖 CMD 消息体。这意味着在任何时间点,CDB 实例中最多执行一次消息交换(即不支持消息排队)。
7.2.3 CDB 消息发送与应答接收(主机)#
主机在写入特定字节地址(9Fh:129)时或在包含字节 9Fh:129 的对 Fh 的多字节写入以 STOP 条件结束时触发发送消息(见表 8-54)。使用的方法由模块通告。
当模块在后台执行 CDB 命令处理时,主机可以轮询字节 CdbStatus1(00h:37)或 CdbStatus2(00h:38)中 CDB 命令执行的状态。详见第 8.2.8 节。
当 CDB 命令处理完成时,模块使用字节 00h:8 中的 CdbCommandComplete 标志(带有可屏蔽中断)通知主机(见表 8-9)。
不响应支持的 CDB 命令的模块被视为有缺陷,主机可能需要发起硬件复位或发出 CMD 0004h(中止处理)来恢复模块。
7.2.4 CDB 消息接收与应答发送(模块)#
如果模块接收到 CDB 命令,它通常可能执行以下步骤:
- 捕获 CMD 头和体(到缓冲区或队列)
- 重新计算完整性校验码(CdbChkCode)以进行验证
- 验证 CMD ID 和命令参数
- 检查请求的命令是否可以在当前状态下执行
- 调度命令执行并更新命令状态寄存器
- 执行命令直到完成
- 确定命令是否成功执行或是否失败
- 从执行结果组成 REPLY 头和体
- 使用命令结果代码更新命令状态寄存器(指示成功或失败)
- 通过设置命令完成标志发送 REPLY,这将导致中断信号被断言(除非命令完成掩码已设置)。
上述步骤可能因模块厂商而异,但 CDB 消息交换的整体行为是相同的:发送的 CDB 命令将导致接收到 CDB 应答。
7.2.5 CDB 支持级别和消息详情#
模块可以提供不同级别的 CDB 支持,例如基于处理能力。
支持级别选项包括:
- CDB 前台处理(命令完成前保持 ACCESS)
- CDB 后台处理(命令处理期间可 ACCESS)
- 后台模式下支持并行 CDB 命令执行的 CDB 实例数
注意:支持 CDB 后台处理的模块通常需要更强大的 CPU 和更多内存资源,而支持 CDB 前台处理的模块可能更具成本或功耗效益。
此 CMIS 版本指定最多支持两个 CDB 实例(具有前台或后台处理)。
每个 CDB 实例使用自己的 Bank。CDB 实例 1 位于 Bank 0,CDB 实例 2 位于 Bank 1。
所有支持的 CDB 实例支持相同的已通告 CDB 命令集合。
当支持两个 CDB 实例的后台处理时,最多可以并行执行两个 CDB 命令,同时也可以对内存映射寄存器进行寄存器访问。
当使用前台处理时,即使支持两个 CDB 实例,任何时间点最多只能执行一个 CDB 命令,在 CDB 命令完成执行之前无法访问寄存器。
命令完成时,模块更新相关的 CdbStatus 寄存器(Bank 0 或 1 对应的 00h:37 或 00h:38),然后在字节 00h:8:7-6 中设置相关的命令完成标志。
注意:设置标志会导致中断,除非标志被字节 00h:31:7-6 中的相关掩码屏蔽。
命令完成时的状态更新和标志设置在后台和前台模式下都会发生。
7.2.5.1 前台模式 CDB 消息#
模块可能仅支持前台模式的 CDB 命令执行。这由 Bit 01h:163.5 清零指示(见表 8-54)。
在前台模式下,模块拒绝任何寄存器访问,直到当前正在执行的 CDB 命令执行完成。
注意:对 CdbStatus 寄存器 00h:37 或 00h:38(见表 8-13)的读取也会被模块拒绝。
一旦命令最终完成执行,模块设置相关的 CdbStatus 寄存器 00h:37 或 00h:38(对应 Bank 0 和 1),然后设置相关的命令完成标志 00h:8:7 或 00h:8.6,并恢复接受主机的寄存器访问(例如读取应答)。
注意:在前台模式 CDB 命令执行期间,主机可以使用带重试的寄存器访问或 TEST 访问(即确认轮询,见第 5.2.2.3 节)。
注意:在模块不停止 NACK 的错误情况下,主机可能需要最终通过硬件复位信号复位模块,或切换模块电源。
7.2.5.2 后台模式 CDB 消息#
单个 CDB 实例
通告 [01h:163.7-5] = 011b 的模块在后台模式下实现一个 CDB 实例。
在后台模式下,模块通常在处理 CDB 命令时允许寄存器访问:它仅在命令被捕获之前短时间内阻止访问。命令被捕获后即可进行寄存器访问。
当仅支持一个 CDB 时,模块仅响应 Bank 0 中的 CDB 命令。读取 CDB 状态位 00h:37.7 将返回 1b(CdbIsBusy=1)。
在当前 CDB 命令执行完成或中止之前,主机不得使用相同的 CDB 实例。
注意:如果主机在 CDB 实例忙时(由 CdbIsBusy 状态位指示)尝试发送另一个 CDB 命令,该命令可能被忽略。在竞争条件下,如果在 MCI 事务时间内 CdbIsBusy 在后台被清除,命令也可能被处理。这使得 CDB 命令或响应的行为不可预测。
在 CDB 实例忙(CdbIsBusy)时唯一允许发送的 CDB 命令是 CMD 0004h(CDB 中止处理),它设计用于中止在预期命令执行时间内未完成的命令并清除 CdbIsBusy 状态。
模块通过设置标志 00h:8.6(CdbCmdCompleteFlag1)指示命令完成。中断请求将被断言,除非被相关掩码位 00h:31.6(M-Cdb1CommandComplete)屏蔽。
注意:具有一个 CDB 实例和后台处理能力的模块可以例如在模块服务期间使用 CDB 支持固件更新。根据主机软件实现,模块还可以同时支持运行性能监控器(PM)。
两个 CDB 实例
模块可以通过 [01h:163.7-5] = 101b 通告它在后台模式下支持两个 CDB 实例。
在后台模式下支持两个 CDB 实例的模块可以同时运行两个 CDB 命令。除此之外,上一节描述的规则分别适用于每个 CDB 实例。
注意:此类模块允许主机为专用目的使用单独的线程或任务;例如,一个线程专门用于固件更新,另一个线程用于常规性能监控、诊断和其他特性。
注意:使用多线程时,主机必须为 Bank 和 Page 寄存器以及 MCI 写入/读取实现适当的互锁。这是状态寄存器 37 和 38 被分配在低位内存中的主要原因之一,这些寄存器始终可用。
7.3 基于 CDB 消息通信的特性#
7.3.1 使用 CDB 的固件管理#
本节描述与固件管理相关的概念和程序,特别是使用第 9.7 节中定义的 CDB 命令集进行固件更新。
基于 CDB 消息的固件更新是一项可选的通告特性。
7.3.1.1 固件管理概念#
通用的基于 CDB 的固件更新功能允许主机在厂商支持的深度和粒度内完全或部分更新模块固件。
固件
可更新固件项的实现相关示例包括主控制器固件、支持另一种内存映射修订所需的部件、修改后的管理或操作数据资源、模块中的微码、内部设备(如转换器或 DSP)的代码,或此类项的捆绑包,以模块厂商定义和支持的任何粒度。
可更新项的存在定义以及它们是否可以包含在完整或部分固件更新中取决于模块实现,不在规范范围之内。这是可能的,因为基于 CDB 的固件更新机制不依赖于固件更新的内容。
注意:鼓励主机供应商与模块供应商协调,以确保固件更新包满足其要求。
固件版本
在 CMIS 核心中,固件版本通过主版本号和次版本号来标识。使用 CDB 固件管理时,可以使用构建号和额外的字符串进行更精细的区分。
注意:由于模块的聚合固件可能由多个组件组成,强烈建议 CMIS 固件版本号引用所有固件组件的完整聚合(捆绑包),而不是特定的固件组件。
注意:还强烈建议版本号在辅以构建号和额外字符串时,唯一地指定恰好一个聚合固件配置。
注意:固件版本引用整个聚合模块固件的建议带来了交付单一固件下载文件用于一个固件版本的建议。
注意:当使用或支持分段或增量固件更新时,强烈建议模块中暂时无效或不支持的固件组件组合被视为无效,并且在最终实现支持且定义良好的聚合固件配置状态之前不声明为可运行的,该状态由唯一的聚合版本标识。
固件更新
固件更新包括对模块内部固件存储(称为固件组)的操作,以及将控制权传递给固件存储中的固件的功能。
-
对内部固件存储的操作包括存储固件的查询、下载、上传和复制(到固件存储、从固件存储或在固件存储之间),可用于升级、修复和降级的目的。
-
最终将控制权传递给下载固件的操作称为激活,根据需要立即执行(运行)或在下次重启时执行(提交)。
注意:如果模块包含固件但不支持固件更新,模块仍然可以允许使用 CMD 0100h(获取固件信息)查询固件信息。当存在厂商特定的固件更新机制时,特别推荐这样做。
固件存储和管理
模块可能最多有两个可由主机更新的镜像,存储在最多两个存储组(称为 A 和 B)中;模块还可能有一个内部出厂镜像。
每个组(或其内容)按当前内容分类如下:
-
管理状态指示组中的固件在复位时是否运行(已提交)或未运行(未提交)。同一时间只有一个组是已提交的。管理状态可以通过 CMD 010Ah(提交固件镜像)更改。
-
操作状态指示组中的镜像当前是否正在运行或未运行。同一时间只能有一个镜像正在运行。在特殊情况下,模块可能指示它正在运行既非 A 也非 B 的出厂镜像。操作状态可以通过 CMD 0109h(运行固件镜像)、模块复位(由软件或硬件信号触发)或电源循环来更改。在复位或电源循环时,模块将运行管理状态指示的”已提交”镜像。
-
组有效性状态指示组中的固件是否可运行(有效)或不可运行(无效)。有效的固件是可运行的且持久存储完全无损。镜像 A 和 B 的组有效性可能受 CDB 固件更新命令(ID 0101h(启动)、0102h(中止)、0103h 和 0104h(写入)、0107h(完成)和 0108h(复制))的影响。只有正确的序列才能将组有效性状态从”无效”恢复为”有效”。
注意:使用单个存储组进行固件更新也是可能的。在这种情况下,在试用阶段对于已下载但尚未提交的固件镜像没有回退到先前固件的选项。
固件更新介质
对于任何特定的固件更新目的,模块厂商可以提供特定的固件下载文件,其中包含用于完全或部分更新模块中固件的厂商特定指令。
固件下载文件由厂商特定且主机透明的头部分和包含实际可执行固件镜像捆绑包表示的固件部分组成。此表示可以是编码的(ASCII)或未编码的(二进制)。
注意:建议为完整模块固件捆绑包提供单一固件下载文件,以简化主机的通用固件管理。
如果支持固件回读,模块厂商还可以提供固件回读文件,用于控制从模块回读最近下载的固件。交付的固件回读文件由头和预期回读固件长度的虚拟数据组成。
注意:固件回读的目的是厂商或主机特定的。CMIS 在此不做假设。
两种固件文件中的厂商特定头部分最初被下载到模块并由模块解释。由于这些头的大小、内容和解释是厂商特定的,模块仅在 CMD 0041h(固件管理特性)返回的字段 StartCmdPayloadSize(9Fh:138)中通告固件文件开头的头字节数。
固件文件的文件格式可以是二进制或 ASCII(例如 Intel hex 文件格式)。如果文件是 ASCII 编码的,主机在下载之前或上传之后首先将文件内容解码为二进制格式。
注意:CMIS 中未指定主机确定固件文件格式的方法。
7.3.1.2 使用 CDB 的参考固件下载程序#
主机首先使用 CMD 0041h(固件管理特性)读取模块功能。
然后主机读取(并可能转换为二进制格式)厂商特定和厂商提供的固件下载文件到一个可寻址的连续字节数组中,定义为二进制下载镜像。
要开始固件下载,主机使用 CMD 0101h(启动固件下载)发送下载镜像头,即下载镜像的前 StartCmdPayloadSize 字节。此头以厂商特定的方式指示模块预期的完整或部分内容。
在模块在下载程序中更新镜像组之前,模块确保该组被标记为空或损坏,直到下载最终成功完成。
当 CMD 0101h 成功时,模块准备好使用通告的方法从主机接收数据,即 CMD 0103h(写入固件块 LPL)或 CMD 0104h(写入固件块 EPL)。这些命令仅在允许的下载镜像块大小上不同,EPL 变体的大小已通告。
主机将包含后续写入固件块或读取固件块命令中要发送或接收的下一个数据块地址的变量初始化为零。
在循环中,主机随后读取下载镜像的后续字节,块大小不超过允许的块大小,并使用 CMD 0103h 或 0104h 发送。
图 7-4 使用 CDB 的固件更新
图 7-4 中的流程图显示了两个可选块:
第一个可选块描述主机可以选择跳过发送完全由标记擦除状态的字节组成的数据块(此特殊字节值已通告)。跳过此类块的下载可以加快固件下载过程。
第二个可选块描述主机可以选择回读最近发送的块。这会减慢固件下载过程,仅在需要时建议使用。
成功的固件更新过程在主机已从下载镜像下载所有数据且关联的消息交换中未发生未恢复错误时结束。然后主机通过发送 CMD 0107h(完成固件下载)完成固件更新。接收此命令将触发模块执行任何适当的验证并停止当前固件下载过程。如果验证失败,此命令在 CdbStatus 寄存器中返回失败代码。
注意:防御性主机不应假设所有模块都会执行完整验证。
当固件下载不成功时,例如由于命令返回失败,或因任何原因需要中止时,主机还必须通过发送 CMD 0107h(返回失败但终止下载过程)或如果支持则使用 CMD 0102h(中止固件下载)来终止正在进行的固件更新过程。然后可以启动新的固件更新过程来重试更新模块中的固件。
7.3.1.3 使用 CDB 的参考固件上传程序#
回读完整或部分镜像(由回读固件文件中的头控制)可以使用图 7-5 所示的流程图实现。
注意:上传从最近更新的镜像存储中检索数据。
注意:模块可能不支持从模块回读固件。如果支持回读,主机可以从回读数据生成文件,使文件的数据与使用的下载文件匹配。至少一位会不同,因为回读和下载文件的头不同。
回读由厂商提供的固件回读文件的头部分控制,它有两个目的:它包含一个厂商特定的头,控制将上传模块整体固件的哪些部分,其大小定义了预期回读数据的大小。
回读文件头具有与下载文件相同数量的(StartCmdPayloadSize)字节。在厂商特定头字节内,一个字段必须向模块指示该操作是回读,在这种情况下 CMD 0101h(启动固件下载)不执行镜像擦除。
要开始回读,主机从二进制回读镜像中读取第一 StartCmdPayloadSize 字节,并使用 CMD 0101h(启动下载)发送这些字节。第一个”启动命令负载大小”字节之后的回读镜像内容无关紧要,不会发送到模块。
主机将包含后续写入固件块或读取固件块命令中要接收的下一个数据块地址的变量初始化为零。如图 7-5 所示要回读的字节数是二进制回读镜像的大小(不包括头)。
当 CMD 0101h 成功时,模块处于准备好使用通告的方法(CMD 0105h(读取固件块 LPL)或 CMD 0106h(读取固件块 EPL))向主机返回数据的状态。这些命令主要在允许的上传镜像块大小上不同,EPL 变体的大小已通告。
回读完成后,以及在回读错误时,主机发送 CMD 0107h(完成固件下载)。在应答中,模块可以在后续的 Read LPL 或 Read EPL 命令中不返回任何内容或返回适当的错误代码。
图 7-5 使用 CDB 的固件上传
7.3.1.4 固件管理与状态#
本节描述 CMD 0100h(获取固件信息)返回的 FirmwareStatus 字节 9Fh:136。此字节表示存储在模块中的固件镜像的状态信息。参见第 9.7.1 节。
镜像存储组(内容)的状态编码在一个半字节(半字节)的位中。
表 7-1 镜像存储组状态
| 半字节位 | 状态方面 | 编码 |
|---|---|---|
| 0 | 操作状态 | 1:正在运行 0:未运行 |
| 1 | 管理状态 | 1:已提交 0:未提交 |
| 2 | 有效性状态 | 1:无效(不可运行) 0:有效(可运行) |
| 3 | - | 0:保留 |
下面的表 7-2 和表 7-4 显示了常见固件状态代码的非详尽列表。表 7-2 显示了支持两个镜像组 A 和 B 的模块返回的典型代码。引导加载程序或出厂镜像的存在既不重要也不在此直接指示。在正常操作情况下,引导加载程序没有继续运行的方式。
表 7-2 支持镜像 A 和 B 的模块的典型固件状态代码
| 固件状态 BA | 运行中的固件 | 已提交的固件 | 组有效性状态 | 描述 |
|---|---|---|---|---|
| 03h | A | A | A,B | 正常运行。A 运行中且 A 已提交。镜像 B 有效,可通过 Run B 命令激活。 |
| 43h | A | A | A,- | 正常运行。A 运行中且 A 已提交。镜像 B 更新进行中、已失败或已中止。Bank B 中没有有效镜像。 |
| 12h | B | A | A,B | Bank B 中镜像的试运行。 |
| 16h | B | A | -,B | 错误模式(发现 Bank A 无效)。Bank A 中的镜像已提交但无效。模块正在运行 Bank B 中的有效镜像。 |
| 30h | B | B | A,B | 正常运行。B 运行中且 B 已提交。镜像 A 有效,可通过 Run A 命令激活。 |
| 34h | B | B | -,B | 正常运行。B 运行中且 B 已提交。镜像 A 更新进行中、已失败或已中止。Bank A 中没有有效镜像。 |
| 21h | A | B | A,B | Bank A 中镜像的试运行。 |
| 61h | A | B | A,- | 错误模式(发现 Bank B 无效)。Bank B 中的镜像已提交但无效。模块正在运行 Bank A 中的有效镜像。 |
表 7-3 仅支持镜像 A 的模块的典型固件状态代码
| 固件状态 BA | 运行中 | 已提交 | 组有效性状态 | 描述 |
|---|---|---|---|---|
| 44h | - | - | -,- | 出厂镜像或引导加载程序运行中,无有效镜像可用 |
| 40h | - | - | A,- | 出厂镜像或引导加载程序运行中,有效未提交镜像可用 |
| 42h | - | A | A,- | 出厂镜像或引导加载程序运行中,有效已提交镜像可用 |
| 41h | A | - | A,- | 运行未提交镜像 |
| 43h | A | A | A,- | 运行已提交镜像 |
表 7-4 显示了在特殊情况下模块可能返回的固件状态代码,当镜像 A 和 B 都未运行且镜像 A 和 B 都未提交时。然而,固件仍然正确响应此 CDB 命令。在这种情况下,主机应将运行中的固件解释为无法通过 CDB 命令集更新的内部出厂镜像。厂商可能有其他厂商特定的方法来更新固件,如果返回这些代码,应联系厂商获取更多详情。
在某些情况下,这些可能是错误条件,例如,如果模块支持镜像 A 和 B 以及备份出厂镜像,这些是模块在发生导致出厂镜像运行的意外事件时可能返回的错误代码。
表 7-4 特殊固件状态代码
| 固件状态 BA | 运行中 | 已提交 | 组有效性状态 | 描述 |
|---|---|---|---|---|
| 00h | 出厂(非 A,B) | 出厂(非 A,B) | A,B | 这可能由不支持固件更新且仅有出厂镜像的模块返回。 |
| 40h | - | - | A,- | 支持镜像 A 和 B 的模块可能在定义启动哪个镜像组的模块启动控制块损坏或正在运行默认出厂镜像时返回这些代码。 |
| 04h | - | - | -,B | 支持镜像 A、B 或 A 和 B 的模块可能在某些内容损坏了定义启动哪个镜像组的模块启动控制块或正在运行默认出厂镜像时返回这些代码。 |
| 44h | - | - | -,- |
7.3.2 使用 CDB 的性能监控(PM)#
可选的 CDB 性能监控实现支持监控可观测量子集的统计,如最小值、平均值、最大值和当前值(见第 9.8 节的表 9-31)。
主机可以使用 CMD 0042h 和 CMD 0201h 查询支持的 CDB 性能监控特性列表(见第 9.4.3 和 9.8.2 节)。
基于 CDB 的性能监控基于主机轮询,允许主机在单个 CDB 消息事务中读取多个可观测量。
基于轮询的 CDB 机制不支持告警指示。如果需要通过标志进行自主告警报告,可以使用在 20h-2Fh 页中实现的多功能诊断监控(VDM)。
CDB 和 VDM 可以同时被支持和使用。CDB 和 VDM 都可以为可观测量的重叠子集收集统计(如最小值、平均值和最大值)。
CDB 和 VDM 统计可以独立收集(独立统计模式)或同步收集(链接统计模式)。统计收集模式默认为独立模式。
CDB 命令(CMD 0200h)可用于选择统计收集模式,例如从独立跟踪切换到同步跟踪。
每当模块重启时(包括由 Run Image CDB 命令引起的重启),性能监控模式恢复为对所有支持和通告的可观测量进行独立跟踪。
所有统计结果在模式更改时被清除和重置。
在独立统计模式下,使用 CDB 读取的统计和使用 VDM 页 20h-2Fh 读取的统计通常会不同,因为数据收集周期的开始时间和持续时间不同步。
CDB 和 VDM Fh 页中统计结果寄存器的清除和重置将完全独立,模块维护两个独立的内部数据集用于统计收集(最小值、平均值和最大值)。
在链接统计模式下,模块为每个支持统计的可观测量维护一个公共的最小值、平均值和最大值,然后通常通过 CDB 或 VDM 返回相同的信息。
此外,在链接模式下,统计区间结果无论是通过 CDB 命令清除还是通过写入 VDM Fh 页中的寄存器清除,都会被清除。
对于 VDM 和 CDB 这两种性能监控方法,模块最初开始收集统计的时间以及处理这些数据的方法或内部时间粒度仍然是未定义的。
假设主机将首先设置数据路径,然后在感兴趣的运行条件令人满意时,读取并丢弃第一组统计结果,然后才实际(重新)开始统计收集。建议这样做是因为第一组统计结果很可能由于系统中的初始化瞬态或非运行条件而异常。
7.3.3 使用 CDB 的安全特性和功能#
CDB 目前支持一个可选的安全特性:模块设备认证。
模块认证基于在模块制造期间安全安装的加密保护的初始设备身份(IDevID)证书。使用安全身份制造的可插拔模块可以基于标准公钥加密为主机提供模块完整性和真实性的保证。
安全、可信的模块建立在基于硬件的信任根之上。没有这些信任根就无法保证完整性或真实性。信任根提供安全的密钥存储,并在挑战-响应认证机制中使用私钥对主机消息摘要进行数字签名。模块证书可供主机访问以获取相应的公钥。
IDevID 证书包含模块的唯一序列号(SN)、产品 ID(PID)、公钥以及由证书颁发机构(CA)生成的签名。SN 和 PID 值都应被签名覆盖。
7.4 模块启动记录(MBR)#
本节保留用于未来的特性扩展。
7.5 可调谐激光器、通道选择和中心频率设置#
7.5.1 概念与背景#
光载波或光通道通常由其中心频率和可用于承载调制信号的光通道带宽来表征。
注意:除了指定光频率外,通常使用给定通道网格上的(有符号)通道编号,表示相对于通道编号 0 的网格偏移,通道编号 0 被定义为网格的锚点或原点。除了指定通道带宽外,通常使用网格上光载波之间的频率网格间距。详见下文。
出于管理目的,CMIS 中的光通道由媒体通道和相关的媒体通道属性(寄存器)表示。CWDM 模块通过多个通道传输,因此有多个媒体通道。DWDM 模块通常只使用单个光通道,只有单个媒体通道。
从管理角度来看,光通道可以是接口标准预定义的(通常在单通道和 CWDM 应用中)或主机可编程的(通常在 DWDM 应用中)。
对于主机可编程通道,概念上有两种配置方案:
- 从预定义的通道集中间接选择通道(在基于网格的应用中),其中通过通道编号选择通道及其关联的中心频率
- 在总体支持的频带内直接设置任意中心频率(在无网格应用中),即无需通道编号的帮助
注意:在两种情况下,模块都必须确保在运行时,相关激光器被调谐到已配置通道的中心频率。当可调谐模块想要实现具有预定义通道的应用时,它将基于所选应用进行调谐,而不是基于通道编程寄存器。
在 CMIS 中,特定的通道网格由四个属性定义:
- 网格间距带宽(相邻通道之间的频率差)
- 通道编号方案(将通道编号映射到载波频率)
- 编号原点或网格锚点频率(193.1 THz)
- 网格上支持的通道编号范围
注意:CMIS 锚点频率不一定在支持频带的中心。
7.5.2 编程概述#
模块在 Fh 页上通告其支持的网格类型。网格类型定义包括网格间距、通道编号方案(包括编号原点)以及支持的通道编号范围。
用于编程单个光通道(单个媒体通道)的寄存器位于 Fh 页:
- 对于基于网格的应用,设置要使用的网格和该网格上期望的通道编号。
- 对于无网格应用,由于历史原因¹,中心频率不是直接编程的,而是采用基址加偏移的方式:主机从粗粒度网格选择并调谐到附近的通道,然后添加适当的细粒度频率偏移(称为微调偏移)以实现任何期望的非网格中心频率。
为执行此功能,所谓的微调支持(向网格频率添加小频率偏移)必须可用并启用。例如,选择 50 GHz(或更小)通道间距的网格,并以 1 MHz 分辨率在 +/-32 GHz 范围内进行偏移调谐,允许编程任意无网格通道。注意调谐作为初始设置步骤执行。
当选择另一个光通道(网格间距或通道编号)时,模块必须处于 DPDeactivated 状态。在相关数据路径处于任何其他数据路径状态时尝试更改光通道(网格选择或通道选择)可能导致未指定的行为,因为模块可能在更改之前或之后调谐激光器。
当模块当前无法满足主机编程网格或通道后的调谐请求时,会引发调谐未接受标志。该标志表示名义上编程的通道或网格值不再反映实际的激光器条件。
不存在直接频率设置方法有历史原因:无网格应用是相对较新的发展,具有可调谐激光器的传统上通过通道编号编程。CMIS 的未来版本可能包含直接频率设置方法。
与通道选择不同,如果相关数据路径不处于瞬态状态,则可以对激光频率微调偏移和目标输出功率设置进行编程。
模块预期将激光器对准到微调偏移值,无论该值是在激光器调谐之前、期间还是之后更改的。
支持可编程输出功率的模块也预期将输出功率对准到目标输出功率值,无论更改是在何时进行的。
7.6 客户封装应用(复用)#
本节以与第 6 章描述的系统接口应用基线的差异和扩展形式,规定了客户封装应用(又称复用应用)的管理功能和基本行为。
注意:系统接口和客户封装模块在第 1 章中介绍,而第 6 章描述了应用和分配给模块中数据路径(通道组)的应用实例的概念。然而,第 6 章描述的数据路径仅限于具有紧耦合主机侧和媒体侧初始化及操作的系统接口应用。对于客户封装应用,这里将引入新概念,以允许主机侧和媒体侧初始化及操作之间的松耦合。
7.6.1 概念与技术背景#
为便于概念理解,本小节以通用术语介绍客户封装(又称复用应用)。在 CMIS 数据结构中表示相同主题的特定技术语言在以下小节中描述。
7.6.1.1 复用或单工客户封装应用#
在客户封装应用中,由一个或多个主机侧主机信号(有时也称为客户信号或支路)承载的数据流被数字映射到(并从)独立维护的媒体侧网络信号中(从网络信号中解映射),该网络信号将主机信号的数据作为封装负载承载。
通常网络信号的数据速率略高于主机信号的组合速率,信号映射通常包含某种形式的频率适配(填充),以允许相互异步的主机信号和网络信号。
主机信号和网络信号都可以是单通道或多通道信号,相互独立。
注意:作为一个重要且最初令人惊讶的限制,封装到(任何)网络信号中的所有主机信号的主机通道数据速率必须相同!见第 7.6.1.5 小节。
在(真正的)复用应用中,多个(N>1)较低带宽的主机信号按特定顺序填充网络信号的较高可用带宽,也称为(N:1)复用结构。
在单工应用中,单个主机信号填充网络信号的可用带宽;单工应用也可以被视为(N:1)复用的退化或平凡情况(N=1)。
注意:与系统接口应用不同,单工应用的媒体侧可以在主机信号不存在时进行初始化和运行。
模块可以提供一组支持的复用结构(支持的主机信号序列,可能具有不同的带宽,按特定顺序复用到支持的网络信号中)。
复用结构可以被视为模块内部复用连接点的有序列表,合适类型和带宽的主机信号可以(在模块内)连接到这些连接点。
一旦特定的客户封装应用(及其复用结构)被配置,网络信号可以完全独立于任何复用主机信号的存在进行开通(初始化并保持运行)。
复用结构可以在不中断网络信号和不受复用结构变化影响的那些主机信号的连续性的情况下进行更改。
注意:典型的用例是将支路信号退出服务,或在不干扰现有支路传输服务的情况下将新的支路信号投入服务。
7.6.1.2 已配置主机替换信号生成#
模块可以选择性地包含传输内部生成的主机信号(实际生成替换数据流)而不是转发接收的主机信号或数据流的功能。
注意:与导致插入替换信号的机制的配置(如果支持)不同,使用主机替换信号的整体场景不在 CMIS 范围之内。
注意:标准化主机替换信号的示例包括 SONET 未装备信令,或以太网空闲块流的插入(不带 LF 或 RF 故障指示)。
注意:主机配置的替换信号不应与模块在某些故障条件下作为自动后续动作而传输的数据和信号相混淆,这些后续动作受与 MediaInterfaceID 关联的网络信号处理规范管理。后续动作是为应用定义的自动模块行为,因此不在 CMIS 范围之内。后续动作的示例包括 OTN 应用中的 AIS 维护信号插入,或以太网应用中的 LF 或 RF 插入。
已配置 Tx 主机信号替换
客户封装应用可以选择性地包含在 Tx 方向插入(映射)主机替换信号或数据流的功能,可由主机启用,通常在(有意地)没有主机信号连接到某个复用连接点时。
注意:可配置的主机替换信号在实际传达复用连接点及其相关负载容量被有意”未使用”或”未装备”而非由于不需要的主机信号故障情况而缺失的明确含义时特别有用。
Tx 方向替换信号的数据内容和数字格式取决于通告的 MediaInterfaceID 底层的传输标准,并且通常使得接收的信号在 Rx 方向的远端可被识别为客户替换数据。
已配置 Rx 主机信号替换
客户封装应用可以选择性地包含在 Rx 方向生成和传输主机替换信号的功能,可用于主机侧和媒体侧的完全独立链路启动。
Rx 方向替换信号的数据内容和物理格式取决于通告的 HostInterfaceID 底层的传输标准。
注意:当传输 Rx 主机路径替换信号时,相关通道的 OutputStatusRx 指示器被设置,因为 Rx 主机路径替换信号是有效的物理层信号。
7.6.1.3 自动静默#
基于主机侧信号缺陷对 Tx 方向网络信号输出的自动静默对复用应用没有意义。因此,客户封装应用不支持此功能。
注意:对客户封装应用维持主机请求的强制静默支持。
假设对 Rx 方向主机信号输出的自动静默支持物理网络信号故障(LOS)以及数字接收主机信号故障(Rx 主机路径输入故障),其中数字接收主机信号故障的存在和含义条件来自相关接口标准。
注意:Rx 自动静默是强制性模块功能。建议模块允许通过 AutoSquelchDisableRx 寄存器(在 AutoSquelchDisableRxSupported 寄存器中通告)禁用它。
传输已配置的 Rx 主机替换信号优先于自动 Rx 静默。
7.6.1.4 支路分配灵活性限制#
规范的先前版本未为主机信号(支路)从主机通道端口到模块内部复用应用复用连接点提供内部路由灵活性。相反,主机信号到复用连接点的分配基于模块主机接口上通道组的顺序:主机信号必须以与应用复用结构中复用连接点相同的顺序和相同的信号类型出现在主机通道上。
注意:因此近端和远端系统不仅从网络信号处理角度,而且从主机信号角度都需要支持相同的复用结构。
在此版本规范中,模块可以支持第 7.8 节中描述的主机通道切换,以允许主机将主机通道重定向到复用应用中的不同内部连接点。
7.6.1.5 主机通道粒度限制#
此版本规范要求封装到任何网络信号中的所有(单通道或多通道)主机侧信号的所有通道必须承载相同的每通道数据速率,即在混合复用应用中甚至跨任何并行复用应用。
注意:此限制的建立仅为了限制并行复用应用和混合复用应用的能力和限制通告的复杂性(详见第 8.15.5.4 节)。注意对于第 6 章描述的并行系统接口应用不存在此类限制。
7.6.1.6 时钟方面#
此版本规范不包含复用方案的时钟或时钟依赖方面。
注意:特别是,不对主机信号的相互同步或异步时钟以及网络信号相对于主机信号的异步性做任何假设。
7.6.2 数据路径、网络路径和主机路径#
客户封装应用的数据路径,与系统接口应用的数据路径一样,由所有涉及的主机和媒体通道以及所有相关模块内部资源组成。
然而,与第 6 章描述的系统接口应用的数据路径不同(数据路径也是独立初始化、使用和反初始化的单元),N:1 复用客户封装应用的数据路径被划分为 N 个主机侧主机路径(见下文)和一个媒体侧网络路径(见下文),初始化、使用和反初始化的更精细粒度由 N+1 个并行状态机(每个主机路径一个和网络路径一个)控制,而不是由单个 DPSM 控制。
网络路径
复用或单工客户封装应用的媒体侧网络信号相关的发射和接收功能由网络路径(NP)实现,该路径跨越内部复用连接点到媒体通道物理接口之间的段。
与系统接口数据路径的媒体侧一样,NP 可以使用一个或多个媒体通道,采用单载波或多载波传输。
网络路径使用单独的一组网络路径相关寄存器进行控制,其动态配置状态由网络路径状态机(NPSM)表示。
主机路径
客户封装应用中一个主机信号的主机侧主机信号相关的发射和接收功能由主机路径(HP)实现,该路径跨越内部复用连接点到主机通道物理接口之间的段。
每个主机路径使用其组成通道的主机侧相关数据路径寄存器进行控制,其动态配置状态由 DPSM 表示,该 DPSM 实际上仅限于作用于数据路径的相关主机路径段(通过将可达状态限制为 DPDeactivated 和 DPInitialized)。
注意:在某种意义上,第 6 章中所有对数据路径主机侧方面的字面文本引用,实际上仅引用 NP 应用数据路径的主机路径段,当相关通道是 NP 应用的一部分时,因此是 HP 通道。注意混淆。另见第 7.6.6 节。
在需要区分的地方,一个 HP 及其关联的 NP 的组合称为部分数据路径,因为 NP 应用中其他 HP 的主机通道不包括在内。
7.6.3 网络路径应用#
由于独立运行的网络路径的特征存在,客户封装应用也称为 NP 应用。同样,为便于区分,系统接口应用(不带客户封装)现在也称为 DP 应用。
单工 NP 应用仅包含一个主机路径。
复用 NP 应用包含与复用主机信号数量相同的主机路径。
同构(简单)NP 应用封装一种类型的主机信号(由单个 HostInterfaceID 表征)。
混合(异构)NP 应用封装不同类型的主机信号(每种类型由不同的 HostInterfaceID 表征)。
注意:请记住,此规范将通道数据速率限制为所有主机路径通道相同,这不是出于本质原因,而是为了简化混合复用功能和限制的通告。
一个 NP 应用包含一个媒体侧网络路径,该路径(在模块内部)连接到一个或多个主机侧主机路径(HP),使得主机路径的信息带宽加起来等于网络路径的信息带宽。
因此,一个 NP 应用实例定义为一个或多个主机接口(包含一组主机通道,每个通道关联一个单独的主机路径)与单个媒体接口(关联单个网络路径,包含一组媒体通道)的特定关联。
模块可以支持多个替代 NP 应用,例如速率缩放的复用应用,它们在结构上相同但使用缩放的主机信号数据速率。
模块还可以支持多个并行运行的 NP 应用,其中每个 NP 应用仅需要模块中可用通道的一个子集。
7.6.4 网络路径应用通告#
与数据路径应用一样,应用描述符(见第 0 节)用于描述 NP 应用的所有可能实例化,从主机侧角度以主机通道表示。
与 MediaInterfaceID 关联的信息带宽是与 HostInterfaceID 关联的信息带宽的倍数的应用描述符是部分应用描述符。
使用应用描述符扩展,模块为每个应用描述符显式通告它是 DP 应用还是 NP 应用(见第 8.15.5.3 节)。
注意:通告真正复用应用所需的部分应用描述符在 CMIS 5.0 中语义上无效。因此,如果 CMIS 5.0 主机对主机侧和媒体侧数据速率相等进行合理性测试,或者如果它们没有完全匹配期望的与已通告的应用,CMIS 5.1 模块可能会使它们混淆。
单工 NP 应用
在结构上,单工 NP 应用的应用描述符无法与 DP 应用描述符区分;由于与 MediaInterfaceID 关联的含义并不总是允许区分,因此使用应用通告扩展来消除歧义。
同构复用 NP 应用
同构复用 NP 应用的应用描述符可以通过以下事实识别:主机侧信号(由 HostInterfaceID 标识)的信息带宽低于媒体侧信号(由 MediaInterfaceID 标识)的信息带宽,即它是部分应用描述符。
注意:通常,MediaInterfaceID 信息带宽是 HostInterfaceID 信息带宽的整数倍。当不是这种情况时,主机侧信号不能用于同构复用 NP 应用,但可能仅用于混合复用 NP 应用。
混合复用 NP 应用
混合复用 NP 应用由一组相互一致的部分应用描述符描述,每种主机接口类型一个。
两个部分应用描述符在使用相同的 MediaInterfaceID 以及在 MediaLaneAssignmentOptions 中提供至少一个相同的选项,并且至少一组无冲突的 HostLaneAssignmentOptions 时是一致的。
模块分别通告(见第 8.15.5.5 节)哪些通道组和带宽粒度可以混合形成混合复用 NP 应用的主机路径,受第 7.6.1.5 节中描述的限制约束。
7.6.5 网络路径应用实例配置#
应用描述符和相关扩展(见第 8.15.5.3 节)通告支持 NP 应用的模块支持的所有潜在 DP 或 NP 应用实例化。
特定 DP 应用实例的配置在第 6.2.1 至 6.2.4 节中描述,而特定 NP 应用实例的配置和控制如下所述。
7.6.5.1 配置与控制#
NP 应用实例在主机通道、媒体通道和内部资源方面的实际配置,通过首先配置(到活跃控制集)然后开通(到硬件)先前在暂存控制集中定义的配置来确定。
此过程将主机通道(一个或多个主机路径的)和媒体通道(一个网络路径的)分配给 NP 应用实例,并在模块内部将 HP 实例和 NP 的复用连接点内部连接。
主机通道使用常规的数据路径相关暂存控制集寄存器(见第 6.2.3 节)分配给主机路径,这些主机通道也使用专用的 NP 暂存控制集(见第 8.15.2 节)分配给网络路径,即主机路径和网络路径通过主机通道关联。
与数据路径实例一样,主机路径和网络路径实例也通过引用所有已分配主机通道的最低通道编号来标识,分别称为 HP DPID 和 NPID。
HP 的输出(输入)在内部复用连接点与 NP 的输入(输出)关联,按主机通道编号(HP DPID)递增顺序,当 HP 的通道(在已配置的 DPConfig 中)也分配给 NP(在已配置的 NPConfig 中)时。
在整体配置过程中,参与 N:1 NP 应用实例的主机路径(HP)和网络路径(NP)组被顺序定义、配置和开通(即在单独的配置命令中),所有已开通 HP 的动态控制状态(以 DSPM 状态表示)和 NP 的状态(以 NPSM 状态表示)也分别被观察和控制。
NP 应用实例的定义、配置、开通和控制工作方式如下:
HP 在暂存控制集中被定义,可以单独或作为一组。每个 HP 通过引用其第一个关联的主机通道编号(称为 HP DPID)来标识,HP 的所有通道必须分配此 HP DPID。
NP 在 NP 暂存控制集中被定义。NP 通过引用其第一个关联的主机通道编号(所有支路 HP 的)来标识,称为 NPID,NP 的所有通道必须分配此 NPID。
然后 HP 和 NP(被请求)在单独的步骤中配置到相关的活跃控制集或 NP 活跃控制集中,通过写入相关的 ApplyDPInit 触发寄存器或 ApplyNPInit 寄存器分别执行。与往常一样,配置过程包括在将暂存控制集复制到相关活跃控制集之前的(部分)验证。
注意:由于 HP 和 NP 配置的顺序未指定,且完成配置的时间未知,模块只能在每个配置命令期间验证某些方面。
注意:未来版本可能添加一个命令来验证当前配置的配置,以允许在主机知道其配置完成时,在开通之前按需验证完整的 NP 应用。
已配置 HP 和 NP 的顺序开通通过 DPDeinit 和 NPDeinit 寄存器控制,分别导致 DPInitPending 和 NPInitPending 指示器被设置。
注意:在开通已配置的 NP 应用实例之前,必须将合适的复用结构完全配置到 DP 和 NP 活跃控制集中。然而,某些复用连接点实际上可能保持未使用(即连接到复用连接点的 HP 的相关主机信号有意不存在),通过将相关 DPSM 保持在 DPDeactivated 状态。
HP 和 NP 的实际已开通配置最终可以在 DPInitPending 和 NPInitPending 指示器被清除后在活跃控制集和 NP 活跃控制集中观察到,而当前状态可以在 DPState 和 NPState 寄存器中分别观察到。
注意:另见附录 H 的配置和控制示例。
7.6.5.2 重新配置#
NP 的复用结构可以通过选择性 HP 重新配置和可选的 NP 源重新配置来更改,而不中断承载流量的未更改主机路径的传输。
注意:这可以实现,因为 NPSM 和 HP DPSM 是解耦的。
7.6.6 对先前数据路径应用规范的修改和扩展#
第 6 章中 DP 应用的文本规范通常适用于 NP 应用的主机路径,以下修改在文本中假设但未明确说明。
第 7.8 节中引用数据路径主机侧方面的寄存器规范也适用于主机路径。
7.6.6.1 主机通道#
关于数据路径主机侧方面的所有陈述也适用于主机路径。
引用数据路径主机侧方面的所有寄存器规范也适用于主机路径。
7.6.6.2 数据路径状态机(DPSM)#
每个主机路径由略微修改的数据路径状态机(DPSM)控制,其中转换信号 DPDeactivateS 被强制为 TRUE,将可达的稳态限制为 DPDeactivated 和 DPInitialized。
注意:这反映了 NP 应用的媒体侧功能由网络路径而非主机路径表示,因此由 NPSM 控制。
在形式上,这通过在 DPDeactivateS 方程中添加配置相关项 NPInUseT 来实现:
DPDeactivateS = DPReDeinitS OR DPTxDisableT OR DPTxForceSquelchT OR NPInUseT (公式 7-1)
其中:
NPInUseT 对于主机路径通道定义为 TRUE,否则为 FALSE。
在形式上,主机路径(而非数据路径)的存在来源于 NPInUseLane<i>,其中 <i> 是数据路径或主机路径的 ID(见表 8-133)。
媒体侧网络路径不由 DPSM 控制,而是由第 7.6.7 节中描述的网络路径状态机(NPSM)控制。
7.6.6.3 媒体通道#
关于数据路径媒体通道的所有陈述需要重新解释为关于网络路径媒体通道的陈述。
与 DP 应用不同,在 NP 应用中,Tx 输出信号有效的条件不依赖于模块中的主机信号条件。
7.6.6.4 静默#
当 DP 应用支持静默相关功能时,NP 应用主机路径在 Rx 方向的静默相关功能也被支持。
在 CMIS 核心规范中,仅物理信号缺陷(LOS)触发 Rx 方向的自动静默。然而,根据 MediaInterfaceID,网络路径可能在数字信号处理层中带有额外条件,这些条件表示缺少要转发的真正主机信号。此类条件在此未指定,但假定如果可用且已启用,将有助于自动静默。
当 DP 应用支持静默相关功能时,NP 应用主机路径在 Tx 方向的静默相关功能也被支持,但自动静默严格除外。
注意:在 NP 应用中,复用主机信号不可用时的后续动作假定在相关传输标准中指定。
7.6.6.5 配置#
网络路径和主机路径均不支持无干预重新配置,即只有分步重新配置功能可用于复用数据路径的主机路径,独立于常规数据路径的 SteppedConfigOnly 设置。
7.6.7 网络路径状态机(NPSM)#
网络路径状态机(NPSM)实例描述与媒体侧网络路径配置相关的网络路径特定行为和属性,由主机管理。
注意:NPSM 状态表示网络路径的管理或配置实现状态,表示某些主机配置命令的效果以及模块对这些命令的反应。它不一定表示网络路径的其他行为或运行方面,例如当前输入或输出信号条件或提供的传输服务。
注意:NPSM 状态不应与网络路径功能资源的运行状态(在 Tx 方向或 Rx 方向)或 Rx 主机通道输出或 Tx 媒体通道输出的信号输出状态相混淆。
模块状态和 NPSM 生命周期
表示活跃控制集网络路径配置字段值中定义的上电默认应用所需的所有 NPSM 实例在 MgmtInit 状态期间被初始创建和设置。
创建后,NPSM 保持在 NPDeactivated 状态,直到模块状态机处于 ModuleReady 状态且满足从 NPDeactivated 状态退出的条件。
当主机在 ModuleLowPwr 或 ModuleReady 状态下更新活跃控制集中的网络路径配置字段时,模块拆除不再定义的先前 NPSM,然后创建和设置任何新定义的 NPSM。
所有网络路径状态机在 Resetting 状态中被拆除。
NPSM 目的
网络路径状态机由模块用于表示与网络路径关联的资源的初始化状态,以响应某些主机配置设置或命令。
尽管网络路径内的各个资源可能在不同时间完成初始化活动,但模块等待报告更新的 NPSM 状态,直到与网络路径关联的所有资源都完成了请求的配置或重新配置操作。网络路径中所有通道和资源的同步状态反映了每个网络路径只有一个 NPSM 的事实。
多个应用集实例的并行网络路径的 NPSM
模块中的每个网络路径需要独立于其他网络路径运行:如果主机更改一个网络路径的网络路径状态,模块中的其他网络路径应不受影响且不中断。
7.6.7.1 NPSM 状态转换图和 NPSM 规范#
图 7-6 显示了表示一个网络路径实例的网络路径配置相关状态的 NPSM 的状态转换图(STD)。
初始 NPSM 状态
NPDeactivated
NPDeinitS FALSE → NPDeinit 完成 → NPInit
NPDeinitS TRUE → NPDeinit
NPDeinitS FALSE → NPInitialized
NPDeactivateS TRUE → NPTxTurnOff
NPTxTurnOff 完成 → NPInitialized
NPDeactivateS FALSE → NPTxTurnOn
NPTxTurnOn 完成 → NPActivated
NPDeactivateS TRUE → NPDeactivated
图例:
- 稳态
- 瞬态
- NameS:转换信号逻辑名称
图 7-6 网络路径状态机(NPSM)状态转换图
注意:在退出 MgmtInit 模块状态之前,所有网络路径初始化为 NPDeactivated 状态。
状态退出条件和转换信号
当满足特定退出条件时,状态机退出给定状态。所谓的转换信号(以名称后缀 S 识别)表示这些稳态的退出条件。
NPDeinitS
NPDeinitS 转换信号也可以用逻辑方程表示:
NPDeinitS = ( NOT NPInUseT ) OR ( NOT ModuleReadyT ) OR LowPwrS OR NPDeinitT (公式 7-2)
其中:
ModuleReadyT = (ModuleState = ModuleReady) (公式 7-3)
NPDeinitT = NPDeinitLane<N> OR NPDeinitLane<N+1> … OR NPDeinitLane<N+M-1> (公式 7-4)
NPInUseT = NPInUseLane<N> OR NPInUseLane<N+1> … OR NPInUseLane<N+M-1> (公式 7-5)
N = 网络路径中的第一个主机通道 M = 网络路径中的主机通道数
NPDeactivateS
NPDeactivateS 转换信号由逻辑方程定义:
NPDeactivateS = NPDeinitS OR NPTxDisableT OR NPTxForceSquelchT (公式 7-6)
其中:
NPTxDisableT = OutputDisableTx<N> OR OutputDisableTx<N+1> … OR OutputDisableTx<N+M-1> (公式 7-7)
NPTxForceSquelchT = OutputSquelchForceTx<N> OR OutputSquelchForceTx<N+1> … OR OutputSquelchForceTx<N+M-1> (公式 7-8)
N = 网络路径中的第一个媒体通道 M = 网络路径中的媒体通道数
对模块复位的响应
当 MSM ResetS 转换信号(见表 6-11)变为 TRUE 时,与关机相关的任何网络路径活动在 Resetting 模块状态中执行。然后 NPSM 状态机停止存在。
注意:可以实现模块相关的复位前清理和关机活动,可能还取决于硬件或软件中的复位触发器。
对模块故障的响应
当模块状态机转换到 ModuleFault 状态时,NPSM 行为未正式定义,但受 ModuleFault 状态的行为要求约束。
7.6.7.2 网络路径控制(主机)#
为主机提供单个主配置寄存器来控制给定 Bank 中表示的所有网络路径的初始化和反初始化。此 NPDeinit 寄存器(见表 8-136)按主机通道定义相关网络路径资源是被确定为功能运行未使用(因此可以反初始化)还是被确定为功能运行所需(因此需要初始化)。
注意:Tx 媒体通道输出的初始化状态和行为由主机使用媒体通道特定的控制位 OutputDisableTx<i> 和 OutputSquelchForceTx<i> 进一步控制。
请求初始化或反初始化网络路径的主机确保活跃控制集包含所需的配置设置,然后将值 0 或 1 分别写入与该网络路径的主机通道关联的 DPDeinit 位。
主机可以通过一次寄存器访问请求初始化或反初始化多个网络路径。
7.6.7.3 网络路径状态(模块)#
模块提供关于网络路径当前状态的信息(NPSM当前状态报告)和进入某些 NPSM 状态的信息(NPSM状态变化指示)。
NPSM 当前状态报告
在进入 NPSM 状态时,模块在 NPState 状态寄存器中将进入的 NPSM 状态报告为当前 NPSM 状态(见表 8-144 / 表 8-143),在网络路径的所有通道上报告,下面指定了可选的例外情况。
注意:由于馈入网络路径的所有通道行为相同,主机只需读取网络路径的第一条通道即可确定网络路径状态。
NPSM 当前状态报告例外#
当已知状态为过渡性时,模块可以抑制在 NPStateHostLane<i> 寄存器中报告当前 NPSM 状态,即当退出条件在进入时立即满足而立即退出该状态时,或者当在该状态中停留的持续时间已知在 1 ms 左右或更短时。
注意:持续时间规范有意模糊。允许状态报告例外的目的是避免报告短暂的状态数据,主机不太可能读取和响应这些数据。
NPSM 状态变化指示(标志)
NPSM 状态变化指示包括模块为与相关 NPSM 实例关联的网络路径的每条通道设置 NPStateChangedFlag。
注意:以下规范的意图是模块仅在进入持久稳态时指示状态变化,并且仅当自上一个持久稳态以来的过渡时间显著时。
瞬态的最大持续时间在 MaxDuration* 字段中通告(见表 8-146),当编码的 MaxDuration* 字段值为 0000b 时被认为是不显著的(见表 8-48),否则为显著的。
模块在进入稳态 NPSM 状态时,在进入的稳态的退出条件在状态进入时未满足(状态非过渡性访问)时发出 NPSM 状态变化指示。
模块在进入瞬态 NPSM 状态时不执行 NPSM 状态变化指示。
表 6-19 定义了每个 NPSM 状态进入的标志行为。
表 7-5 网络路径状态变化标志行为
| 进入的状态 | NPStateChangedFlag |
|---|---|
| NPInit | 否 |
| NPInitialized | 是 |
| NPDeinit | 否 |
| NPDeactivated | 是 |
| NPTxTurnOn | 否 |
| NPActivated | 是 |
| NPTxTurnOff | 否 |
- 注意:标志设置条件在正文中描述。
注意:稳态退出条件可能在进入稳态时已经满足,并导致立即转换到下一个状态(在状态进入或状态退出活动之后,如果已定义)。
标志相关行为
模块不会由于网络路径状态机的状态变化而清除任何标志。
模块仅根据第 7.6.8 节中定义的 NPSM 状态特定符合性规则来引发标志。
7.6.7.4 详细状态描述#
第 6.3.3 节小节中的 DPSM 状态描述类似地适用于 NPSM 状态,但有以下例外:
NP 不支持无干预重新配置。
注意与第 6.3.3.3 节中 DPSM 行为规范的有意区别。
7.6.8 网络路径相关标志符合性#
7.6.8.1 按 NPSM 状态的通道特定标志符合性#
网络路径遵循以下 NPSM 标志符合性规则。
表 7-6 和表 7-7 描述了按 NPSM 状态的媒体通道特定标志的标志符合性。
注意:网络路径标志符合性表仅限于与媒体接口相关的标志或标志组和 VDM 观测量。
标志设置限制
当处于标志指示为 N/A(不允许)的 NPSM 状态时,模块不得设置该标志。
所有媒体通道特定标志在 Reset 和 MgmtInit MSM 状态中通常为 N/A。对于所有其他 MSM 状态,NPSM 状态决定媒体通道特定的标志符合性。
注意:对于在 NPSM 状态中允许的标志,可能存在额外且更具体的规则。
注意:主机可以在管理接口初始化后的任何时间通过设置相应的掩码位来抑制不需要的中断。
标志规范符合性
仅在 NPInitialized 和 NPActivated 状态下才保证设置网络路径相关监控器的允许告警和警告标志(包括相关中断生成)。
表 7-6 按 NPSM 状态的通道特定标志符合性规则
| 标志 / 标志组¹ | 页 | 字节 | NPDeactivated | NPInit | NPDeinit | NPInitialized | NPTxTurnOn | NPTxTurnOff | NPActivated |
|---|---|---|---|---|---|---|---|---|---|
| 网络路径相关标志 | |||||||||
| NPStateChangedFlag* | 17h | 128 | allowed | N/A | N/A | allowed | N/A | N/A | allowed |
| Tx 媒体相关标志 | |||||||||
| OpticalPowerHighAlarmFlagTx* | 11h | 139 | allowed | allowed | allowed | allowed | allowed | allowed | allowed |
| OpticalPowerLowAlarmFlagTx* | 11h | 140 | N/A | N/A | N/A | allowed | allowed | allowed | allowed |
| OpticalPowerHighWarningFlagTx* | 11h | 141 | allowed | allowed | allowed | allowed | allowed | allowed | allowed |
| OpticalPowerLowWarningFlagTx* | 11h | 142 | N/A | N/A | N/A | allowed | allowed | allowed | allowed |
| LaserBiasHighAlarmFlagTx* | 11h | 143 | allowed | allowed | allowed | allowed | allowed | allowed | allowed |
| LaserBiasLowAlarmFlagTx* | 11h | 144 | N/A | N/A | N/A | allowed | allowed | allowed | allowed |
| LaserBiasHighWarningFlagTx* | 11h | 145 | allowed | allowed | allowed | allowed | allowed | allowed | allowed |
| LaserBiasLowWarningFlagTx* | 11h | 146 | N/A | N/A | N/A | allowed | allowed | allowed | allowed |
| Rx 媒体相关标志 | |||||||||
| LOSFlagRx* | 11h | 147 | allowed | allowed | allowed | allowed | allowed | allowed | allowed |
| CDRLOLFlagRx* | 11h | 148 | N/A | N/A | N/A | allowed | allowed | allowed | allowed |
| OpticalPowerHighAlarmFlagRx* | 11h | 149 | allowed | allowed | allowed | allowed | allowed | allowed | allowed |
| OpticalPowerLowAlarmFlagRx* | 11h | 150 | N/A | N/A | N/A | allowed | allowed | allowed | allowed |
| OpticalPowerHighWarningFlagRx* | 11h | 151 | allowed | allowed | allowed | allowed | allowed | allowed | allowed |
| OpticalPowerLowWarningFlagRx* | 11h | 152 | N/A | N/A | N/A | allowed | allowed | allowed | allowed |
¹ 表 7-6 中名称中的星号 ’*’ 是通配符:所有匹配名称模式的标志均被引用。
7.6.8.2 按 NPSM 状态的 VDM 标志符合性#
表 7-7 描述了按 NPSM 状态的与(可选的)多功能诊断监控(VDM)观测量相关的所有标志的标志符合性。有关 VDM 特性的信息见第 7.1 节和第 8.17 节。
在标志指示为”不允许”的 NPSM 状态中,当网络路径处于该状态时,模块不得设置相关标志位。
所有 VDM 标志在 Reset 和 MgmtInit 模块状态中为”不允许”。对于使用 NPSM 的所有其他模块状态,实现者应参考网络路径状态来确定通道特定的标志符合性。
表 7-7 按 NPSM 状态的 VDM 标志符合性规则
| VDM 观测量类型 | NPDeactivated | NPInit | NPDeinit | NPInitialized | NPTxTurnOn / NPTxTurnOff / NPActivated |
|---|---|---|---|---|---|
| 激光器老化 | N/A | allowed | allowed | allowed | allowed |
| TEC 电流 | allowed | allowed | allowed | allowed | allowed |
| 激光频率误差 | N/A | allowed | allowed | allowed | allowed |
| 激光温度 | N/A | allowed | allowed | allowed | allowed |
| eSNR 媒体输入 | allowed | allowed | allowed | allowed | allowed |
| PAM4 电平转换参数(LTP)媒体输入 | N/A | allowed | N/A | allowed | allowed |
| FEC 前 BER 最小值媒体输入(数据路径) | N/A | allowed | N/A | allowed | allowed |
| FEC 前 BER 最大值媒体输入 | N/A | allowed | N/A | allowed | allowed |
| FEC 前 BER 平均值媒体输入 | N/A | allowed | N/A | allowed | allowed |
| FEC 前 BER 当前值媒体输入 | N/A | allowed | N/A | allowed | allowed |
| FERC 最小采样值媒体输入 | N/A | allowed | N/A | allowed | allowed |
| FERC 最大采样值媒体输入 | N/A | allowed | N/A | allowed | allowed |
| FERC 采样平均值媒体输入 | N/A | allowed | N/A | allowed | allowed |
| FERC 当前采样值媒体输入 | N/A | allowed | N/A | allowed | allowed |
| FERC 累计总计媒体输入 | N/A | allowed | N/A | allowed | allowed |
7.7 单向热数据路径重新配置#
支持在当前 DPSM 状态(见第 6.2.4 节)下对某些数据路径属性进行快速、无干预的单向热重新配置,其动机来自某些链路速率协商协议的要求,例如在光纤通道应用中使用的协议,该协议要求在保留数据路径通道分配的同时,在不同速率的类似应用之间临时单向切换。
注意:通俗地说,此单向重新配置特性也称为光纤通道支持。
通告
单向重新配置的支持由 UnidirReconfigSupported 位通告(见表 8-53)。
命令
最快的无干预热重新配置采用在两个准备好的暂存控制集之间切换。
注意:第二个暂存控制集的支持独立于 UnidirReconfigSupported 通告,但单向控制的典型应用将需要两个暂存控制集以提高速度。
对于最快的无干预双向热重新配置,可以使用基本的 ApplyImmediate 命令(表 8-70 和表 8-76)。
对于方向特定的无干预热重新配置,引入了两个可选的单向热重新配置命令,ApplyImmediateTx 和 ApplyImmediateRx(见表 8-75 和表 8-80),它们将主机通过应用暂存控制集发起的热重新配置命令(包括配置和开通)的效果分别限制在 Tx 或 Rx 方向。
注意:为了在时间关键的链路速率协商期间进一步加快整体重新配置,某些模块外形规格甚至可能提供硬件控制信号来触发单向重新配置命令,而不是写入 CMIS 触发寄存器。此类”速率或速率选择 Rx/Tx”功能的管理(通告、管理、报告)以及此类控制信号的编码和行为不在 CMIS 范围之内,因此留给外形规格特定的 CMIS 伴随规范。见第 8.8 节。
单向热重新配置命令触发仅在相关 DPSM 的 DPInitialized 或 DPActivated 稳态中有效。模块在所有其他状态中(静默地)忽略它们。
注意:这意味着数据路径首次进入 DPInitialized 时是 Rx/Tx 对称的。
数据路径应用的单向热重新配置限于在数据路径的所有通道上一致地更改 AppSel 代码,以及可选地在数据路径的某些或所有通道上更改显式控制参数(SI 属性)。数据路径的通道分配不得修改。
NP 应用不支持单向热重新配置。
命令参数
单向目标重新配置的命令参数按常规方式在支持的暂存控制集中定义,并通过使用与该暂存控制集关联的 Apply 寄存器来选择。
命令验证、执行和结果
单向重新配置命令的正面或负面结果以及重新配置命令执行状态(进行中)可在配置命令状态寄存器中找到(见表 8-90)。
在命令参数验证失败的情况下,模块不得更新活跃控制集且不得向硬件提交任何更改。
主机应允许触发的即时重新配置命令在当前状态下完成,然后再触发任何 DPSM 状态转换。
已提交状态信息
为表示按方向的已配置(并最终也已开通)配置,除了已经是方向特定的 SI 设置(见表 8-94 和表 8-95)之外,还引入了两个新数据结构 ACS::DPConfigTx(见表 8-160)和 ACS::DPConfigRx(见表 8-159)。经典活跃控制集(见表 8-93)始终表示 Tx 配置(如果未使用单向重新配置,则始终与 Rx 配置相同)。
注意:不使用模块支持的单向重新配置功能的主机可以安全地忽略方向活跃控制集,而使用经典活跃控制集。
7.8 主机通道切换功能#
在 CMIS 核心规范(见第 6 章)中,物理电气通道(由其物理连接点的几何和其他物理特征标识)与其在管理寄存器中使用的通道编号(或通道索引)之间存在固定关联。另见第 2.3.4 节。
本节中引入的可选主机通道切换功能打破了这种简单性,使得有必要区分由可变切换功能连接的外部通道段和内部通道段。
同样,我们将需要仔细区分给定的通道编号(或索引)是指固定的外部通道段还是外部通道段被切换到的内部通道段,因为同一通道在当前切换配置中根据用于标识通道的通道段而具有不同的通道编号。
注意:有关通道相关术语的背景,请参阅第 3.3 节的术语表。
我们将使用电气通道(编号)和名义通道(编号)的短语来区分外部主机通道段的通道编号和灵活连接的内部通道段的通道编号。当切换配置为直通(或不存在)时,这些数字相同。
7.8.1 连接限制#
连接到模块第 n 个(共 M 个)并行数据路径的内部主机通道段的主机互连电气通道段,无论是在具有并行数据路径(各自有自己的媒体通道)的分支模块中,还是在具有连接到网络路径的多个主机路径的复用模块中,都由第 6.2.1.3 节中描述的基于通道编号的规则确定,并如图 6-1 所示。
根据这些规则,主机互连电气通道按通道编号连续和顺序地连接到数据路径。由于通道编号和物理通道端口之间的关联在 CMIS 核心规范中是固定的,给定的通道编号始终指向模块的同一主机通道端口,因此指向连接到该端口的同一主机互连电气通道。
对于支持多种媒体或主机通道数据速率以及给定数据路径带宽可变主机通道数的模块,这可能变得不便,因为分配给数据路径的主机通道取决于用于通过较小通道编号的通道承载的其他数据路径的主机通道数。
为克服这些限制,模块可以通告支持八乘八主机通道切换功能。
通道重定向 电气通道切换 名义数据路径 媒体通道 数据路径配置寄存器数组 主机通道 主机通道寄存器数组
图 7-7 显示了主机通道切换模型和示例。
图 7-7 主机通道切换模型和示例
此通道切换功能允许主机自由定义在每组八个通道内,哪些模块外部主机电气通道段连接到数据路径的模块内部名义主机通道段。
7.8.2 主机通道切换模型#
图 7-7 中所示的 8x8 主机通道切换功能允许主机在每组八个通道内修改模块外部主机电气通道与作为模块内部数据路径一部分的模块内部主机通道之间的通常固定连接。
此通道切换通过(概念上)在模块的物理通道端口(具有主机电气通道的固定物理连接)和新引入的模块内部名义主机通道(端口)(具有与管理寄存器视图的固定名义关联,通道编号不受通道切换影响)之间为每组八个通道插入可配置的 8x8 主机通道切换来建模。
注意:这些名义通道(的端口)仅为建模构造,以允许应用描述和数据路径定义不受主机侧通道切换的影响。对于不支持或不使用通道切换的模块,名义通道端口和物理通道端口无法区分。
7.8.3 切换配置和状态#
为表示此主机通道切换的配置,采用物理通道端口(或外部主机互连电气通道)的视角,引入八个通道重定向寄存器数组 RedirectionOfLane<i>,其中 i 在 {1, …, 8} 中。另见第 8.21 节。
每个重定向寄存器 RedirectionOfLane<i> 包含主机互连电气通道 i(物理连接到外部通道端口 i)将被切换(连接到)的名义主机通道编号 j。
在本文档的其他地方,通过通道编号或通道索引对主机通道的每个引用 k(例如在应用描述符或数据路径配置中)都指向名义主机通道 k(如图 7-7 中主机通道切换右侧所示)。当切换未使用时,物理和名义通道之间的这种区分是不必要的。
注意:在简化视图中,切换只是重新连接连接到”常规”CMIS 模块(无切换)的电气主机通道。它不允许分叉或合并数据流。应用以名义主机通道编号而非重新排序的电气通道编号来描述、配置和监督。
当前切换配置状态始终报告,这在故障情况下尤为重要。切换配置状态由 RedirectStatusOfLane<i> 状态寄存器数组表示,该数组表示切换的实际状态。每个 RedirectStatusOfLane<i> 寄存器(i 在 {1, …, 8} 中)包含主机互连电气通道 i 当前被切换(连接到)的名义主机通道 j。
7.8.4 主机通道切换操作#
主机通道切换的使用模型由配置区域和具有进行中和结果反馈的命令组成,以提交已配置的配置。见第 8.21 节。
为简单起见,不通告任何 8x8 切换限制,也不通告由于某些应用中的模块限制而导致的潜在切换需求,即使实现可能有一些。因此,重新配置提交命令返回是进行中、已成功还是已失败。
注意:请记住,所有具有主机通道关联的寄存器或字段(如 ApplyDPInit、DPConfig、DPStatus)继续引用名义主机通道(如图 7-7 中主机通道切换右侧所示)。只有当使用主机通道切换功能时,承载给定名义主机通道数据的实际电气通道才会改变。
注意:更改切换配置不影响 DPSM,也不影响其他地方的主机通道编号,例如在位分配给通道的寄存器中。
在 ModuleLowPwr 和 ModuleReady 状态下,任何时候都允许提交新的主机通道切换配置,并且独立于与通道关联的数据路径(及其 DPSM 状态)。
主机必须确保任何已初始化或已激活的数据路径要么作为一个整体受主机通道切换配置更改的影响,要么完全不受影响。
模块应验证主机切换描述的是真正的通道排列,以及现有数据路径的所有通道一起被切换。
具有未受影响切换配置的通道的流量完整性预计不受影响。具有已修改切换配置的通道的流量完整性预计在重新配置期间受到影响。
注意:主机应避免交错数据路径命令和主机通道切换命令。
| OIF-CMIS-05.3 |
|---|