NVM子系统与控制器架构 - 第46页
我们继续深入讲解《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 Mask
和Reservation 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 Attachment 和 Namespace 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”?😎