NVM子系统架构 - 📌 管理控制器命令支持情况 (第48页)
在《NVM Express® Base Specification, Revision 2.0b》的第 3.1.2.2.1 节中,定义了Administrative Controller(管理控制器)所支持的命令类型,以及它们的必需性。由于管理控制器不支持 I/O 队列,因此它只能执行一些特定的管理命令。我们将详细分析以下内容:
📌 管理控制器命令支持情况
1. 管理命令和非支持命令
管理控制器与普通的 I/O 控制器的主要区别在于 不支持任何 I/O 相关的命令。例如,Create I/O Submission Queue
、Delete I/O Submission Queue
等命令被标记为禁止(P),因为这些命令涉及到 I/O 队列的创建和删除,而管理控制器本身没有 I/O 队列。
2. 必需命令和可选命令
管理控制器必须支持一些特定的命令,并且还可以选择性地支持其他命令。下面列出了管理控制器必须支持和可选支持的命令。
命令 | 支持要求 | 参考 |
---|---|---|
Delete I/O Submission Queue | P | 5.7 |
Create I/O Submission Queue | P | 5.5 |
Get Log Page | M | 5.16 |
Identify | M | 5.17 |
Abort | O | 5.1 |
Set Features | O | 5.27 |
Namespace Management | O | 5.23 |
Firmware Commit | O | 5.12 |
Device Self-test | O | 5.9 |
Virtualization Management | O | 5.28 |
NVMe-MI Send | O | 5.21 |
NVMe-MI Receive | O | 5.20 |
- M (Mandatory):这些命令是管理控制器必须实现的。
- O (Optional):这些命令是可选的,取决于具体实现。
- P (Prohibited):这些命令是禁止的,管理控制器不能支持。
📌 管理命令示例分析
1. Get Log Page
- 命令说明:该命令用于从控制器获取日志信息,管理控制器需要能够响应这个命令并提供相关的日志数据。
- 支持要求:必须支持(Mandatory),通常用来监控控制器的健康状况、错误信息等。
2. Namespace Management
- 命令说明:该命令用于管理命名空间,管理控制器通常用来执行命名空间的创建、删除等管理任务。管理控制器负责维护存储区域的组织,但并不直接处理数据读写。
3. NVMe-MI Send/Receive
- 命令说明:这些命令属于 NVMe 管理接口(NVMe-MI)的一部分,管理控制器支持这些命令来与其他管理设备或系统进行交互。
- 支持要求:可选支持(Optional),但如果管理控制器实现了 NVMe-MI,则它需要支持这两个命令。
📌 管理控制器不支持的命令
- I/O 命令:管理控制器不支持
Create I/O Submission Queue
、Delete I/O Submission Queue
等所有与 I/O 操作相关的命令,因为这些命令涉及到直接的数据存取。 - 命名空间操作:虽然管理控制器支持命名空间的管理(如
Namespace Management
),但它不提供对命名空间内数据的直接访问。
🧠 总结
管理控制器主要用于子系统的管理任务,而非数据处理。它必须支持一些基本的管理命令,如获取日志页、管理命名空间和虚拟化命令等。它不涉及数据传输和命名空间的直接读写。这使得管理控制器与 I/O 控制器区别明显,后者更侧重于数据操作和命名空间内数据的访问。