第3章 物理层与MCTP传输 - 页码38
你现在看到的是 Figure 20: NVMe-MI Message Fields(图 20:NVMe-MI 消息字段) 的 Byte 1 部分,字段名为 NVMe-MI Message Parameters (NMP)。这是整个 NVMe-MI 消息头的关键部分之一,用于表达请求/响应、消息类型、命令槽等基本控制信息。
下面我们将 逐位深入讲解 NMP 字节的结构和使用规则,帮助你完全掌握这个控制字段的意义和应用。
✅ 图 20:Byte 1 – NVMe-MI Message Parameters (NMP)
Bit位 | 字段名 | 含义 |
---|---|---|
7 | ROR (Request or Response) |
消息方向标识:请求(0 ) 或 响应(1 ) |
6:3 | NMIMT (NVMe-MI Message Type) |
指定消息的具体类型(如命令、事件等) |
2:1 | Reserved | 保留位,写 0,读时忽略 |
0 | CSI (Command Slot Identifier) |
指示该命令属于哪个槽(仅在 Out-of-Band 使用) |
🔸 Bit 7: ROR (Request or Response)
值 | 说明 |
---|---|
0 |
代表 Request Message |
1 |
代表 Response Message |
AE Messages |
该字段 无效,必须设为 0 |
✅ 用于区分消息是从 管理端发出(请求)还是从 设备返回(响应)。
🔸 Bits 6:3: NMIMT (NVMe-MI Message Type)
4 位字段,用于标识该 NVMe-MI 消息的具体类型。
值 | 类型说明 | 使用场景 | 参考章节 |
---|---|---|---|
0h |
Control Primitive | 管理控制(如暂停、重放) | §4.2.1 |
1h |
NVMe-MI Command | 管理命令集(如读取VPD、健康信息) | §5 |
2h |
NVMe Admin Command | 透传 Admin 指令(如 Get Log Page) | §6 |
3h |
Reserved | 保留,禁止使用 | - |
4h |
PCIe Command | 配置/IO/内存访问命令 | §7 |
5h |
Asynchronous Event | AEM 异步事件 | §4.1.3 |
6h–Fh |
Reserved | 保留,禁止使用 | - |
✅ 每种消息类型在后续章节有具体结构说明,你可以通过
NMIMT
字段快速知道该如何解析 payload。
🔸 Bit 0: CSI (Command Slot Identifier)
⚠️ 仅适用于 Out-of-Band 请求或响应消息,In-Band 与 AEM 不适用。
值 | 所属命令槽 |
---|---|
0 |
Slot 0 |
1 |
Slot 1 |
- Out-of-Band 使用两个并发槽来发送/接收命令;
- CSI 决定该条消息进入哪个槽处理流程。
🎯 每个 Management Endpoint 仅支持两个并发命令槽,便于异步命令并发处理。
✅ NMP 字节结构图(示意)
+----------+--------------+-------------+--------+
| Bit 7 | Bit 6:3 | Bit 2:1 | Bit 0 |
| ROR | NMIMT | Reserved | CSI |
+----------+--------------+-------------+--------+
| Req/Resp | Msg Type | 00b | SlotID |
+----------+--------------+-------------+--------+
✅ 实用解析举例
类型 | ROR | NMIMT | CSI | 含义 |
---|---|---|---|---|
请求健康状态 | 0 | 1h | 0 | 请求类型、NVMe-MI 命令、使用 Slot 0 |
异步事件通知 | 0 | 5h | 0 | 异步事件,无 CSI,无需回应 |
返回响应 | 1 | 1h | 0 | 响应 NVMe-MI 命令(来自 Slot 0) |
✅ 总结重点
ROR
:确定消息方向(请求/响应);NMIMT
:是 NVMe-MI 消息类型的核心字段;CSI
:仅在带外使用,标识命令所属槽位;- 所有保留位必须写 0;
- 异步事件消息使用特殊类型(5h)并禁用 CSI 与 ROR。
如果你有兴趣,我可以为你接下来分析:
🔸 图 21:Rocksoft CRC 算法参数(用于 Integrity Check)
或
🔸 图 22:消息完整性校验示例(Message Integrity Check Example)
是否继续?你也可以告诉我你更想深入的方向!