数据结构读取与响应格式 - 页码130
深入分析 SES Send 和 Shutdown 命令
🧩 SES Send 命令
✅ 用途:
SES Send 命令 用于传输 SES 控制类型的诊断页面 至 SES 封装服务进程。这些页面通过请求消息或 Management Endpoint Buffer 被发送到目标接收方。
✅ 数据结构:
- Page Code (PCODE):在 SES 控制类型诊断页面中,指定该页面的类型,页面代码会告知接收方是哪种类型的页面。
- Data Length (DLEN):指定请求数据字段的字节长度,定义传输的数据大小。
✅ 命令流程:
- PCODE 字段指定 SES 控制类型页面的类型。
- DLEN 字段指定请求数据字段的大小。如果 DLEN 为 0,则表示无数据,成功响应后无需传输数据。
- 如果 PCODE 字段指定了保留的、无效的值或仅对应 SES 状态页面,则返回 Invalid Parameter Error Response,指示无效字段。
- 如果数据中的某个字段无效,命令将返回 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 | 保留值 |
✅ 命令流程:
- Shutdown Type (SHDNTYP) 字段决定了关机操作的类型。具体有两种类型:正常关机和突然关机。
- 该命令会触发所有控制器的关机,执行之后不会返回成功响应。
✅ 特殊情况:
- 正常关机 (00h):指的是正常的关机过程,系统会关闭所有的控制器。
- 突然关机 (01h):是一种紧急关机操作,立即停止所有操作。
总结:
命令 | 用途 | 数据结构 | 关键字段 |
---|---|---|---|
SES Send | 发送 SES 控制类型的诊断页面 | PCODE, DLEN | PCODE, DLEN |
Shutdown | 触发 NVM Subsystem 控制器关机 | SHDNTYP | SHDNTYP |
- SES Send 用于传输 SES 控制类型诊断页面,支持 out-of-band 机制来处理更大的数据。
- Shutdown 命令负责触发整个 NVM Subsystem 的关机操作。
如果有进一步的需求或疑问,随时欢迎提问!