数据结构读取与响应格式 - 页码131
NVMe-MI 1 min read

数据结构读取与响应格式 - 页码131

Blog Author

🧩 深入分析 Shutdown 和 VPD Read 命令


🛑 Shutdown 命令

用途

Shutdown 命令 是用来启动整个 NVM Subsystem 的关机过程。这个命令会触发所有 NVMe Controllers 的关机,并确保系统在关机前完成所有相关的事件处理。

数据结构

Shutdown 命令 仅使用 NVMe Management Dword 0 字段,具体格式如下:

NVMe Management Dword 0 格式(见 Figure 127):

字节范围 字段 说明
31:24 Shutdown Type (SHDNTYP) 指定要执行的关机类型(正常关机或突发关机)。
23:00 Reserved 保留字段

Shutdown Type (SHDNTYP) 字段的定义:

定义
00h 正常的 NVM Subsystem 关机操作
01h 突发的 NVM Subsystem 关机操作
02h 到 FFh 保留值

命令流程

  1. Shutdown Type (SHDNTYP) 字段决定关机类型。可以是正常关机(00h)或突发关机(01h)。
  2. 正常关机:在接收到关机命令后,系统会触发每个 NVMe Controller 执行正常的关机操作。
  3. 如果 CSTS.SHST 被清除为 00b,且有未完成的异步事件请求(AE),系统会首先触发正常的 NVM Subsystem Shutdown 事件。
  4. 关机过程完成时,所有控制器的 CSTS.SHST 会被设置为 10b,CSTS.ST 设置为 1,表示关机完成。
  5. 突发关机:系统会直接进行突发关机,而无需等待其他操作。

特殊情况

  • NVM Subsystem Reset:如果支持 NVM Subsystem Reset 特性,且关机时选择了重置选项(如通过 NVM Subsystem Reset),则会执行相应的复位操作。

🧩 VPD Read 命令

用途

VPD Read 命令 用于读取 Vital Product Data (VPD),这是一个包含设备的关键信息的结构。通过该命令,管理端点可以读取指定的 VPD 部分数据。

数据结构

VPD Read 命令 使用 NVMe Management Dword 0 和 Dword 1 字段。

NVMe Management Dword 0 格式(见 Figure 128):

字节范围 字段 说明
31:16 Reserved 保留字段
15:00 Data Offset (DOFST) 指定数据读取的偏移量,即从哪个位置开始读取 VPD 数据。

NVMe Management Dword 1 格式(见 Figure 129):

字节范围 字段 说明
31:16 Reserved 保留字段
15:00 Data Length (DLEN) 指定要读取的数据长度,表示应返回多少字节的 VPD 数据。

命令流程

  1. Data Offset (DOFST):字段指定了从 VPD 数据中的哪个偏移位置开始读取。如果 DOFST 超过了最大 FRU 信息设备 大小,管理端点将返回 Invalid Parameter Error Response
  2. Data Length (DLEN):字段指定了返回的 VPD 数据的最大长度。如果 DLEN 指定的值大于允许的最大数据长度,管理端点也会返回 Invalid Parameter Error Response
  3. 如果 DLEN 为 0h,表示不需要读取数据,系统会返回一个 Success Response

特殊情况

  • VPD 数据溢出:如果请求的 Data Length 超过了 VPD 数据的实际大小,返回的数据会被截断,返回的内容不包含超过限制的部分,但会根据 ALENGTH 字段限制最大返回字节。
  • 无效数据字段:如果命令中的字段无效,管理端点会返回 Invalid Parameter Error Response

总结:

命令 用途 数据结构 关键字段
Shutdown 触发 NVM Subsystem 的关机操作 SHDNTYP SHDNTYP(关机类型)
VPD Read 读取 VPD 数据 DOFST, DLEN DOFST, DLEN
  • Shutdown 用于控制系统的正常或紧急关机,确保所有控制器都被正确关闭。
  • VPD Read 用于读取系统的 Vital Product Data (VPD),并通过偏移量和数据长度来指定需要的具体数据。

如果您需要更详细的分析或解释,随时可以提问!