控制器寄存器与属性配置 - 第68页
NVME2.0协议解读 1 min read

控制器寄存器与属性配置 - 第68页

Blog Author

深入分析 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' 之前,不应向控制器提交命令,确保控制器处于可处理命令的状态。这一操作对于确保系统稳定性和避免命令丢失至关重要。

总结

  1. Shutdown Status (SHST) 字段对系统的关机流程至关重要,确保系统在关机时能够按照预定流程处理,避免数据丢失。
  2. Controller Fatal Status (CFS) 字段帮助主机及时响应控制器故障,防止出现不可恢复的错误。
  3. Ready (RDY) 字段确保系统在准备好接受命令之前不接收数据,避免因设备未准备好而引发的命令失败。

这些控制器状态和关机管理功能为 NVM Express 协议提供了健壮的错误检测与处理机制,是确保数据存储系统高可靠性的核心组成部分。