PCI-e与NVMe的电源管理关系
PCIE电源状态:L0/L1/L1.1/L1.2/L2
Device电源状态:D0/D1/D2/D3 hot/D3 cold
nvme电源状态:PS0~PS4
Device是整个ssd的电源状态,是对于host来说的整体概念。对于host来说,如果要求ssd在active状态,那我们就是pcie会在L0,nvme是在PS0。
PCIe链路的电源状态:
-
L0: 这个状态属于PCIe设备的工作状态;
-
L0s: PCIe设备进入Standby状态;
-
L1: PCIe设备进入比L0s更低功耗的Standby状态;L1状态有两个子状态L1.1和L1.2;
-
L2/L3 Ready: 这两个状态是PCIe设备准备进入L2/L3前的预备状态;
-
L2: 比L1功耗更低的深度省电状态;
-
L3: 此时PCIe链路出于关闭状态,PCIe设备的VCC电源也被移除;
-
LDn: 这个状态不具有实际意义,只是L2/L3返回L0状态时所需要用的中间过渡状态;
NVMe Spec中对动态电源管理的描述图:
1. Host设定性能和功耗: Power Objective和Performance Objective。
2. Host通知Controller更改设备的power state。
NVMe最多支持32个电源状态(PS, Power State)。NVMe设备可支持的Power State数目可以在Identify Controller Data Structure Byte[263]中查看。
每个Power State对应有一个长度为32Bytes的Power State Descriptor, 里面会描述每个Power State对应的最大功耗(MP), 进入延迟,退出延迟等等。比如,下表中,定义了7个power states。
目前,动态电源管理一般只用在消费级SSD上,对笔记本电脑的续航问题有很大的帮助。在企业级SSD中数据的安全性还是第一位的,不大会考虑功耗的问题。NVMe白皮书对消费级NVMe SSD的Power State建议如下:
上表中,PS0是全速状态。PS1、PS2是过热保护时降频需要过渡的状态。PS3、PS4是非操作状态,具有较低的功耗,并且退出延迟很短。
大家知道,目前NVMe SSD都需要PCIe总线的配合,所以,NVMe电源状态也必须与PCIe链路电源状态相互映衬。