术语定义与缩略语详解 - 页码28
你现在引用的是 《NVM Express® Management Interface Specification, Revision 2.0》 中:
- 术语定义补充部分(1.8.47 ~ 1.8.48)
- 关键词定义说明部分(1.9.1 ~ 1.9.8)
这些部分主要用于规范中术语使用的一致性、强制性与兼容性语义的精确定义。它们虽然不是协议执行的核心机制,却是正确理解字段含义、命令实现要求、以及错误处理机制的关键语言基础。
✅ 一、术语详解
1.8.47 Vendor ID(厂商ID)
📌 定义:
- Vendor ID 是 PCI-SIG 分配给其成员公司的一种 唯一标识码。
- 它在 PCI 配置空间中用于识别设备的供应商。
✅ NVMe-MI 中的使用原则:
- 如果一个 NVM Subsystem 含有多个厂商的元件,可以使用任意一个 Vendor ID。
- 建议统一使用同一个 Vendor ID 来填写所有相关字段,保持一致性。
🧠 应用举例:
- VPD 中的 Vendor ID 字段
- Controller Identify 数据结构中的厂商标识字段
1.8.48 VPD(Vital Product Data)
📌 定义:
- VPD(重要产品数据) 是存储在 FRU 信息设备(FRU Information Device) 中的数据。
- 本规范定义了适用于 NVMe 存储设备的 VPD 标准格式。
✅ 包含内容示例:
- 设备序列号
- 制造日期
- 设备版本
- 唯一标识符(如 FGUID)
🧠 应用场景:
- 平台级资产管理
- 数据中心大规模部署时的自动识别与配置
- 故障定位与设备追溯
📘 相关细节见 §8.2(Vital Product Data)
✅ 二、关键字用法说明(§1.9)
这部分定义了规范中的语义强度等级,每个关键词都有其明确含义,关系到实现时的合规性和互操作性要求:
关键字 | 含义 | 说明 |
---|---|---|
mandatory | 必须实现 | 与“shall”等价(结构化说明场合使用) |
may | 可选,实现者自定义 | 没有优先级,不推荐/不反对 |
obsolete | 弃用 | 被规范废弃,不得使用 |
optional | 可选功能 | 若实现,必须完全遵循规范描述 |
reserved / R | 保留 | 预留扩展用途,写入时应为 0h,读取忽略 |
shall | 必须,具备强制性 | 不符合即视为不兼容 |
should | 推荐实现 | 不强制,但规范明确推荐,等价于“建议” |
🧠 特别注意事项:
reserved
字段是兼容设计的关键:- 写入时要填 0h
- 读取时可以忽略
- 出现保留编码值时应返回错误
-
往控制器写入保留编码可能导致未定义行为
-
optional
≠ 任意实现: - 如果你选择实现了某个 optional 功能,就必须严格按照规范执行!
✅ 实用举例:用关键词判断字段意义
字段 | 标记 | 实现要求 |
---|---|---|
AE Support List |
mandatory | 设备必须提供完整支持 |
2-Wire Mux Support |
optional | 可以不支持;但若支持,行为必须符合规范 |
Health Monitoring Enhancements |
should | 建议实现,优化系统管理能力 |
Vendor Specific Opcode = 0xFF |
reserved | 不得实现,可能在未来版本中定义新含义 |
📘 实践建议
- 在实现协议栈时,要特别关注:
- reserved 字段值的默认初始化
- optional 功能是否要实现 → 实现了就必须完整支持
- 遇到未识别字段值时如何容错处理(例如
reserved coded value
) - 在编写配置脚本或驱动代码时,使用
shall
/should
的语义判断可以明确哪些是 合规必需、哪些是 建议优化 的选项。
✅ 小结
类别 | 定义 | 实际用途 |
---|---|---|
Vendor ID | 厂商唯一标识 | 区分设备来源,标识一致性 |
VPD | 存储于 FRU 的产品元数据 | 设备识别、运维追踪、生命周期管理 |
关键词 | 约定术语语义 | 用于判断哪些功能是强制实现、建议实现或禁止使用 |
✅ 推荐下一步:
- 如果你要开发兼容 NVMe-MI 的驱动/固件,这些关键词的理解是编写合规代码的基础。
- 下一步可以进入 第2章:物理层结构(Physical Layer),分析:
- 如何通过 PCIe / SMBus / I3C 实现带外管理路径;
- 每种通道的物理连接特性与管理机制。
需要我带你逐节深入下一章内容吗?或者你想从实际 NVMe-MI 消息结构(第3章)开始了解更实战的部分?