引言
现今对电子系统设备性能的要求越来越高,在权衡电子系统的性能和功耗时,电子系统的性能往往得到更多的重视。容量有限的电池是便携设备的惟一能量来源,而电池容量的提高速度明显赶不上中央处理器性能的提高速度,因此,如何利用有限的电能为便携设备提供最高性能,是便携设备中电源管理的主要目标。除此之外,电源管理还要兼顾稳定性和散热性。电源管理模块是在可编程电源管理的设备上,为电源管理提供实现各种功耗模式的应用编程接口的软件模块。
功率消耗有两种方式: 静态功耗和动态功耗。静态功耗主要为晶体管泄漏(leakage)功率;动态功耗则来源于电路有效性激活,例如地址线或者数据线输入时引起的寄存器线路的有效性激活。开关电容所消耗的功率是动态功率消耗的最主要组成部分,即在电路输出时开关电容进行充放电过程所消耗的功率: (图片) 由式(1)可知Pdynamic依赖以下4个参数: C(电容量)、V(电压)、f(信号频率)和a(可变因数)。其中,a与芯片中出现0-1转换的次数有关。降低动态功耗的方法相应地分为4类:
① 降低电容量或者电路的储电量。
② 降低开关的活跃性。由于计算机芯片被越来越复杂的功能性所包装,使得芯片的开关活跃性增强,因而降低开关活跃性对降低系统动态功耗起到的作用越来越大。时钟门控(time gating)技术是当前流行的降低开关活跃性的技术,这种技术使得时钟信号不通过闲置应用单元。因为时钟网络是芯片功率消耗的主要部分,这种技术恰恰可以在处理器中有效地降低功率和电量消耗。
③ 降低信号频率。
④ 降低电压。
后两种方法是以降低系统性能为代价的,但同时也是降低系统功耗的主要手段。系统电源管理就是通过认识系统任务(task)和状态(status),利用合理的电源管理策略,权衡提高系统性能和降低系统功耗之间的关系,在功耗最低的情况下,为系统应用提供最优性能。本文从任务信息和系统状态两个角度对降低系统功耗的管理进行探讨研究,并提出一种基于最高决策的系统级电源管理模块构架。
1 功耗管理技术分析
1.1 系统状态、任务和电源管理策略信息
电源管理的前提是对系统设备状态及任务信息的准确检测和管理,以及对电源管理策略进行准确的效率统计。
系统状态包括Running(工作)状态、Idle(空闲)状态和Sleep(休眠)状态。有的系统可以提供多模式的工作状态,区别主要在于处理器工作频率、工作电压和设备组合的不同。任务的实时指标包括响应时间(response time)、延时(latency)和任务截止期(deadline)。硬实时任务对这些指标有硬性的要求,当系统不能达到该指标时,提供的数据或服务就会完全失效,甚至造成灾难性的后果;软实时任务则对其只有软性要求,达不到指标的后果只是无法提供要求的服务质量。任务的信息除了实时指标以外,还有执行任务所使用的设备部件。如果是多工作模式系统,则还要包括执行该任务的最低工作模式。许多操作系统和处理器都能够提供很好的检测模块和功能单元。例如,Linux的timer函数可以提供系统状态监测计时, Intel XScale处理器的PMU(Performance Monitoring Unit)单元,可以用来监视XScale平台的工作情况。对系统状态和任务信息的检测和管理是管理模块中的重要部分之一。
电源管理策略信息包括核心算法和工作效率。衡量电源管理策略的效率可以通过计算“竞争比”(competitive ratio)和“错误率”等来判断。D. Ramanathan[2]在利用竞争分析方法分析电源管理策略中使用了“竞争比”这个衡量指标。竞争分析方法的前提: 假设所研究的问题有一个竞争对手,而且这个对手对该问题的输入能够产生影响。竞争比的定义是在线(online)策略所消耗的资源与完成任务可能消耗的最少资源之间的比值。这里,在线策略是针对负载未知的系统的电源管理策略。因为在实际系统中,系统下一个任务请求的到达时间是不可能完全正确预知的,而可能消耗的最少资源就是在电源管理策略能完全正确预知下一个任务请求到达时间的前提下所消耗的资源。这里的资源可以简单地用功耗代替,也可以结合系统执行任务的延时,即系统性能。预测错误率是针对预测策略的效率指标,它等于预测错误次数与总预测次数之间的比值,并可利用布尔数来判断预测错误率的评估函数。
1.2 Running状态下的电源管理方法
当系统处于Running状态时,电源管理模块根据任务信息,在完成任务的前提下,通过转换系统设备的状态或者工作模式来达到降低功耗的目的。例如: 任务按照运算密集型和存取密集型分类,在执行运算密集型的任务时,可以在保证任务完成的实时需求的前提下通过降低总线频率来降低系统功耗;在执行存取密集型的任务时,可以通过降低处理器的工作频率来降低功耗。
当系统执行多工作量的任务或者同时执行多任务时,有效的电源管理策略是任务调度和任务截止期(deadline)相结合的电源管理策略。这种电源管理策略的基本思想是: 将任务按使用设备和任务集合分组,罗列所有调度可能,排除约束条件(在截止期内完成)以外的调度,在任务截止期内尽量使同组任务集中执行,从而使系统空闲时间尽可能集中,以实现动态电源管理。应用于该策略的任务调度流程如图1所示。(图片) 基于任务调度和任务截止期的电源管理策略的调度任务原则是:
① 调度能耗越低,则优先级越高;同组的任务按截止期排序;每组第一个任务的截止期越早,则该组调度的优先级越高;每组最后一个任务的截止期越早,则该组调度的优先级越高。
② 对于调度能耗与截止期完全相同的调度,先到达者具有更高的优先级。
③ 当有外部任务请求使用休眠的设备时,电源管理模块重新安排任务的优先级。
设连续函数P(s),如果系统设备运行在速度s下,则其消耗的功率为P。根据基于CMOS工艺的设备的立方根(cuberoot)原理,则有:(图片) 为了便于分析,将功耗与系统设备运行速度的关系表示为下式:(图片) 这是一个严格的凸函数,它传达的信息是,任务进行得越慢,越节省功耗。这是基于任务截止期约束任务完成的电源管理策略的基本出发点。当前有不少基于任务截止期约束任务完成的电源管理策略,例如简单化的在线策略AVR[3](Average Rate)、OA(Optimal Available)和BKP策略[4]等就是这类策略的典型。其中: AVR策略假设系统中只有一个任务在执行;OA策略假设不会再有新任务进入安排;而BKP策略则在c比较大时才能够很好地降低功耗。
1.3 Idle状态下的电源管理方法
系统设备完成任务后,将处于Idle状态的系统设备进行状态转换是该状态下电源管理的主要方法。主流策略有Timeout策略、基于预测的管理策略和基于随机的管理策略。其中,Timeout策略最简单易行。该策略流程如图2所示。(图片)
图2 Timeout策略流程(图片) 式中: Etran是已知的系统从Idle状态到Sleep状态再到唤醒,共两次状态转换所消耗的总能量;PI是系统处于Idle状态所消耗的功率。
图3为Timeout策略中两种性能的损耗情况。图中,E为Running(工作)状态时间,I为Idle状态时间,F为时间阈值,D为状态转换时间,S为休眠状态时间,W为系统设备唤醒时间。该策略简单,但缺点也很明显。如图3所示,当I>F+D时,等待时间阈值的设定容易损失更多的降功机会,同时因为系统状态唤醒转换的耗时耗能,必然引起任务等待延时;甚至当F+D>I>F时,延时会大于唤醒耗时,这将造成很大的性能损失;同时任务执行时间的延时,还会直接导致下一个Idle状态持续时间的缩短。这样基于对任务完成后Idle状态时间和下一个任务来临时间的预测的电源管理策略就显得很有效率。(图片)
图3 Timeout策略中两种性能的损耗情况基于预测的电源管理策略是根据系统信息(包括历史信息和用户习惯等),对系统将要处于Idle状态的持续时间Tpred进行预测。比较Tpred和Tth,当Tpred≥Tth时在任务完成后立即将系统转换到休眠状态;否则,继续维持系统Idle状态。预测时刻和Idle状态中的预测间隔由具体策略决定。
基于预测的电源管理策略的核心是,使用何种算法来利用系统反馈信息去更新算法的预测根据。要做出符合系统设备用户使用习惯和任务请求的准确预测,就需要对用户习惯的认识程度不断加深,并对系统任务信息和策略历史信息有较全面的统计。自适应学习树ALT(Adaptive Learning Tree)策略、PBALT(ProbabilityBased ALT)策略,以及基于AR(AutoRegressive)模型的预测控制反馈PCF(Predictive Control Feedback)预测策略等都是优化过的预测策略。PBALT策略利用概率反映准确率,加强了分树之间的关联性和ALT方法的学习能力;但这种策略的边界条件限制制约了它的应用范围。PCF预测策略的自适应性是通过其反馈模块来控制的;但预测策略本身在针对非平稳状态的任务请求时效率不稳定,同时,预测策略基本只考虑系统有一个工作模式,这些都限制了它的应用。
基于随机的电源管理策略是一种具有不确定性的优化策略,这种不确定性源于系统模型的抽象性。基于随机的电源管理策略不仅指定何时进行状态转换,而且还指定转换到哪一工作模式,因此适用于多工作模式的系统设备。它将动态电源管理看作是随机最优化问题,而不像基于预测的电源管理策略那样通过预测的方法消除任务请求的不确定性。基于CTMDP(连续时间马尔可夫决定过程)的随机决定动态电源管理策略给出了系统电源管理的一个最优化的决定,但这种最优化是在一个具有不确定性的模型基础上的,即这种算法所得到的最优化的决策只能得到系统的性能和功耗的一个预期值,并不能保证在特定的系统设备中适用,而且马尔可夫过程数学模型的建立也是需要仔细分析的。
2 基于最高决策的电源管理策略
由以上对系统电源管理策略的分析可知,系统设备的电源管理贯穿系统设备的各个状态,因此应提出一种电源管理方法,将多种电源管理策略结合起来对系统功耗进行协同管理。该电源管理构架中有一个策略集合,每个策略都有自己的优先级,按需求使用各个策略来进行多策略电源管理。但这种构架也存在问题: 首先复杂系统的任务很可能多种多样,而且电源管理策略针对不同的任务其降功效率也不同,仅用电源管理策略的优先级来决定使用电源管理策略,缺乏针对性;此外各策略信息应该在执行系统任务的过程中得到统计,并自适应地改变其优先级。
这里提出一个基于最高决策管理模块的电源管理构架。这种系统设备电源管理构架包括了最高决策模块、任务信息统计模块、策略集合模块、信息检测模块和控制模块5个主要部分,如图4所示。(图片)
图4 基于最高决策的降功管理模块构架信息检测模块: 用于检测系统状态信息和新到的任务信息。
任务信息统计模块: 用于统计系统设备所执行的任务信息,并解释成准确的任务信息参数。
策略集合模块: 通过对系统状态和任务信息等进行动态的统计,计算电源管理策略的效率,更新电源管理策略信息并解释成准确的电源管理策略参数。
最高决策模块: 根据接收的任务和系统状态信息,在策略集合中选择最优的电源管理策略或者电源管理策略组,通过控制模块对系统设备进行电源管理。
任务信息是实时接收的;系统状态信息是在每次系统状态改变时,由信息检测模块提供给最高决策模块的;电源管理策略的信息指计算后的电源管理效率,以及电源管理策略适用的系统状态和任务。例如,当新任务到达后,必然有一种预测策略对此任务完成后的Idle状态持续时间的预测效率最高。电源管理策略控制期间,每一次决策的成功或失败都会改变该电源管理策略的优先加权参数。这样最高决策模块根据系统状态和任务信息,决定采用最优的电源管理策略或者电源管理策略组,使系统设备的各个部分得到最优的电源管理。
3 小结
当今便携设备中电源管理的核心是电源管理策略,本文中提出的基于最高决策的电源管理构架的关键是预先选定电源管理策略集合。关于电源管理策略,有两方面问题需要继续探讨和研究: 第一,权衡系统设备工作性能和功耗。电源管理策略进行系统功耗管理过程中,虽然电源管理策略尽量避免延时,但是这种延时又不可避免。系统使用者对于性能和功耗的权衡直接影响电源管理策略的选择,以及电源管理策略中具体参数的预设。第二,权衡电源管理效果和复杂度。策略集合和任务信息集合的尺寸越大,统计信息越完备,电源管理策略的决策就越准确,但同时电源管理模块的复杂度也增加了,这直接关系到其工程实现的复杂程度。另外,建立电源管理策略标准,提供电源管理策略包和任务信息包,规范系统状态和任务信息,也将有利于便携设备电源管理技术的发展。
参考文献
[1] 刘向文. 基于调度能耗任务截止期的动态电源管理技术. 机电工程技术,2005,34(7):7981.
[2] Ramanathan D, Irani S, Gupta R. An Analysis of System Level Power Management Algorithms and Their Effects on Latency. IEEE Transactions on Computer Aided Design, 2002,21(3): 291305.
[3] Yao F, Demers A, shenker S. A Scheduling Model for Reduced CPU Energy. In IEEE Syposium on Foundations of Computer Science, 1995: 374382.
[4] Bansal N, Kimbrel T, Pruhs K. Dynamic Speed Scaling to Manage Energy and Temperature. In IEEE Syposium on Foundations of Computer Science, 2004:520529.
[5] 卜爱国. PBALT动态电源管理策略. 电路与系统学报,2003,10(4):5660.
[6] 卜爱国. 基于AR模型的PCF动态电源管理预测策略. 应用科学学报,2005,23(5),483488.
1/31/2007
|