例如,当设备的用户界面被激活——用户接触触摸屏——设备就处于活动状态并保持在全功耗模式。如果触摸屏不活动,随着定时器计时结束,电源域的状态机将转换到低功耗状态。第一次超时事件可能会将背光降至50%亮度。第二次超时事件可以将其完全关闭。
主动电源管理
主动电源管理采用的理念就是系统可以预测将来的资源使用,但这实际上是不可能的。对于系统而言,能够做到的是分析每个任务,并引入复杂的调度技术,以便预测当系统在工作时任务需要什么,并相应地调节电压和频率。通过分析数据,根据实际功率使用状况以及系统正在执行的动态测量来进行手动编程,或者通过动态测量该系统正在执行的任务来进行手动编程。
图2 使用DVFS时,频率可快速调节,而电压则以慢得多的固定转换速率变化
监视任务时,可以监视它们访问哪些API,使用哪些设备以及每次准备好接受调度所消耗的时间。接着,这些数据连同最近每项任务执行调度的历史会被搜集并存储起来,以便用于分析完成这项作业需要多少处理资源。
通过使用DVFS,系统开发人员可以节省大量功耗,但这样做是有代价的,因为在低功耗和高功耗状态之间的切换会消耗额外的功率。低频到高频的切换意味着我们需要首先将电压调节至CPU频率可以承受的预定电压水平。降低频率的过程是瞬时的,但是电压的调节过程受限于转换速率,需要一定时间才能达到最佳设置,如图2所示。
考虑到电源管理结构,有时,与其降低DVFS之后再重新调高以满足新任务的需要,还不如让系统保持在高功耗状态。
用于对称多处理(SMP)系统
对称多处理(SMP,Symmetrical Multi-Processing)技术,是指在一台计算机上使用两个或两个以上处理器去进行计算处理。如果有两个内核,两项待运行任务,这两项任务可同时运行。如果DVFS设置为相同频率,每项任务都可以运行在任意内核上。实际上,如果我们在单独调节的每个内核上使用不同的DVFS设置,情况会变得更加复杂。
随着今天SoC中SMP复杂度的增加,遇到支持4个或更多个对称内核的系统并不罕见。这就需要调度多个可能工作在不同频率上的内核,增加了管理每个内核的DVFS方面以及调度每个内核上任务的复杂度。