错误处理 - 🔋 第 8.15 节 电源管理 Power Management(续) (第401页)
我们继续对 NVMe Base Specification 2.0b 第 8.15 节 Power Management(电源管理) 进行中文深入解析,并结合 图 452、图 453、功耗描述符表结构,讲清楚 NVMe 如何支持静态与动态电源状态切换与能耗调控。
🔋 第 8.15 节 电源管理 Power Management(续)
📊 图 452:动态电源管理示意(Dynamic Power Management)
虽然标准文中并未给出图 452 的图像,但它的内容旨在展示如下 电源状态动态切换模型:
- 主机通过
Set Features命令选择目标电源状态(Power State); - 控制器会根据主机请求,尝试进入该状态;
- 电源状态具有等级编号:Power State ID 从 0 开始,数值越大,表示功耗越低,性能越弱;
- 控制器可选择在后台使用自主管理方式降低功耗;
- 电源状态切换是延迟敏感的 —— 有 进入延迟(Entry Latency) 与 退出延迟(Exit Latency);
📋 电源状态控制器支持能力:NPSS 字段
- 字段 NPSS (Number of Power States Supported) 定义在 Identify Controller 数据结构中(图 276);
- 控制器必须至少支持一个电源状态(即 Power State 0);
- 最多支持 32 个电源状态(ID = 0 ~ 31);
- 编号必须连续,并且保证:
- 电源状态 n 的最大功耗 ≤ n−1 的最大功耗;
- Power State 0 表示系统运行下能达到的最大功耗(性能最高);
📈 图 453:Power State Descriptor 示例
此表用于说明电源状态的关键参数,表格简化为如下形式:
| Power State | MP (最大功耗) | ENLAT (进入延迟) | EXLAT (退出延迟) | RRT | RRL | RWT | RWL |
|---|---|---|---|---|---|---|---|
| 0 | 25 W | 5 µs | 5 µs | 0 | 0 | 0 | 0 |
| 1 | 18 W | 5 µs | 7 µs | 0 | 0 | 1 | 0 |
| 2 | 18 W | 5 µs | 8 µs | 1 | 0 | 0 | 0 |
| 3 | 15 W | 20 µs | 15 µs | 2 | 0 | 2 | 0 |
| 4 | 10 W | 20 µs | 30 µs | 1 | 1 | 3 | 0 |
| 5 | 8 W | 50 µs | 50 µs | 2 | 2 | 4 | 0 |
| 6 | 5 W | 20 µs | 5,000 µs | 4 | 3 | 5 | 1 |
字段释义:
| 字段 | 含义 |
|---|---|
| MP (Maximum Power) | 最大功耗,单位非规定(一般为 mW 或 W) |
| ENLAT | 从当前状态切换至该状态的延迟时间(Entry Latency) |
| EXLAT | 从该状态切换到其他状态的延迟时间(Exit Latency) |
| RRT / RRL | 相对读取吞吐量 / 延迟(0 代表最佳) |
| RWT / RWL | 相对写入吞吐量 / 延迟(值越大表示性能越差) |
🧠 注:虽然 RRT/RRL/RWT/RWL 是相对数值,但值为 0 表示当前状态性能最佳。
💤 空闲功耗(Idle Power, IDLP)
- 表示在 电源状态保持空闲(无命令/后台任务)时,30 秒内的平均功耗;
- 测量方法:
- 控制器空闲 10 秒后;
- 在接下来的 30 秒中测量平均功耗;
- 这个字段反映了设备处于空闲状态时的节能能力。
⚡ 活跃功耗(Active Power, ACTP)
- 表示该状态下在工作负载运行时的最大平均功耗(10 秒窗口);
- 测量方式:
- 从第一个命令提交开始;
- 到最后一个命令完成为止;
- 在该期间选取 10 秒窗口,报告最大平均值;
- 若负载小于 10 秒,则取实际负载时长的平均功耗;
- 对于非运行状态(non-operational),这些字段(ACTP、ACTP Scale 等)应全部为 0h;
⚙️ 电源状态控制与应用
- 主机通过
Set Features – Power Management命令设置PS字段,指定当前使用的电源状态; - 控制器应依据请求切换电源状态,但切换涉及 ENLAT/EXLAT 延迟;
- 控制器也可以在后台基于自身管理策略在不同功耗状态间切换(如温度上升自动降频);
- 电源状态切换属于性能与功耗之间的权衡策略。
✅ 本节重点总结
| 关键点 | 说明 |
|---|---|
| Power State 数量 | 由 NPSS 定义,最大支持 32 个,Power State 0 表示最大性能、最大功耗 |
| 功耗结构表 | 每个状态有 MP、ENLAT、EXLAT、读写性能指标 |
| Idle Power | 空闲 10 秒后测量 30 秒内的功耗 |
| Active Power | 执行负载时,取最大 10 秒平均功耗 |
| 状态切换 | Set Features 命令控制电源状态,注意延迟 |
| 动态管理 | 主机可动态切换状态,也可由控制器后台策略自动切换 |
如果你希望我继续讲解 8.15.1:非运行电源状态 Non-Operational Power States 或深入剖析 Identify Controller 中的 Power State Descriptor 结构字段,我可以无缝衔接。你想继续深入哪一部分?