控制器寄存器与属性配置 - 第68页
深入分析 NVM Express® Base Specification, revision 2.0b
3.1.3.6 CSTS – Controller Status(控制器状态)
位 | 类型 | 重置值 | 描述 |
---|---|---|---|
03:02 | RO | 00b | Shutdown Status (SHST):此字段指示由主机设置 CC.SHN 字段、主机设置 NSSC 属性,或管理端点处理了 NVMe-MI Shutdown 命令时启动的关机处理状态。此字段的状态值定义如下:00b - 正常操作(未请求关机);01b - 正在进行关机处理;10b - 关机处理完成;11b - 保留。 |
01 | RO | HwInit | Controller Fatal Status (CFS):当控制器发生致命错误且无法通过适当的完成队列进行通信时,此位设置为 '1'。此位在致命错误未发生时清除为 '0'。在控制器初始化期间,如果检测到致命错误,重置值为 '1'。 |
00 | RO | 0b | Ready (RDY):当控制器准备好处理提交队列条目时,此位设置为 '1',此时 CC.EN 设置为 '1'。当 CC.EN 被清除为 '0' 并且控制器准备好重新启用时,此位被清除为 '0'。命令应在此位设置为 '1' 后提交给控制器。 |
详细字段解析
Shutdown Status (SHST)
- 描述:该字段指示关机处理的状态,关机状态可以是正常操作、正在处理关机或关机已完成。关机处理的控制和状态对于确保数据完整性和系统恢复至关重要。
- 场景:
01b
(正在进行关机处理):此时,NVM子系统重置会中止控制器关机,但不会中止NVM子系统关机。-
10b
(关机完成):关机过程完成,若继续使用控制器,必须进行控制器重置。 -
关机处理的影响:关机和重启过程需要与控制器的工作状态相匹配,例如在关机后,控制器状态的恢复涉及对
RDY
位的重新设置,以确保命令可以正常处理。
Controller Fatal Status (CFS)
- 描述:此位用于指示控制器是否发生了致命错误。发生致命错误时,无法通过正常的命令完成队列反馈处理。
- 重要性:当发生硬件错误或系统故障时,立即触发此位为 '1',以便通知主机进行恢复操作,防止继续执行可能导致更严重错误的命令。
Ready (RDY)
- 描述:该字段指示控制器是否已准备好开始接受命令。在控制器完成初始化并且准备好处理命令时,
RDY
位设置为 '1'。在控制器重启后或子系统关机处理完毕后,必须重置此字段并重新启动命令处理。 - 关键点:在
RDY
位被设置为 '1' 之前,不应向控制器提交命令,确保控制器处于可处理命令的状态。这一操作对于确保系统稳定性和避免命令丢失至关重要。
总结
- Shutdown Status (SHST) 字段对系统的关机流程至关重要,确保系统在关机时能够按照预定流程处理,避免数据丢失。
- Controller Fatal Status (CFS) 字段帮助主机及时响应控制器故障,防止出现不可恢复的错误。
- Ready (RDY) 字段确保系统在准备好接受命令之前不接收数据,避免因设备未准备好而引发的命令失败。
这些控制器状态和关机管理功能为 NVM Express 协议提供了健壮的错误检测与处理机制,是确保数据存储系统高可靠性的核心组成部分。