嵌入式便携设备电源管理的分析
1 功耗管理技术分析
1.1 系统状态、任务和电源管理策略信息
电源管理的前提是对系统设备状态及任务信息的准确检测和管理,以及对电源管理策略进行准确的效率统计。
系统状态包括 Running(工作)状态、Idle(空闲)状态和 Sleep(休眠)状态。有的系统可以提供多模式的工作状态,区别主要在于处理器工作频率、工作电压和设备组合的不同。任务的实时指标包括响应时间(response time)、延时(latency)和任务截止期(deadline)。硬实时任务对这些指标有硬性的要求,当系统不能达到该指标时,提供的数据或服务就会完全失效,甚至造成灾难性的后果;软实时任务则对其只有软性要求,达不到指标的后果只是无法提供要求的服务质量。任务的信息除了实时指标以外, 还有执行任务所使用的设备部件。如果是多工作模式系统,则还要包括执行该任务的最低工作模式。许多操作系统和处理器都能够提供很好的检测模块和功能单元。例如,Linux 的 timer 函数可以提供系统状态监测计时, Intel XScale 处理器的 PMU(Performance Monitoring Unit)单元,可以用来监视 XScale 平台的工作情况。对系统状态和任务信息的检测和管理是管理模块中的重要部分之一。 电源管理策略信息包括核心算法和工作效率。 衡量电源管理策略的效率可以通过计算 “竞争比” (competitive ratio) 和 “错误率” 等来判断。
在利用竞争分析方法分析电源管理策略中使用了“竞争比”这个衡量指标。竞争分析方法的前提: 假设所研究的问题有一个竞争对手,而且这个对手对该问题的输入能够产生影响。竞争比的定义是在线(online)策略所消耗的资源与完成任务可能消耗的最少资源之间的比值。这里,在线策略是针对负载未知的系统的电源管理策略。因为在实际系统中,系统下一个任务请求的到达时间是不可能完全正确预知的,而可能消耗的最少资源就是在电源管理策略能完全正确预知下一个任务请求到达时间的前提下所消耗的资源。这里的资源可以简单地用功耗代替,也可以结合系统执行任务的延时,即系统性能。预测错误率是针对预测策略的效率指标,它等于预测错误次数与总预测次数之间的比值,并可利用布尔数来判断预测错误率的评估函数。
1.2 Running 状态下的电源管理方法
当系统处于 Running 状态时,电源管理模块根据任务信息,在完成任务的前提下,通过转换系统设备的状态或者工作模式来达到降低功耗的目的。例如: 任务按照运算密集型和存取密集型分类,在执行运算密集型的任务时,可以在保证任务完成的实时需求的前提下通过降低总线频率来降低系统功耗;在执行存取密集型的任务时,可以通过降低处理器的工作频率来降低功耗。
当系统执行多工作量的任务或者同时执行多任务时, 有效的电源管理策略是任务调度和任务截止期(deadline)相结合的电源管理策略。这种电源管理策略的基本思想是: 将任务按使用设备和任务集合分组,罗列所有调度可能,排除约束条件(在截止期内完成)以外的调度,在任务截止期内尽量使同组任务集中执行,从而使系统空闲时间尽可能集中,以实现动态电源管理。
基于任务调度和任务截止期的电源管理策略的调度任务原则是:
①调度能耗越低,则优先级越高;同组的任务按截止期排序;每组第一个任务的截止期越早,则该组调度的优先级越高; 每组最后一个任务的截止期越早,则该组调度的优先级越高。
②对于调度能耗与截止期完全相同的调度,先到达者具有更高的优先级。
③当有外部任务请求使用休眠的设备时,电源管理模块重新安排任务的优先级。
设连续函数 P(s),如果系统设备运行在速度 s 下,则其消耗的功率为 P。根据基于 CMOS 工艺的设备的立方根(cube root)原理,这是一个严格的凸函数,它传达的信息是,任务进行得越慢,越节省功耗。这是基于任务截止期约束任务完成的电源管理策略的基本出发点。当前有不少基于任务截止期约束任务完成的电源管理策略,例如简单化的在线策略 AVR[3](Average Rate)、OA(Optimal Available)和 BKP 策略[4]等就是这类策略的典型。其中: AVR 策略假设系统中只有一个任务在执行;OA 策略假设不会再有新任务进入安排;而 BKP 策略则在 c 比较大时才能够很好地降低功耗。
1.3 Idle 状态下的电源管理方法
系统设备完成任务后,将处于 Idle 状态的系统设备进行状态转换是该状态下电源管理的主要方法。主流策略有 Timeout 策略、基于预测的管理策略和基于随机的管理策略。
基于预测的电源管理策略是根据系统信息(包括历史信息和用户习惯等),对系统将要处于 Idle 状态的持续时间 Tpred 进行预测。比较 Tpred 和 Tth,当Tpred≥Tth 时在任务完成后立即将系统转换到休眠状态;否则,继续维持系统Idle 状态。预测时刻和 Idle 状态中的预测间隔由具体策略决定。基于预测的电源管理策略的核心是, 使用何种算法来利用系统反馈信息去更新算法的预测根据。要做出符合系统设备用户使用习惯和任务请求的准确预测,就需要对用户习惯的认识程度不断加深,并对系统任务信息和策略历史信息有较全面的统计。自适应学习树 ALT(Adaptive Learning Tree)策略、PBAL(Probability Based ALT)策略,以及基于 AR(Auto Regressive)模型的预测控制反馈 PCF(Predictive Control Feedback)预测策略等都是优化过的预测策略。PBALT 策略利用概率反映准确率,加强了分树之间的关联性和 ALT方法的学习能力;但这种策略的边界条件限制制约了它的应用范围。PCF 预测策略的自适应性是通过其反馈模块来控制的; 但预测策略本身在针对非平稳状态的任务请求时效率不稳定,同时,预测策略基本只考虑系统有一个工作模式,这些都限制了它的应用。
基于随机的电源管理策略是一种具有不确定性的优化策略, 这种不确定性源于系统模型的抽象性。基于随机的电源管理策略不仅指定何时进行状态转换,而且还指定转换到哪一工作模式,因此适用于多工作模式的系统设备。它将动态电源管理看作是随机最优化问题,而不像基于预测的电源管理策略那样通过预测的方法消除任务请求的不确定性。基于 CTMDP(连续时间马尔可夫决定过程)的随机决定动态电源管理策略给出了系统电源管理的一个最优化的决定,但这种最优化是在一个具有不确定性的模型基础上的, 即这种算法所得到的最优化的决策只能得到系统的性能和功耗的一个预期值,并不能保证在特定的系统设备中适用,而且马尔可夫过程数学模型的建立也是需要仔细分析的。
2 基于最高决策的电源管理策略
由以上对系统电源管理策略的分析可知, 系统设备的电源管理贯穿系统设备的各个状态,因此应提出一种电源管理方法,将多种电源管理策略结合起来对系统功耗进行协同管理。该电源管理构架中有一个策略集合,每个策略都有自己的优先级,按需求使用各个策略来进行多策略电源管理。但这种构架也存在问题: 首先复杂系统的任务很可能多种多样, 而且电源管理策略针对不同的任务其降功效率也不同, 仅用电源管理策略的优先级来决定使用电源管理策略,缺乏针对性;此外各策略信息应该在执行系统任务的过程中得到统计, 并自适应地改变其优先级。
信息检测模块: 用于检测系统状态信息和新到的任务信息。 任务信息统计模块: 用于统计系统设备所执行的任务信息,并解释成准确的任务信息参数。
策略集合模块: 通过对系统状态和任务信息等进行动态的统计,计算电源管理策略的效率,更新电源管理策略信息并解释成准确的电源管理策略参数。
最高决策模块: 根据接收的任务和系统状态信息,在策略集合中选择最优的电源管理策略或者电源管理策略组,通过控制模块对系统设备进行电源管理。
任务信息是实时接收的;系统状态信息是在每次系统状态改变时,由信息检测模块提供给最高决策模块的;电源管理策略的信息指计算后的电源管理效率,以及电源管理策略适用的系统状态和任务。例如,当新任务到达后,必然有一种预测策略对此任务完成后的 Idle 状态持续时间的预测效率最高。电源管理策略控制期间,每一次决策的成功或失败都会改变该电源管理策略的优先加权参数。这样最高决策模块根据系统状态和任务信息,决定采用最优的电源管理策略或者电源管理策略组,使系统设备的各个部分得到最优的电源管理。