管理命令集 - 我们现在继续深入中文解读 NVMe 2.0b 基础规范第 151 页 的内容,主要聚焦在: (第162页)
我们现在继续深入中文解读 NVMe 2.0b 基础规范第 151 页 的内容,主要聚焦在:
- 异步事件信息(Asynchronous Event Information)的 Notice 类型补充项
- I/O 命令特定状态(I/O Command Specific Status)
- Immediate 类型事件
- 并简要引入 Capacity Management 命令的背景
📌 一、Notice 类型异步事件(Figure 146 补充项)
事件值与描述:
| 值 | 描述 |
|---|---|
| 04h | Predictable Latency Event Aggregate Log 变更:表示一个或多个 NVM Set 的延迟事件已记录进对应日志页(见 §5.16.1.12)。 |
| 05h | LBA 状态信息警报:I/O Command Set 特定定义,具体含义请参考 NVM Command Set 规范。 |
| 06h | Endurance Group Event Aggregate Log Page 变更:表示一个或多个 Endurance Group 的事件条目已添加到相关日志中(见 §5.16.1.10)。 ✔ 清除方法:主机发出 Get Log Page 命令读取该日志页,并设置 Retain AER = 0。 |
| 07h–EEh | 保留 |
| EFh | Zone Descriptor Changed:分区命名空间命令集(ZNS)专用事件,请参考 Zoned Namespace Command Set。 |
| F0h | Discovery Log Page 变更:一个或多个 Discovery 日志页发生了变更,主机需使用 Get Log Page 命令获取更新内容。 |
| F1h–FFh | 保留供未来 NVMe over Fabrics 异步事件使用 |
📌 二、I/O Command Specific Status 类型事件(Figure 147)
该类型的异步事件与特定的 I/O 命令行为有关,以下是当前已定义的事件值:
| 值 | 描述 |
|---|---|
| 00h | Reservation Log Page Available:表示一个或多个 Reservation Notification 日志页已添加(§5.16.1.24)。 |
| 01h | Sanitize 操作完成:擦除操作已完成,且未出现异常释放用户数据。其详细状态存于 Sanitize Status 日志页(§5.16.1.25)。 |
| 02h | Sanitize 操作异常释放完成:虽然请求了 No-Deallocate After Sanitize,但仍发生了用户数据被释放的情况。✔ 主机可通过 Sanitize Status 日志页 获取相关信息。 |
| 03h–FFh | 保留 |
💡 这类事件的典型使用场景包括:多主机协调(Reservation)、数据销毁合规(Sanitize)等场景。
📌 三、Immediate 类型事件(Figure 148)
Immediate(即时)事件只会在事件发生时控制器检测到有挂起的 AER 命令时被报告,不保存、不排队、不生成日志页。
| 值 | 描述 |
|---|---|
| 00h | 正常 NVM 子系统关机(Normal Shutdown):控制器正在进行正常的关机流程,可能是由于: - 向 NSS.NCCR(NVM Subsystem Normal Shutdown Control Register) 写入 "Nrml"(十六进制:4E726D6Ch);- 收到 NVMe-MI Shutdown 命令(详见 NVMe-MI 规范)。 🔍 详见第 §3.6.3 |
| 01h–FFh | 保留 |
📢 即时事件的重要特征:
- 必须有挂起的异步事件请求命令;
- 无法通过读取日志页获取;
- 通常用于“状态信号”类事件,例如关机提示。
📌 四、容量管理命令简介(引入 §5.3)
容量管理命令(Capacity Management Command) 是用于配置 Endurance Group 和 NVM Set 的关键机制,其两种模式如下:
- 固定容量管理(Fixed Capacity Management):从控制器支持的固定配置中选择;
- 可变容量管理(Variable Capacity Management):主机指定要创建的容量参数。
该命令结构与操作定义见后续 Figure 149(§8.3.2 和 §8.3.3)。
👉 该命令常用于对存储设备做细粒度配置,例如控制特定用户的耐久组、容量分配、优化写入寿命等。
🧠 学习总结与结构梳理
| 类型 | 值范围 | 事件内容 | 日志页 | 清除方法 |
|---|---|---|---|---|
| Notice | 00h–F0h | 命名空间、固件、遥测、ANA、ZNS、发现日志 | 有 | 通过 Get Log Page,Retain AER = 0 |
| I/O Command Specific | 00h–02h | Reservation、Sanitize | 有 | 通过相关日志页 |
| Immediate | 00h | 正常关机提示 | 无 | 不可保存,仅在 AER 挂起时上报 |
| Reserved | 其余 | 保留用于将来扩展 | - | - |
如果你对其中某一个具体日志页结构、Sanitize 状态字节、AER 配置机制(Set Features)、或 NVMe-MI 的关机事件配合机制感兴趣,我可以继续带你深入挖掘。需要我解析哪个部分?