术语定义与缩略语详解 - 页码28
NVMe-MI 1 min read

术语定义与缩略语详解 - 页码28

Blog Author

你现在引用的是 《NVM Express® Management Interface Specification, Revision 2.0》 中:

  1. 术语定义补充部分(1.8.47 ~ 1.8.48)
  2. 关键词定义说明部分(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章)开始了解更实战的部分?