第5章 管理接口命令集 - 页码109
NVMe-MI 1 min read

第5章 管理接口命令集 - 页码109

Blog Author

你现在查阅到的是 图 98(续),也就是 Controller Health Status Changed Flags (CHSCF) 字段的 低 6 位(05:00) 的定义。这部分信息进一步丰富了控制器状态变化追踪的能力,是整个 NVMe-MI 健康监控机制的重要组成部分。

我们继续来做结构化解析和场景理解,帮助你深入掌握它的用途和逻辑。


✅ 图 98(下半部分):CHSCF Bit 位定义(Bits 05:00)

Bit 位 字段名 Reset 默认值 说明
05 CECO(Controller Enable Change Occurred) HwInit 如果 CHDS.Controller Status 中 CECO 位的值发生变化,则将此位设为 1
04 NSSRO(NVM Subsystem Reset Occurred) HwInit 如果 CHDS.Controller Status 中 NSSRO 位从 0 变为 1,此位设为 1
03 Reserved 0 保留位,不使用
02 SHST(Shutdown Status) 0 如果 CHDS.Controller StatusShutdown Status 字段发生变化,则置为 1
01 CFS(Controller Fatal Status) HwInit 如果 CHDS.Controller Status 中 CFS 位发生变化,则置为 1
00 RDY(Ready) 0 如果 CHDS.Controller Status 中 Ready 位发生变化,则置为 1

🧠 这些标志位都监控什么?

这些位基本上都对应于 Controller 的核心运行状态或健康状态

状态 意义
RDY(Ready) 控制器是否处于就绪状态(CSTS.RDY)
CFS(Fatal Status) 控制器是否进入致命错误状态(CSTS.CFS)
SHST(Shutdown Status) 是否正在关机或关机已完成(CSTS.SHST)
NSSRO(Subsystem Reset) 是否发生了 NVM Subsystem Reset
CECO(Enable 变化) 控制器启用状态是否发生了变化(CC.EN)

🔁 与 Controller Health 数据结构(CHDS)字段对应关系

我们可以补全前面位图映射关系:

CHSCF 位 对应 CHDS 字段
00 RDY CSTS.RDY
01 CFS CSTS.CFS
02 SHST CSTS.SHST
04 NSSRO Controller Status[NSSRO]
05 CECO Controller Status[CECO]

这些位专门用来监控 控制器启用、关闭、复位、致命错误等系统级事件


🔄 Reset 行为说明

💥 关键 Reset 行为总结如下:

类型 影响的对象 会重置哪些字段?
NVM Subsystem Reset 所有 Management Endpoint + 所有 Controller 重置对应实例的 CHSCF
Controller Level Reset 目标 Controller 及其关联的 CHSCF 同样重置相关字段
Management Endpoint Reset 目标 Management Endpoint 重置其维护的 CHSCF 实例

📌 其他类型的 Reset(如 PCIe link reset)不应重置 CHSCF 字段!


💡 应用场景举例

场景 1:检测是否有控制器经历了关机

  • 控制器使用 Controller Health Status Poll 命令。
  • 设定 SHST 位为 1,CCF=1
  • 如果某个控制器在响应数据中出现,说明其 Shutdown Status 在最近发生过变化。
  • 下一轮轮询后,如果 CCF=1,该标志会被清除,避免重复报告。

场景 2:检测是否有致命错误发生

  • 检查 CHSCF 的 bit 01 (CFS),如果值为 1,可进一步查询控制器状态位确认 CFS 位。

✅ 总结要点

要素 内容
CHSCF 字段 用于标记 Controller Health 中字段的变动情况
位粒度追踪 包括温度变化、重启状态、就绪状态、致命错误、使能状态等
影响 Reset 范围明确 仅特定类型的 Reset 会清除对应实例的 CHSCF
与 CHDS 联动 变动的字段对应在 CHSCF 中会设置为 1
配合 Poll 命令使用 可精确获取哪些控制器在哪些维度上发生过状态变化

如果你已经掌握了 CHSCF 的结构和用途,下一步我们可以一起看看 图 99 的映射位图(CHSCF 和 CHDS 之间的详细位关联表),帮助你一目了然每一位监控的对象。需要继续吗?