命名空间管理与配置 - 第128页
NVME2.0协议解读 1 min read

命名空间管理与配置 - 第128页

Blog Author

以下是对 《NVM Express® Base Specification, revision 2.0b》第117页NVM 子系统关机与域级关机 相关内容的中文深入分析与教学讲解


🌟 NVM 子系统关机流程(NVM Subsystem Shutdown)

正常与突发 NVM 子系统关机

正常 NVM 子系统关机:

  • 发起方式
  • 主机将值 41627074h(十六进制 "Abpt")写入 NSSD.NSSC 字段(当 CAP.CPS 设置为 11b)。
  • 向管理端点(Management Endpoint)发送 NVMe-MI Shutdown 命令,指明是正常关机。

  • 正常关机时的处理

  • 如果有一个未完成的 Asynchronous Event Request(AER) 命令,控制器必须先发出 正常 NVM 子系统关机事件,然后再进行关机。

突发 NVM 子系统关机:

  • 发起方式
  • 主机将值 41627074h(十六进制 "Abpt")写入 NSSD.NSSC 字段,指示突发关机。
  • 向管理端点发送 NVMe-MI Shutdown 命令,指明是突发关机。

🧠 安全断电条件

  • 在所有控制器完成关机处理后,任何控制器的 CSTS.SHST 字段 设置为 10b(表示关机处理完成)时,可以安全断电整个 NVM 子系统
  • 控制器关机完成后,即可安全断电,直到发生 NVM 子系统重置(Subsystem Reset)

🔄 NVM 子系统重置与控制器行为

  • NVM 子系统重置
  • 当 NVM 子系统重置发生时,CSTS.SHST 字段会被清零(00b)。
  • 任何类型的控制器重置(如 Controller Level Reset)都不会影响正在进行的 NVM 子系统关机操作。

🌍 多域 NVM 子系统的关机流程(Domain Shutdown in a Multiple Domain NVM Subsystem)

多域 NVM 子系统中的关机

在支持多个域(Multiple Domain)NVM 子系统的情况下,每个域都可以单独进行关机操作。以下是多域子系统的关机流程:

正常关机

  • 发起方式
  • 主机将值 41627074h(十六进制 "Abpt")写入 NSSD.NSSC 字段(当 CAP.CPS 设置为 10b)。
  • 向管理端点发送 NVMe-MI Shutdown 命令,指明是正常关机。

  • 关机处理

  • 如果有未完成的 Asynchronous Event Request(AER) 命令,控制器必须发出正常的 NVM 子系统关机事件

突发关机

  • 发起方式
  • 主机将值 41627074h(十六进制 "Abpt")写入 NSSD.NSSC 字段,指示突发关机。
  • 向管理端点发送 NVMe-MI Shutdown 命令,指明是突发关机。

🧠 安全断电条件

  • 在所有控制器关机处理完成后,任何控制器的 CSTS.SHST 字段 设置为 10b 时,可以安全断电整个 NVM 域
  • 控制器关机完成后,直到发生 NVM 子系统重置,域内控制器可以安全断电。

🚨 NVM 子系统关机的特殊处理与重置机制

NVM 子系统关机中的特殊行为

  • NVM 子系统重置(NVM Subsystem Reset)
    当 NVM 子系统重置发生时,CSTS.SHST 字段被清零(00b),并且会清除所有控制器的关机状态。

  • 控制器重置与关机

  • 控制器级重置(Controller Level Reset) 不会影响 NVM 子系统关机的进行,但会清空控制器的关机状态。

📘 总结与关键点:

内容板块 要点总结
正常关机与突发关机 正常关机:主机通过写入 41627074hAbpt)或发出 NVMe-MI 命令发起关机。
突发关机:相同的操作,但指示控制器立即关机。
NVM 子系统安全断电 只有在所有控制器的 CSTS.SHST10b 且关机完成时,才能安全断电。
子系统与控制器重置 子系统重置会清除关机状态;控制器级重置不会影响关机流程。
多域子系统关机 多个域内的控制器关机操作类似,关机完毕后可以安全断电,直到子系统重置发生。

如果你希望继续分析 Asynchronous Event Request 命令的具体作用,或更深入理解 NVM Subsystem Reset 的处理机制,欢迎告诉我!我可以帮助你更细致地理解每个部分的交互与流程。