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

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

Blog Author

深入分析 NVM Express® Base Specification, revision 2.0b

3.1.3.5 CC – Controller Configuration (续)

类型 重置值 描述
00 RW 0b Enable (EN):当此位设置为‘1’时,控制器开始处理命令;当清除为‘0’时,控制器停止处理命令,并且不会在完成队列中发布完成条目。清除此位时,控制器会执行重置操作(即控制器重置),重置将删除所有I/O提交队列和I/O完成队列,并重置Admin队列,使硬件进入空闲状态。此操作不会影响特定于传输的状态(例如PCIe寄存器,包括MMIO MSI-X寄存器)和Admin队列的属性(AQA、ASQ、ACQ)。所有其他控制器属性和内部状态(例如,在电源状态之间不持久的特性值)将重置为默认值。重置时,控制器会确保不会丢失已完成命令的结果。

3.1.3.6 CSTS – Controller Status(控制器状态)

类型 重置值 描述
31:07 RO 0h Reserved:保留位。
06 RO Impl Spec Shutdown Type (ST):当 CSTS.SHST 设置为非零值时,此位表示由 CSTS.SHST 报告的关机类型。如果此位设置为‘1’,则表示报告的是NVM子系统关机的状态;如果此位清除为‘0’,则表示报告的是控制器关机的状态。如果 CSTS.SHST 设置为 00b,则忽略此位。
05 RO 0b Processing Paused (PP):此位指示控制器是否暂停了命令处理。如果此位清除为‘0’,则表示控制器正在正常处理命令。如果设置为‘1’,则表示控制器已暂停命令处理,以处理某些事件(例如固件激活)。此位仅在 CC.EN = 1 时有效。
04 RWC HwInit NVM Subsystem Reset Occurred (NSSRO):此位的初始值在发生NVM子系统重置时设置为‘1’,如果重置发生时电源已应用于该域,则该位表示NVM子系统的重置状态。此位的初始值在电源应用到域后发生NVM子系统重置时会清除为‘0’。只有当控制器支持NVM子系统重置功能时,此位才有效,CAP.NSSRS设置为‘1’时表示该功能被支持。如果NVM子系统重置导致激活新的固件映像,则此位的重置值会清除为‘0’。

字段解析

  1. Shutdown Type (ST)
  2. 描述:此字段指示当前关机的类型。根据是否为NVM子系统或控制器关机,CSTS.SHST 会报告不同的关机状态。这对于系统的正常关机和紧急关机(例如突然断电)处理至关重要。

  3. Processing Paused (PP)

  4. 描述:该字段标识控制器是否暂停了命令处理。通常,这在固件更新或需要暂停当前操作的场景中使用。该位的状态有助于主机管理何时等待控制器完成当前任务。

  5. NVM Subsystem Reset Occurred (NSSRO)

  6. 描述:这个位用于指示上次NVM子系统重置的状态。它对系统的启动和重置过程至关重要,确保在重置后,系统能根据新的固件映像或配置重新初始化。

总结:

  • Enable (EN) 位控制着控制器的启用和重置,当此位切换时,控制器进入不同的工作模式,如正常运行或重置模式。
  • Shutdown Type (ST)Processing Paused (PP) 字段对系统在关机或暂停状态下的行为至关重要。
  • NVM Subsystem Reset Occurred (NSSRO) 位有助于管理NVM子系统的状态变化,特别是在发生系统重置或固件更新时。

这些字段和功能描述了如何管理NVM控制器的工作状态,特别是在关机、暂停和重置等关键操作中,保证了数据完整性与系统稳定性。