NVM子系统架构 - Discovery Controller 支持的特性(第3.1.2.3.4节) (第56页)
NVME2.0协议解读 1 min read

NVM子系统架构 - Discovery Controller 支持的特性(第3.1.2.3.4节) (第56页)

Blog Author

在《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 控制器支持以下特性:

  1. Logged in Persistent Event Log
  2. 命令支持要求禁止(Prohibited)。
    Discovery 控制器不支持持久的事件日志记录。

  3. Non-Operational Power State Config

  4. 命令支持要求禁止(Prohibited)。
    不支持非操作电源状态配置。

  5. Read Recovery Level Config

  6. 命令支持要求禁止(Prohibited)。
    不支持读取恢复级别配置。

  7. Predictable Latency Mode Config

  8. 命令支持要求禁止(Prohibited)。
    不支持可预测延迟模式配置。

  9. Predictable Latency Mode Window

  10. 命令支持要求禁止(Prohibited)。
    不支持可预测延迟模式窗口。

  11. Host Behavior Support

  12. 命令支持要求禁止(Prohibited)。
    不支持主机行为配置。

  13. Sanitize Config

  14. 命令支持要求禁止(Prohibited)。
    不支持数据清除配置。

  15. Endurance Group Event Configuration

  16. 命令支持要求禁止(Prohibited)。
    不支持耐用组事件配置。

  17. Vendor Specific

  18. 命令支持要求可选(Optional)。
    对供应商特定的功能进行可选支持。

  19. Software Progress Marker

    • 命令支持要求禁止(Prohibited)。
      不支持软件进度标记。
  20. Host Identifier

    • 命令支持要求禁止(Prohibited)。
      不支持主机标识符。
  21. Reservation Notification Mask

    • 命令支持要求禁止(Prohibited)。
      不支持预定通知掩码。
  22. Reservation Persistence

    • 命令支持要求禁止(Prohibited)。
      不支持预定持久性。
  23. Namespace Write Protection Config

    • 命令支持要求禁止(Prohibited)。
      不支持命名空间写保护配置。
  24. I/O Command Set Profile

    • 命令支持要求禁止(Prohibited)。
      不支持 I/O 命令集配置。
  25. Enhanced Controller Metadata

    • 命令支持要求可选(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节)

控制器属性是与控制器相关的特性或配置项,每个属性都可以是一个 dwordqword 属性。属性有 读取写入读写 的访问权限。主机使用以下方法访问控制器的属性:

  • Property Get:读取属性。
  • Property Set:写入属性。

Discovery 控制器的初始化过程(第3.1.2.3.1节)

Discovery 控制器的初始化流程大致如下:

  1. Connect 命令成功完成后,主机执行以下步骤:
  2. 执行必要的 NVMe 认证(如果需要)。
  3. 读取 控制器能力属性,了解控制器的能力。
  4. 配置控制器的 控制器配置属性,并启用命令处理(设置 CC.EN1)。
  5. 等待控制器表示其已准备好处理命令,直到 CSTS.RDY 设置为 1
  6. 通过 Identify 命令,确定控制器的特性。

  7. 初始化 Discovery 控制器后,主机可读取 Discovery Log Page 来获取 NVM 子系统的信息。

总结

Discovery 控制器主要用于提供对 NVM 子系统的发现功能,允许主机通过异步事件通知获取信息和管理系统。它不处理 I/O 操作和数据访问,仅提供系统健康状况和配置管理等功能。在多路径 I/O 和命名空间共享的系统中,Discovery 控制器也起到了提供连接信息和状态更新的作用。