NVM子系统架构 - Discovery Controller 支持的命令(第3.1.2.3.2节) (第54页)
NVME2.0协议解读 1 min read

NVM子系统架构 - Discovery Controller 支持的命令(第3.1.2.3.2节) (第54页)

Blog Author

在《NVM Express® Base Specification, revision 2.0b》中的 Discovery Controller(第3.1.2.3节),其主要功能是提供与 Discovery Log Page 相关的操作和命令,支持 NVM 子系统的发现,而不涉及 I/O 队列和数据存取。

Discovery Controller 支持的命令(第3.1.2.3.2节)

Discovery 控制器的命令支持集中在以下几个方面:

  1. Get Log Page
  2. 命令支持要求必须支持(Mandatory)。
    该命令用于读取日志页面,尤其是 Discovery Log Page,对于启动和初始化 Discovery 控制器至关重要。

  3. Identify

  4. 命令支持要求必须支持(Mandatory)。
    通过该命令,主机可以查询 Discovery 控制器的详细信息,例如控制器的特性和能力。

  5. Asynchronous Event Request

  6. 命令支持要求可选(Optional)。
    该命令允许主机请求异步事件通知,只有在 Discovery 控制器支持持久连接时,此命令才是必需的。

  7. Connect

  8. 命令支持要求必须支持(Mandatory)。
    该命令用于主机连接到 Discovery 控制器,建立连接后,主机可以获取 Discovery Log Page。

  9. Property Get 和 Property Set

  10. 命令支持要求必须支持(Mandatory)。
    这些命令允许主机获取或设置与 Discovery 控制器相关的属性。

  11. Disconnect

  12. 命令支持要求禁止(Prohibited)。
    Discovery 控制器不支持 Disconnect 命令,因为该控制器不支持 I/O 队列,因此不能执行断开连接操作。

Discovery Controller 支持的日志页面(第3.1.2.3.3节)

Discovery 控制器支持读取 Discovery Log Page。以下是 Discovery 控制器可能支持的日志页面:

  1. Supported Log Pages
  2. 命令支持要求必须支持(Mandatory)。
    Discovery Log Page 本身是 Discovery 控制器的一个核心功能,主机可以通过读取该页面获得可访问的 NVM 子系统的信息。

  3. Error Information

  4. 命令支持要求可选(Optional)。
    包含有关错误信息的日志页面。

  5. SMART / Health Information (Controller scope)

  6. 命令支持要求禁止(Prohibited)。
    由于 Discovery 控制器不直接处理 I/O 操作,因此不支持此类健康信息的日志。

  7. SMART / Health Information (Namespace scope)

  8. 命令支持要求禁止(Prohibited)。
    同样,作为一个只负责发现的控制器,Discovery 控制器不涉及命名空间的健康信息。

  9. Firmware Slot Information

  10. 命令支持要求可选(Optional)。
    此日志页面提供与固件槽相关的信息,但对于 Discovery 控制器来说并非强制要求。

总结

Discovery 控制器主要用于 NVM 子系统的发现功能,它不处理实际的 I/O 操作或数据存取。其支持的命令和日志页面主要与系统的发现和管理相关,且在功能上有所限制。Discovery 控制器不支持 I/O 提交队列I/O 完成队列,并且不允许进行数据传输操作。因此,主机在与 Discovery 控制器交互时,主要关注与 NVM 子系统发现、路径选择和控制器管理相关的操作。