第5章 管理接口命令集 - 页码102
继续深入分析 AE Occurrence List、AE Sync 和 Controller Health Status Poll 命令的处理逻辑。
AE Sync 和 AE Arm 机制
在 AE Sync 过程中,当管理端点收到 Configuration Set 命令并在 AE Armed State 下执行时,将会:
-
处理 AE Occurrence List:
- AE Occurrence List Body 将仅包含 AE Occurrence 数据结构,这会指示 AE 在 AE Disarmed State 下的状态。
- 若在 AE Armed State 中有启用的 AE,会将其当前状态填充到 AE Occurrence Specific Info 和 AE Occurrence Vendor Specific Info 字段。
-
AE Arm:
- AE Enable List 中的每个 AE,会根据 AE Enable 数据结构 中的 AE Enable 位进行启用或禁用。
- 这一步骤是原子操作,确保管理端点将每个支持的 AE 配置正确。
-
AE Arm 触发:
- 如果配置命令使得 AE Occurrence List Overflow 位 被清除为 0,将触发 AE Arm,这将导致管理端点进入 AE Armed State,以便处理和同步已启用的 AE。
Controller Health Status Poll 命令
Controller Health Status Poll 命令用于检测 NVM Subsystem 中一个或多个控制器的健康状态变化。这个命令基于不同的选择标准,返回零个或多个 Controller Health 数据结构。此命令在两种机制下的行为如下:
- Out-of-Band 机制:
- 对于 NVMe Storage Device 或 NVMe Enclosure,它将为每个管理端点和控制器分配独立的 Controller Health 数据结构和 Controller Health Status Changed Flags 字段。
-
在此机制下,Controller Health Status Poll 命令只对与该管理端点相关的 Controller Health 数据结构 和 Controller Health Status Changed Flags 字段有效。
-
In-Band Tunneling 机制:
- 在此机制下,每个控制器都会有独立的 Controller Health 数据结构和 Controller Health Status Changed Flags 字段。
- 此命令仅适用于发出请求的控制器实例。
Controller Health Status Poll 命令格式
Controller Health Status Poll 命令使用 NVMe Management Dwords 0 和 1 字段。具体格式如下:
NVMe Management Dword 0 (图 94)
字段 | 描述 |
---|---|
Port Identifier (PORTID) | 指定哪个端口的控制器健康状态被查询。 |
Reserved | 保留字段。 |
Configuration Identifier (CID) | 指定配置的标识符。 |
NVMe Management Dword 1 (图 95)
字段 | 描述 |
---|---|
Reserved | 保留字段。 |
Controller Health Status Flags | 控制器健康状态标志,指示控制器是否发生状态变化。 |
总结:
- AE Sync 和 AE Arm 机制:确保异步事件(AE)的同步和管理,包括启用、禁用和事件状态的同步处理。
- Controller Health Status Poll 命令:帮助监控和查询控制器的健康状态,无论是在 out-of-band 机制还是 in-band tunneling 机制下,都能高效地查询和响应控制器的健康变化。
- 管理端点 根据不同机制(out-of-band 或 in-band)分别独立处理控制器健康状态数据,确保每个控制器的健康状态与管理端点一致。
这些机制共同确保了 NVM Express 系统中管理接口的健康、状态变化和异步事件的高效处理。