1 DPM基本原理
DPM应用的基本前提条件是,系统或者系统单元在正常的运行时间段内处于非均匀的工作负载中。而工作负载的非均匀性在嵌入式系统和大多数交互式系统中是非常普遍的现象。
DPM技术的本质就是,根据系统工作负载的变化情况,有选择地将系统资源设置为低功耗模式,从而达到降低系统能耗的目的。系统资源可利用丁作状态抽象图来构建对应的模型,该模型中每个状态都是性能和功耗之间的折衷。例如,一个系统资源可能包含Normal、Sleep两种工作模式。其中S1eep状态具有较低的功耗,但是也要花费一些时间和能耗代价才能返回到Normal状态。状态之间的切换行为由功耗管理单元所发送的命令来控制,其通过对丁作负载的观察来决定何时以及如何进行工作模式的转移。性能限制条件下的功耗最小化(或者功耗限制条件下的性能最大化)策略模型是一个受限的最优化问题。
图1显示了DPM的基本思想。我们可以将工作负载看成是多个任务请求的集合体。例如对硬盘来说,任务请求就是读和写的命令;对网卡来说,任务请求则包含数据包的收发两个部分。当有任务请求(Request)时,设备处于工作(Busy)状态,否则就处于空闲状态(Idle)。从该概念出发,在图1中的T1~T4时间段内,设备处于Idle状态,而在Idle状态下则有可能进入到Sleep低功耗工作模式。该设备在T2点被关闭,并在T4点接收到任务请求而被唤醒;在这一状态转变过程中需要消耗一定的时间,图1中的Tsd和Twu分别代表关闭和唤醒延时。就硬盘或显示器而言,唤醒这些设备需要花费几秒钟的时间,而且唤醒一个处于Sleep工作模式下的设备还需要消耗额外的能量。也就是说,设备工作模式的转变会带来不可避免的额外开销。如果没有这些额外的开销(包括时间和能量),那么DPM本身就没有任何必要了,因为任何设备只要一进入Idle状态就立即将其关闭。因此,一个设备只有在所节省的能量能够抵消这些额外开销时才应该进入Sleep工作模式。决定一个设备是否值得关闭的规则就叫做“策略(policy)”。功耗管理过程中,一般只考虑设备在Idle状态下的功耗,而不考虑处于Busy状态时的功耗。
由于设备在状态转换过程中会产生额外的时间和能量消耗,从而给DPM理论带来了一个平衡时间的概念:TBE,S。TBE,S表示设备在S状态下的省电平衡时间点(break—even time)。在具体讨论之前,首先定义如下变量(假设设备具有Normal、Sleep两种工作模式):
Ton,off:设备从Normal工作模式切换到Sleep工作模式花费的时间;
Toff,on:设备从Sleep工作模式切换到Norreal工作模式花费的时间;
Pon,off:设备从Normal工作模式切换到Sleep工作模式过程中的功耗;
Poff,on:设备从Skep工作模式切换到Normal工作模式过程中的功耗;
Pon:设备在Normal工作模式下的功耗;
Poff:设备在Sleep工作模式下的功耗;
Ttarde-off:设备进入Sleep工作模式后不会带来能量浪费的所需最小时间。
从时域角度看,TBE,S包括两个部分:一是状态转换时间,即Ton,off+Toff,on;二是最小平衡时间Ttrade-off。通过图2能更直观地理解TBE,S。如果设备处于Sleep工作模式下的时间小于某个极限值,则该模式之间的转换除了带来性能的损失外,还会产生能量的额外消耗。图2中隐含了DPM策略的一个前提条件,即
式(1)成立的前提条件是在(Ton,off+Toff,on)时间段内所消耗的能量大于Normal工作模式下的能量消耗;如果该前提条件不成立,就不会存在Ttarde-off,则TBE,S=Ton,off+Toff,on。
假设设备处于Idle状态下的空闲时间为Tidle(Tidle>TBE,S),则进入Sleep工作模式后所能节省的能量,记为 ES(Tidle),可表示成:
其中,F代表Tidle的概率分布,Tavgidle〉TBE,S表示大于TBE.S的空闲时段平均长度。通过式(7)可以看出,功耗节省值Psaved,S与TBE,S一直成反比的关系:当TBE,S=O时,Psaved,s具有最大值;当TBE,S越来越大时,Psaved,S则渐近于O。
2 DPM策略模型
在DPM策略范畴内,系统模型由两个部分组成:一组相互作用的功耗可管理器件(Power Manageable Com—ponent,PMC)和功耗管理(Power Management,PM)。其中,PMC的工作模式由PM来控制。对于PMC,我们并不需要关心其内部实现细节,而是将它们看作黑箱,这样就可以更专注于研究PMC和周围环境的相互关系——即为了实现高效的动态低功耗管理策略,PMC与PM之间需要传递什么类型的信息以及信息量的大小。
2.1 PMC模型
在DPM中,PMC定义为完整系统中的一个原子模块。该定义具有一般性及抽象性,设备可以简单到芯片内部的一个功能模块,或者复杂到一个开发板。PMC的基本特征是具有多个工作模式,而且这些工作模式都对应不同的功耗和性能水平。一般情况下,功耗不可管理器件的性能和功耗存系统设计以及应用过程中都是不变的;相应地,基于PMC就可以在高性能、高功耗的工作模式与低功耗、低性能的工作模式之间进行动态切换。
PMC的另外一个重要特点是,工作模式之间的切换需要付出代价。在大多数情况下,代价指延迟或者性能损失。如果工作模式切换是非瞬态的,而且设备在切换过程中不能提供任何功能,那么无论何时开始一个模式切换都将会带来性能的损失。工作模式之间的切换过程还可能带来功耗代价,其经常出现在切换过程非瞬态的情况下。这里需要强调的足,在设计PMC的过程中不能忽略切换代价。
在大多数应用实例中,可以利用功耗状态机(Power State Machine,PSM)来对PMC建模。其中,“状态”是指各种不同的工作模式。由PMC的特点可知,工作模式之间的切换过程将会产生功耗和延迟代价。一般来说,工作模式的功耗越低,性能将会越低,而且切换延迟也将越长。这个简单的抽象模型适用于多个单芯片设备,例如处理器、存储器,以及硬盘驱动、无线网络接口、显示器等设备。
以Motorola公司的龙珠系列MC68VZ328处理器作为PMC为例,其具有三种工作模式:RUN、DOZE、SLEEP。RUN是正常工作模式,其在正常上电以及复位的情况下进入;在该状态下,所有的功能模块都处于有效状态。DOZE模式使得处理器在不使用的情况下能够通过软件控制来将其停止运行,但仍然会继续监听片上或片外中断源,即在DOZE模式下,当产生某个中断时,CPU能够快速地返回到RUN模式。SLEEP模式能够带来最大化的功耗节省,但同时具有最低层次的功能。从RUN到DOZE的切换,MC68VZ328依次关闭片上功能;而从SLEEP切换到其他任何一种状态,则都将会经历一个相当复杂的唤醒过程。
MC68VZ328的PSM模型如图3所示。状态通过功耗和性能来描述,工作模式的切换时间则通过边线表示。模式切换过程中的功耗接近于RUN模式。这里需要指出的是,虽然DOZE和SLEEP模式都不提供任何性能,但是退出SLEEP模式所需的时间(160 ms)比DOZE模式的退出时间(10μs)长得多,而芯片在SLEEP模式下的功耗(O.16 mW)远远小于DOZE模式下的功耗(50 mW)。
2.2 PM模型
在DPM范畴内,系统是指一组相互作用的设备,其中一些设备(至少有一个)是外部可控的PMC。该定义具有一般性,并没有给系统带来任何大小和复杂性方面的限制条件。在该系统中,设备行为由系统控制器来协调。对比较复杂的系统来说,通常基于软件来实现控制部分。例如在计算机系统中,由操作系统(Operating System,OS)来实现全局的协调工作。
PM根据系统设备的当前工作状态来进行实时控制,因此PM的功能在本质上是一个系统控制器。一个功耗可管理的系统必须向PM提供完全抽象的设备信息;而为了缩减设计时间,PM和系统之间的接口标准化也是一个重要特征。
DPM策略的选择和实现需要同时对设备的功耗/性能特征,以及目标设备上的工作负载进行建模。其中,前者可以通过功耗状态机很好地实现,而工作负载模型的复杂程度则可能相差很大。对所有高级的PM方法而言,都必须获得工作负载的信息。因此,在PM模型中需要系统监控模型,能够实时收集工作负载的数据信息并为PM驱动提供相关信息。系统层PM的抽象结构如图4所示,其中OBSERVER模块负责收集系统中所有PMC的工作负载信息,而CONTROLLER则负责发送工作模式切换的命令。
在PM系统中,并不是所有的设备都必须为PMC。所有非PMC器件的功耗构成了系统功耗的底线值;显然,PM不可能降低该部分设备的功耗。另外,所有功耗能够自身管理的设备对PM来说也是不可控的。尽管PM的功能已经明确定义,但是并没有对其执行方式作出任何限制。在一些系统中,PM是硬件模块;而在其他某些系统中,PM则是软件例程。另外,PM还有可能是软硬件的混合模型。
HAPO200 PDA就是一个PM系统的实例,它是我们实验室基于Intel XScale处理器开发的一款手持个人信息终端。该终端采用嵌入式Linux操作系统,可以提供强大的网络、快捷的因特网访问、完备的个人信息管理、丰富的应用程序等功能,另外还具备CF卡和USB扩展特性。该系统中主要设备的功耗都是可控的,即可以将Intel XS—cale CPU、存储器、LCD以及各种数字化设备设置为低功耗工作模式。另外一些器件,例如实时时钟,则一直处于有效状态。HAPO200 PDA的输入量来自于控制按钮或者手写笔。
HAPO200 PDA基于混合型的软硬件机制来实现PM,其作为一个固件运行在CPU上。HAPO200 PDA上的工作负载随时间变化比较剧烈。如果用户没有在触摸屏上操作,系统则处于空闲(Idle)状态。但是,HAPO200PDA不能在操作停止的时候立即关闭,这是因为从Sleep模式恢复到正常工作状态需要几μs的时间。如果PM将系统设置为Sleep模式太过频繁,那么当重新开始操作时将会丢失一定量的数据,从而导致设备质量受到损害。PM命令会被FPGA控制电路解码,并发送给对应的目标设备。CPU可通过软件进行关闭,而唤醒过程则由中断来驱动。需要提出的是,Sleep模式下的系统功耗不可能为零,这是因为一些系统单元的功耗是不可管理的。
3 结 论
以往的嵌入式系统设计主要涉及功能、稳定性、设计和生产费用等,系统功耗相对来说是一个比较新的设计考虑因素。降低功耗主要是基于延长手持设备中的电池寿命、降低芯片封装和冷却费用、提高系统稳定性和减小环境影响等方面的考虑,其重要性随着手持设备的普及而越来越突出。尽管本文针对动态低功耗降低技术进行了研究和探讨,有关文献也从其他角度出发提出了相应的设计策略,但是该领域还没有达到完全成熟的地步,仍然需要作深入的研究与分析。