NVM子系统架构 - Discovery Controller 支持的特性(第3.1.2.3.4节) (第56页)
在《NVM Express® Base Specification, revision 2.0b》中的 Discovery Controller(第3.1.2.3节)部分,进一步定义了其支持的 特性、异步事件配置 和 控制器属性 等内容。这些特性有助于管理和操作 NVM 子系统,但 Discovery 控制器本身不涉及 I/O 操作。以下是对相关内容的详细分析。
Discovery Controller 支持的特性(第3.1.2.3.4节)
Discovery 控制器支持以下特性:
- Logged in Persistent Event Log
-
命令支持要求:禁止(Prohibited)。
Discovery 控制器不支持持久的事件日志记录。 -
Non-Operational Power State Config
-
命令支持要求:禁止(Prohibited)。
不支持非操作电源状态配置。 -
Read Recovery Level Config
-
命令支持要求:禁止(Prohibited)。
不支持读取恢复级别配置。 -
Predictable Latency Mode Config
-
命令支持要求:禁止(Prohibited)。
不支持可预测延迟模式配置。 -
Predictable Latency Mode Window
-
命令支持要求:禁止(Prohibited)。
不支持可预测延迟模式窗口。 -
Host Behavior Support
-
命令支持要求:禁止(Prohibited)。
不支持主机行为配置。 -
Sanitize Config
-
命令支持要求:禁止(Prohibited)。
不支持数据清除配置。 -
Endurance Group Event Configuration
-
命令支持要求:禁止(Prohibited)。
不支持耐用组事件配置。 -
Vendor Specific
-
命令支持要求:可选(Optional)。
对供应商特定的功能进行可选支持。 -
Software Progress Marker
- 命令支持要求:禁止(Prohibited)。
不支持软件进度标记。
- 命令支持要求:禁止(Prohibited)。
-
Host Identifier
- 命令支持要求:禁止(Prohibited)。
不支持主机标识符。
- 命令支持要求:禁止(Prohibited)。
-
Reservation Notification Mask
- 命令支持要求:禁止(Prohibited)。
不支持预定通知掩码。
- 命令支持要求:禁止(Prohibited)。
-
Reservation Persistence
- 命令支持要求:禁止(Prohibited)。
不支持预定持久性。
- 命令支持要求:禁止(Prohibited)。
-
Namespace Write Protection Config
- 命令支持要求:禁止(Prohibited)。
不支持命名空间写保护配置。
- 命令支持要求:禁止(Prohibited)。
-
I/O Command Set Profile
- 命令支持要求:禁止(Prohibited)。
不支持 I/O 命令集配置。
- 命令支持要求:禁止(Prohibited)。
-
Enhanced Controller Metadata
- 命令支持要求:可选(Optional)。
可选支持增强控制器元数据。
- 命令支持要求:可选(Optional)。
Discovery 控制器异步事件信息(第3.1.2.3.4.1节)
Discovery 控制器支持 异步事件通知(Asynchronous Event Notification)。当控制器检测到事件并且主机已请求通知时,Discovery 控制器将发送异步事件,包含以下内容:
- 异步事件类型:设置为
Notice
(即2h
)。 - 日志页面标识符:设置为
Discovery
(即70h
)。 - 异步事件信息:包括有关 Discovery Log Page 更新的具体信息。
Discovery 控制器属性(第3.1.2.3.5节)
控制器属性是与控制器相关的特性或配置项,每个属性都可以是一个 dword 或 qword 属性。属性有 读取、写入 或 读写 的访问权限。主机使用以下方法访问控制器的属性:
- Property Get:读取属性。
- Property Set:写入属性。
Discovery 控制器的初始化过程(第3.1.2.3.1节)
Discovery 控制器的初始化流程大致如下:
- Connect 命令成功完成后,主机执行以下步骤:
- 执行必要的 NVMe 认证(如果需要)。
- 读取 控制器能力属性,了解控制器的能力。
- 配置控制器的 控制器配置属性,并启用命令处理(设置
CC.EN
为1
)。 - 等待控制器表示其已准备好处理命令,直到
CSTS.RDY
设置为1
。 -
通过 Identify 命令,确定控制器的特性。
-
初始化 Discovery 控制器后,主机可读取 Discovery Log Page 来获取 NVM 子系统的信息。
总结
Discovery 控制器主要用于提供对 NVM 子系统的发现功能,允许主机通过异步事件通知获取信息和管理系统。它不处理 I/O 操作和数据访问,仅提供系统健康状况和配置管理等功能。在多路径 I/O 和命名空间共享的系统中,Discovery 控制器也起到了提供连接信息和状态更新的作用。