第5章 管理接口命令集 - 页码107
我们继续深入分析 图 97:Controller Health Data Structure (CHDS) 的下半部分,它是 NVMe-MI 规范中 Controller Health Status Poll 命令返回结构的核心组成部分。
🔍 CHDS 字节 04 ~ 10:状态与健康字段详解
✅ 字节 04 – NVM Subsystem Reset Occurred (NSSRO)
- 作用: 指示控制器是否经历了 非断电引发的 NVM Subsystem Reset,但未触发固件激活。
- 置位条件:
- 复位发生的原因 ≠ 加电。
- 且没有激活新固件镜像。
- 特殊说明:
- 如果复位源于加电或触发了新固件激活,这个位应被清除为
0
。 - 此位在 HwInit 后被置位(即硬件初始化时的默认行为可能受影响)。
✅ 字节 03:02 – Shutdown Status (SHST)
- 作用: 映射自 NVM Express Base 规范中的
CSTS.SHST
字段。 - 含义: 表示控制器是否正在关闭、已经关闭,或尚未关闭:
00b
: 未关闭01b
: 正在关闭10b
: 已完成关闭11b
: 保留
✅ 字节 01 – Controller Fatal Status (CFS)
- 映射自:
CSTS.CFS
。 - 含义: 控制器出现严重错误。
- 置位行为: 一旦置位,表示控制器无法继续正常操作,通常需复位或更换设备。
✅ 字节 00 – Ready (RDY)
- 映射自:
CSTS.RDY
。 - 含义: 控制器是否就绪可接受命令。
🌡️ 温度与健康监测字段
✅ 字节 05:04 – Composite Temperature (CTEMP)
- 单位: 开尔文(Kelvin)
- 来源: 控制器的 SMART / Health Info 日志页。
- 说明: 指示当前控制器及其关联命名空间的组合温度。
✅ 字节 06 – Percentage Used (PDLU)
- 含义: 表示基于厂商预估寿命的剩余使用寿命百分比。
- 来源: SMART 日志中的 Percent Used 字段。
- 用途: 生命周期监控,100% 表示即将达到寿命极限。
✅ 字节 07 – Available Spare (SPARE)
- 含义: 剩余备用块百分比(0%~100%)。
- 来源: SMART 日志中的 Available Spare 字段。
✅ 字节 08 – Critical Warning (CWARN)
- 定义: 映射自 SMART 中的 Critical Warning 字段。
- 每一位含义:
位 | 名称 | 说明 |
---|---|---|
7:6 | Reserved | 保留位 |
5 | PMRE | 持久内存区域错误(与 PMRRO 同义) |
4 | VMBF | 易失性备份失败(如断电保护失败) |
3 | RO | 所有介质只读(AMRO) |
2 | RD | NVM 子系统可靠性下降(NDR) |
1 | TAUT | 温度异常(过高或过低) |
0 | ST | 备用空间不足(ASCBT) |
- 所有这些位的语义均来自 SMART / Health Information Log 页,反映设备健康临界问题。
🧩 字节 10:09 – Controller Health Status Changed (CHSC)
- 含义: 指示哪些控制器健康相关位在轮询期间有变化。
- 来源: Figure 98 中定义的
Controller Health Status Changed Flags
字段。 - 用途: 精确报告变更位,而不是当前位值,便于区分 是否“新”发生了某种状态变化。
📌 总结与建议
字段 | 作用 | 关键说明 |
---|---|---|
NSSRO |
非电源引发的子系统复位检测 | 排除电源恢复和固件激活 |
SHST |
控制器关闭状态 | 分三种状态编码 |
CFS |
致命错误检测 | 指示需强制恢复 |
CTEMP / PDLU / SPARE |
实时温度与老化监控 | 来源于 SMART 日志页 |
CWARN |
临界告警集合 | 位图精确表示各类风险 |
CHSC |
状态变更追踪 | 与具体错误值不同,侧重“变化”监控 |
是否需要我们进一步分析 图 98:Controller Health Status Changed Flags 字段的结构与用途?那将帮助你理解 CHDS 中 CHSC
字段的来源及其轮询清零逻辑。是否继续?