PCIe配置与VPD管理 - 页码164
NVMe-MI 1 min read

PCIe配置与VPD管理 - 页码164

Blog Author

我们继续对 《NVM Express® Management Interface Specification, Revision 2.0》 第 8.2.3 节中描述的 NVMe MultiRecord Area 进行深入分析,方便系统性理解。


NVMe MultiRecord Area(NVMe 多记录区域)详解

该结构体是 VPD(Vital Product Data) 多记录区的一种类型,用于描述 NVMe 存储设备的 形态(Form Factor)功耗需求 和部分拓扑特性,主要面向只有一个 NVM Subsystem 的设备。


🔸 应用规则与限制条件

在以下情况下,可以省略此 MultiRecord 和 PCIe Port MultiRecord:

  • NVMe 存储设备 FRU 拥有 扩展连接器(Expansion Connectors)
  • NVMe 存储设备包含 多个 NVM Subsystem
  • 如果同时包含这两个 MultiRecord 会使得 VPD 大小 超过 256 字节

若要省略,两个都必须省略,不能只省略一个。


🔸 字段结构(Figure 172)解读

Byte Offset 字段名称 含义
00h RTI (Record Type Identifier) 固定为 0Bh,标识为 NVMe MultiRecord 类型
01h RFMT (Record Format) 格式标志位:
• Bit 7: LREC,是否为最后一个记录项
• Bit 6-0: RVER(版本号),值为 2h
02h RLEN (Record Length) MultiRecord 的长度(不包含前 5 字节)
03h RCSUM (Record Checksum) 从第 5 字节到本记录末尾的和为 0(mod 256)
04h HSUM (Header Checksum) 从 Byte 0 到 Byte 4 的和为 0(mod 256)
05h NMAVN (Area Version Number) NVMe MultiRecord Area 版本,当前版本固定为 0h
06h Form Factor (FF) 指示设备的物理形态(如 U.2、M.2 等),参见 Figure 180
07h–12h Reserved 保留
13h I1P8PSR 初始 1.8V 电压功耗(单位:瓦)
14h M1P8PSR 最大 1.8V 电压功耗(单位:瓦)
15h I3P3PSR 初始 3.3V 电压功耗(单位:瓦)
16h M3P3PSR 最大 3.3V 电压功耗(单位:瓦)
17h Reserved 保留
18h M3P3APSR 最大 3.3V 辅助供电功耗,单位为 10mW
19h I5PSR 初始 5V 电压功耗(单位:瓦)
20h M5PSR 最大 5V 电压功耗(单位:瓦)

🧠 重点理解:功耗字段的意义

这些功耗字段与设备 上电启动阶段的供电需求 有关,通常用于平台判断电源配置是否满足设备运行要求:

  • Initial 字段用于 上电前或上电初始阶段
  • Maximum 字段用于描述设备运行时可能达到的 最大功耗要求
  • M3P3APSR 使用单位为 10mW,以提供更精细的功率控制。

📌 示例:如何使用这些数据

假设设备的 I5PSR 值为 02h(即 2W): - 表示设备在上电前,需要 5V 电压且至少 2W 功率。 - 平台电源管理系统可通过读取这个字段,判断是否要分配插槽。


🧩 配套结构:NVMe PCIe Port MultiRecord & Topology MultiRecord

  • NVMe PCIe Port MultiRecord:提供端口相关 PCIe 层面的配置,例如链路宽度、速度等;
  • Topology MultiRecord:推荐用于新版规范中,提供更灵活的拓扑结构表述,如设备间连接关系、路径等。

总结

NVMe MultiRecord Area 是 VPD 中用于描述单一 NVM Subsystem 存储设备物理形态与功耗的重要结构:

特征 内容
功能 表述设备的形态(如 M.2/U.2)、启动功耗需求
条件 仅适用于单一 NVM Subsystem,避免 VPD > 256B 时可省略
典型应用 插槽电源管理、平台上电判断、制造商信息对齐
与之配合 PCIe Port MultiRecord、Topology MultiRecord

如需我继续解析 NVMe PCIe Port MultiRecordTopology MultiRecord 的结构与内容,我可以继续深入讲解。是否继续?