管理命令集 - 📌 一、SMART / Health Status 事件信息(见 Figure 145) (第161页)
我们继续深入分析 NVM Express® Base Specification, revision 2.0b 中的第150页,特别是关于 SMART / Health Status 和 Notice 类型的异步事件信息。
📌 一、SMART / Health Status 事件信息(见 Figure 145)
SMART(自我监控、分析与报告技术)和健康状态事件是 NVM 子系统 状态的指示,通常由硬件级故障、温度变化或空间不足等因素引发。
1. 事件值及描述
| 值 | 描述 |
|---|---|
| 00h | NVM 子系统可靠性受损:表示 NVM 子系统的可靠性受损,可能由以下原因导致: |
| - 重大介质错误; | |
| - 内部错误; | |
| - 介质进入只读模式; | |
| - 易失性内存备份设备失败。 | |
| 01h | 温度阈值:表示温度达到了过温或低温阈值。详细阈值见第5.27.1.3节。 |
| 02h | 备用容量低于阈值:表示可用的备用容量低于设定的阈值。 |
| 03h 到 FFh | 保留:未来可能使用。 |
2. 如何清除该事件
- 主机需要通过 Get Log Page 命令读取相关的日志页,以清除这些事件。例如,如果事件是由于温度阈值触发的,主机需要读取 SMART / Health 信息日志页。
📌 二、Notice 事件信息(见 Figure 146)
Notice 类型事件通常用于指示配置或状态变化。具体来说,这些事件表示命名空间或固件状态的变化等。
1. 事件值及描述
| 值 | 描述 |
|---|---|
| 00h | 命名空间属性更改:表示命名空间的某些属性发生了变化,例如: |
| - Identify Namespace 数据结构(详见 NVMe I/O Command Set 规范)发生更改; | |
| - I/O Command Set Independent Identify Namespace 数据结构发生更改; | |
| - Identify 命令返回的命名空间列表发生更改; | |
| - 或其他相关的命名空间数据结构更改。 | |
| 01h | 固件激活开始:表示固件激活过程开始,期间命令处理会暂停。主机软件可以通过 CSTS.PP 字段来检测何时命令处理恢复。 |
| 02h | 遥测日志更改:表示控制器将内部状态保存到 Telemetry Controller-Initiated log 中,并设置 Telemetry Controller-Initiated Data Available 字段为 1。 |
| 03h | 非对称命名空间访问更改:表示与 ANA(Asymmetric Namespace Access)组 相关的命名空间访问状态发生了变化,例如 ANA 状态变化或 ANAGRPID 变化。 |
2. 如何清除该事件
对于每个事件类型,主机可以通过发起相应的 Get Log Page 命令来清除事件。例如:
- 命名空间属性更改:主机通过读取 Changed Namespace List log 来清除此事件。
- 固件激活开始:主机通过读取 Firmware Slot Information log page 来清除此事件。
- 遥测日志更改:主机通过读取 Telemetry Controller-Initiated log 来清除此事件。
- 非对称命名空间访问更改:主机通过读取 Asymmetric Namespace Access log 来清除此事件。
📌 三、Notice 事件清除的限制
控制器仅在特定条件下发送 Notice 事件,例如:
- 命名空间状态更改 时,只有在命名空间格式化进度发生变化时才发送 命名空间属性更改 事件。
- 控制器 不会在命名空间关闭处理期间(即
CSTS.SHST设置为01b或10b)发送该事件。
此外,控制器在以下情况下不应发送此类事件:
- 命名空间的附件、删除或分离(例如命名空间被挂载或卸载时);
- 命名空间格式化进度指示符 发生变化时,只有在指示符的位 6-0 从非零值变为 0 或从 0 变为非零时才触发该事件。
📌 四、总结
-
SMART / Health 状态事件:与设备的健康状态相关,包括 NVM 子系统可靠性、温度阈值、和 备用容量 等,主机需要根据事件类型读取相应的日志页以清除事件。
-
Notice 事件:与配置或状态变化相关,涉及命名空间、固件、遥测日志、非对称命名空间访问等。主机也需要通过读取相应的日志页来清除这些事件。
-
事件清除方法:清除事件通常需要主机通过 Get Log Page 命令读取日志页,并且控制器会根据事件类型的不同提供不同的清除方式。
-
事件触发条件:控制器会根据命名空间状态、固件处理、以及遥测日志等条件来决定是否触发这些事件,主机可以通过日志页查看详细信息并清除事件。
如果你对特定的事件类型、日志页结构或事件清除方式有更深入的兴趣,或者希望看实际的命令例子,欢迎继续提问!