PCIe总线定义的与功耗管理功能(Power Management,PM)主要有4种:
- Legacy PCI Compatible PM是一种在软硬件和PCI-PM/APCI都兼容的模式,其要求PCIe设备的每个Function都包含PCI Power Management Capability寄存器。软件可以通过配置请求(Configuration Request)的方式来切换PCIe设备的某个Function的PM状态。在PCIe Spec V2.1中,还引入了动态功耗分配(Dynamic Power Allocation,DPA)的功能。
- Native PCIe Extensions,该模式定义了一个基于硬件的,自发的链路功耗状态管理单元(Active State Power Management for the Link,ASPM),以及相关的唤醒机制。PCIe设备之间通过功耗管理事件(Power Management Event,PME)消息(Message Transaction)来进行相互通信,并控制功耗状态的切换,以及计算系统唤醒时间(low‐power‐to‐active‐state latency)。
- Bandwidth Management,在PCIe Spec V2.1中,还引入了带宽管理功能,硬件可以通过LTSSM的跳转来DownSize或DownSpeed,从而节省功耗。
- Event Timing Optimization引入了(Optimized
Buffer Flush and Fill ,OBFF),和(Latency Tolerance Reporting
,LTR),来协调外设和Host之间的响应时序来平衡系统功耗。
ACPI vs PCI PM
ACPI(Advanced Configuration and Power Interface) Spec主要定义的是操作系统层面上的PM,在ACPI指定之前,各个厂商的设备之间的PM兼容性很差,甚至是完全不兼容。而ACPI的出现,统一了操作系统层PM(即OSPM)的规范。换句话说ACPI driver为OS提供了一个与设备无关的功耗控制接口。
OSPM对系统功耗状态定义如下