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

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

Blog Author

深入分析 SES SendShutdown 命令


🧩 SES Send 命令

用途

SES Send 命令 用于传输 SES 控制类型的诊断页面 至 SES 封装服务进程。这些页面通过请求消息或 Management Endpoint Buffer 被发送到目标接收方。

数据结构

  • Page Code (PCODE):在 SES 控制类型诊断页面中,指定该页面的类型,页面代码会告知接收方是哪种类型的页面。
  • Data Length (DLEN):指定请求数据字段的字节长度,定义传输的数据大小。

命令流程

  1. PCODE 字段指定 SES 控制类型页面的类型。
  2. DLEN 字段指定请求数据字段的大小。如果 DLEN 为 0,则表示无数据,成功响应后无需传输数据。
  3. 如果 PCODE 字段指定了保留的、无效的值或仅对应 SES 状态页面,则返回 Invalid Parameter Error Response,指示无效字段。
  4. 如果数据中的某个字段无效,命令将返回 Invalid Parameter Error Response,指示无效字段。

特殊情况

  • DLEN > PAGE LENGTH:如果 DLEN 字段指定的长度大于页面内容长度 + 4,则多余的数据将被忽略。
  • DLEN < PAGE LENGTH:如果 DLEN 小于页面内容长度 + 4,则该页面数据将按 Request Data 字段中的内容进行处理。
  • 如果 SES Send 命令 支持 out-of-band 机制,那么 Management Endpoint Buffer 必须能够支持用于存储超过单个 NVMe-MI 消息最大允许大小的 SES 控制类型诊断页面。

🧩 Shutdown 命令

用途

Shutdown 命令 用于触发对所有 NVM Subsystem 控制器的关机操作。该命令发送至一个管理端点(Management Endpoint),然后执行全局关机操作。

数据结构

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) 字段决定了关机操作的类型。具体有两种类型:正常关机和突然关机。
  2. 该命令会触发所有控制器的关机,执行之后不会返回成功响应。

特殊情况

  • 正常关机 (00h):指的是正常的关机过程,系统会关闭所有的控制器。
  • 突然关机 (01h):是一种紧急关机操作,立即停止所有操作。

总结:

命令 用途 数据结构 关键字段
SES Send 发送 SES 控制类型的诊断页面 PCODE, DLEN PCODE, DLEN
Shutdown 触发 NVM Subsystem 控制器关机 SHDNTYP SHDNTYP
  • SES Send 用于传输 SES 控制类型诊断页面,支持 out-of-band 机制来处理更大的数据。
  • Shutdown 命令负责触发整个 NVM Subsystem 的关机操作。

如果有进一步的需求或疑问,随时欢迎提问!