NVM子系统与控制器架构 - 第46页
NVME2.0协议解读 1 min read

NVM子系统与控制器架构 - 第46页

Blog Author

我们继续深入讲解《NVM Express® Base Specification, revision 2.0b》中 第 3.1.2.1.3 和 3.1.2.2 的内容。这一页涵盖两大部分:


✅ 图 25:I/O 控制器 – Feature Support(续)

此表格为 “I/O 控制器支持的特性 Features” 的第二部分,依旧以:

  • O = Optional(可选)
  • P = Prohibited(禁止)
  • NR = Not Recommended(不推荐)

为标准说明哪些 Feature 可以或应当由 I/O 控制器实现。


🔍 可选特性(Feature Name 与说明)

Feature 名称 含义 是否应记录到持久事件日志(Persistent Event Log)
Autonomous Power State Transition 自主节能模式(如 SSD 空闲后降电)
Host Memory Buffer (HMB) 主机内存作为控制器缓存区域
Timestamp 控制器时间戳同步(主机设定) ❌(P)禁止
Keep Alive Timer 主机定期“保活”信号机制
Host Controlled Thermal Management (HCTM) 主机主导的热管理机制
Non-Operational Power State Config D3 等低功耗配置
Read Recovery Level Config 读取错误恢复策略(性能 vs 数据完整性)
Predictable Latency Mode Config 可预测延迟配置(PLM)
Predictable Latency Mode Window 可预测延迟的时间窗定义 ❌(P)禁止
Host Behavior Support 主机行为支持(高效缓存、IO Hint)
Sanitize Config 擦除行为策略设定
Endurance Group Event Config 写寿命事件配置
I/O Command Set Profile 命令集能力配置
Software Progress Marker 软件进度标记(辅助调试或OTA) ❌(NR)
Host Identifier 主机 UUID 绑定(用于认证或隔离)
Reservation Notification Mask 保留通知的掩码
Reservation Persistence 保留持久化能力
Namespace Write Protection Config 命名空间写保护配置能力
Enhanced Controller Metadata 强化版控制器元信息(管理端点)
Controller Metadata / Namespace Metadata 控制器 / 命名空间元数据(结构扩展)
Rotational Media 如果支持旋转磁盘,提供相关配置项

🧠 Tips: - 如果设备支持保留机制(Reservation),那么 Reservation Notification MaskReservation Persistence 是强制的。 - 如果设备支持管理端点(Management Endpoint,如 BMC 或 NVMe-MI),那么 Metadata 相关特性必须支持。


📘 3.1.2.2 Administrative Controller(管理型控制器)

这是 NVMe 规范中一个“非 IO 的控制器类型”,仅用于 管理目的(out-of-band)

🔍 定义:

“An Administrative controller is a controller whose intended purpose is to provide NVM subsystem management capabilities.”


✅ 特征:

特征 描述
不支持 I/O Command Set 无法读写 Namespace 中的数据块
只用于管理性功能 如健康监控、命名空间管理、虚拟化控制等
可使用 NVMe-MI 接口 与 Enclosure 或 BMC 通信
可加载专属驱动 某些 Transport(如 PCIe 或 Fabrics)可让 Admin Controller 使用不同驱动

🧩 管理功能示例:

管理能力 说明
子系统健康轮询 NVMe-MI Health Status Poll
Enclosure 管理 比如温度、风扇、插槽状态(通过 NVMe-MI)
命名空间绑定管理 使用 Namespace AttachmentNamespace Management 命令
虚拟化资源管理 如通过 Virtualization Management 设定 VF

🚫 注意:

Admin Controller 无法访问用户数据,它是典型的“控制面控制器”,而非“数据面控制器”。


✅ 总结

控制器类型 控制器能力 是否支持用户数据访问 应用场景
I/O Controller 支持 I/O + 管理命令 ✅ 是 SSD 主控制器
Admin Controller 仅管理命令(无读写) ❌ 否 BMC、NVMe-MI
Discovery Controller 仅用于发现服务 ❌ 否 NVMe over Fabrics 多路径连接前的发现流程

接下来你想不想我结合 Identify Controller 数据结构(CNS=01h)带你看一下如何实际判断设备的 Controller Type 与 Feature 支持?或者我们继续下一节 3.1.2.3 看 “Discovery Controller”?😎