The Power State Coordination Interface (PSCI) provides an OS agnostic method for implementing power management use cases where cores can be powered up or down. This includes:
- Core idle management.
- Dynamic addition and removal of cores (hotplug), and secondary core boot.
- big.LITTLE migration.
- System shutdown and reset.
The messages sent using this interface are received by all relevant levels of execution. That is, if EL2 and EL3 are implemented, a message sent by a Rich OS executing in a guest must be received by a hypervisor. If the hypervisor sends it, the message must be received by the secure firmware that then coordinates with a Trusted OS. This allows each operating system to determine whether context saving is required.
For more information, see the Power State Coordination Interface (PSCI) specification.这部分文档以后看了在分享给同事和大家。
在ARM中,抽象出来了一个电源管理的通用接口,叫做PSCI,用来管里上面四种电源管理cases,不包括DVFS。
我们知道在ARM的多核系统中,存在不同的电源域(power domain)为系统的不同组件提供电源支撑。比如系统级别的电源状态的转换必然依赖于其他power domain进入相应的power level,system才能进入对应的power level,比如下面的示例:
- 系统存在两个cluster,每个cluster存在两个CPU core
- 每个CPU core存在三种省电状态
- 只有所有的core进入standby(retention),cluster1/0才能进入retention state,system才能进入retention state
- 只有所有的core进入power down state,cluster0/1才能进入power down state,system也才能进入power down
- 每一高power domain进入的power level依赖于挂在其下面的subpower domain进入相应的power state
简单的示意图如下:
讲究的就是一种裁决方式。