PCIe总线的电源管理包括两方面的内容:
一是基于软件控制的PCI-PM电源管理机制,这部分与PCI总线兼容;
二是基于硬件控制的ASPM电源管理机制, 不需要Host端软件口控制,PCIe链路自主管理。
注: ASPM= Active State Power Management.
在本文中,我们就针对这两种电源管理机制展开介绍。
1. PCI-PM电源管理
PCI-PM电源管理机制是系统软件通过修改寄存器中的电源管理字段,使PCIe设备进入D状态。D状态总共有四种:D0,D1,D2,D3.
D0: 这个状态属于"全马力"工作状态,不考虑任何电源节省的因素。D0又有两个子状态: D0-Uninitialized和D0 Active.
a, D0-Unintialized: 这时PCIe还没有被激活,只能接受Configure Write/Read TLP请求,仍不能正常工作。比如设备刚被Reset后进入D0-Unintialized。
b, D0 Active: PCIe设备已经被成功激活,可以正常工作。
D1: PCIe设备进入"浅睡眠"状态;
D2: PCIe设备进入"深度睡眠"状态;
D3: 这个状态是电源管理中最低功耗的状态。有两个子状态: D3-hot和D3-cold。
a, D3-hot: 此时与D1/D2的功能类似,但是D3-hot只能返回到D0-Unitialized。
b, D3-cold: 当PCIe设备的VCC电源被移除时,PCIe设备进入此状态。
值得注意的是,PCIe设备必须支持D0和D3,但是D1/D2是选择性的。所以在目前市面的SSD PCIe主控,一般都只是支持D0/D3,并不支持D1/D2。当PCIe设备处于D0状态时,ASPM可以改变PCIe链路的电源状态。
介绍ASPM之前,我们先认识一下PCIe定义的有关PCIe链路的电源状态:
L0: 这个状态属于PCIe设