1 低功耗设计研究的必要性和可能性
嵌入式系统是多个设备或对象的组合,其在一定限制条件下相互作用可产生特定的功能。现在已经出现了许多测试标准来对嵌入式系统的整体设计质量进行评估,如系统性能、稳定性、能耗、设计和生产费用等,其中系统的能耗问题在最近几年已经逐渐成为一个重要的设计考虑因素。能量的高效使用除了能够降低系统操作代价(例如电能消耗)和减小环境影响(例如辐射干扰、噪声)外,对延长手持设备的电池寿命来说也非常有必要。为了在系统性能得到维护的同时降低系统能耗,需要同时对硬件和软件进行设计上的优化,而嵌入式系统的组成特点和应用特性也为能耗降低带来了可能性。
1.1 必要性
系统能耗已经逐渐成为嵌入式系统设计过程中的一个重要研究点,其重要性随着手持设备的普及而越来越突出。嵌入式系统设计者在以往设计过程中,将系统的稳定性、实时性、安全性等作为设计和考虑的重点。但是对系统设计者来说,现在又产生了一个新的挑战——降低系统的能量消耗,其必要性体现在以下6个方面:
①现在越来越多的手持设备系统利用电池供电,而电池容量相对有限,因此有必要通过降低功耗来延长系统的可持续使用时间。
②半导体工业的迅速发展使得系统集成度和时钟频率得到了显著提高,但IC器件运算能力爆发性增长的同时也导致系统的功耗急剧上升,这将带来热量释放的问题,而且也给设备的封装费用带来影响。可以通过系统功耗的降低来减小整个系统的设计和生产成本。
③电池技术的发展速度严重滞后于系统能耗需求的增长速度:在最近30年里电池容量只增长了4~8倍,但在相同的时间范围内数字IC运算能力的增长却超过了4个数量级。采用系统功耗降低技术可以弥补电池技术发展的不足。
④绿色电器理念越来越深入人心,低能耗高性能的嵌入式设备更容易得到用户的认可。
⑤人们对环境问题的关心程度越来越高。显然,系统功耗越大,外围环境所受到的辐射或者电磁干扰越严重。
⑥能量价格上浮等因素也从另外一个方面体现了降低系统功耗的必要性。
综合以上因素可以看出,嵌入式设备或者系统能耗的大小将会从多个方面影响系统的整体性能。因此,电子设计者在进行系统设计,尤其是针对手持设备类的嵌入式系统设计过程中,系统能耗将是一个越来越重要的设计因素。
1.2 可能性 现在的嵌入式系统设计是软硬件协同设计的过程,其系统组成和应用特性为动态的低功耗策略设计与应用提供了可能,这些可能性包括设备功耗模型、工作负载、系统嵌入三方面:
(1)设备功耗模型
在嵌入式系统中,越来越多的设备除了正常功耗模式外,还支持一种或多种低功耗工作模式,这为动态的功耗管理提供了可能,即系统可以根据工作负载变化情况合理设置目标设备的工作模式。这就是动态电源管理(DPM)技术的应用。另外,商用CMOS芯片电源供给技术的发展,使得处理器内核的工作电压在运行期间根据应用任务的时间限制发生实时变化成为可能,即动态电压调节(DVS)技术应用;而高效DC-DC电压转换器的出现也为处理器工作电压的动态调节提供了硬件设计条件。
(2)工作负载
嵌入式系统是多种本质上具有不同特征器件的集合。例如,某个便携式系统具有处理器单元、模拟单元(无线卡)、机械部分(硬盘驱动)以及光学器件(显示器)。显然,这4个单元在系统运行过程中实现的功能各不相同。系统通常是在作最坏打算的工作负载情况下为达到峰值性能而进行设计,但是系统通常处于欠负载工作状态,而且工作负载具有不均匀性。工作负载的变化性(或者不均匀性)为能耗的自适应降低提供了可能性。如果没有任务对某个目标设备产生服务请求,则该设备处于空闲状态,从而可以将其关闭,使之进入低功耗、低性能的睡眠模式;当某个运行的任务需要使用该设备时,则将其唤醒,使之进入高功耗、高性能的工作状态。
(3)系统嵌入 当设计出节能效果显著的动态低功耗策略后,还必须将其嵌入到系统程序中才能得到实际应用。动态低功耗设计技术的重要性越来越突出,这除了从文献中的研究成果可以看出之外,还可以通过系统动态功耗管理工业标准的建立明显地看出。现在主流的操作系统,如MicrosoftWindows、Linux都支持高级电源管理(Advaneed PowerManagement,APM)、高级配置和电源接口(AdvancedConfiguration and Power Interface,ACPI)等模块。其中ACPI于1997年提出,被Intel、Microsoft、Toshiba等公司推荐为系统功耗管理中的标准软硬件接口。ACPI允许设备厂家、操作系统设计者、设备驱动编程人员使用同一个标准接口,而与ACPI兼容的设备也应该能够正确响应ACPI的调用,如参数设置、工作状态的查询等。通过对APM、ACPI机制的引用或改进,可以很容易地将低功耗设计策略嵌入到系统内核中,从而减轻了低功耗策略系统嵌入的工作量。
2 静态与动态低功耗设计
在系统级,有4种主要的能量消耗源:处理单元、存储单元、显示单元、内部连接和通信单元。能量高效的系统层设计在保证各个单元交互效应达到平衡的同时,还必须使这4种类型单元的能耗最小化。
从总体上讲,功耗降低技术在嵌入式系统范畴内可以分为两大类:静态技术和动态技术。静态技术主要在系统初始设计过程中使用,其假设系统的功能定义和工作模式已知,而且将来也不会改变。在嵌入式系统软硬件设计的初期阶段,已经使用到了一些静态低功耗降低技术。例如,通过软件优化编译技术来优化所使用的指令代码,从而影响到运行程序的能耗;代码存储器和内存中的数据存取方式将影响到处理器和存储单元之间的能量平衡;数据表达方式也将影响到通信资源的功耗。另外,在参考文献中也已经提出了一些静态功耗管理策略。在参考文献中,针对采用EDF调度方法的实时系统提出了一种寻找最优电压调度的静态方法;在参考文献中,作者研究了一个更为通用的处理器模型,该静态方法使得在某些非常特殊的情况下能够达到能耗的最优化;在参考文献中,低能耗非抢占式调度问题被建模成一个整数线性问题,该系统包含一组具有相同到达时间和任务执行期限,但是上下文切换代价不同的任务。
与静态技术相对应,动态技术则是系统在运行阶段充分利用工作负载的变化性来动态改变设备工作模式,从而达到降低系统功耗的目的。动态技术本质上是一个系统级的设计方法,其最关键之处在于功耗管理(Power Man—agement,PM)单元:PM单元监控整个系统的工作状态,当发现系统处于欠负载或者无负载状态时,就发送命令来控制目标设备的工作模式。而嵌入式系统的组成和应用特性也为动态的低功耗策略设计与应用提供了可能。
很明显,静态功耗降低技术只需在设计阶段使用一次,在运行过程中不能根据工作负载的变化而灵活处理;动态低功耗技术在运行过程中则能够很好地自适应于工作负载变化情况,更易于执行和应用。另外,随着系统功能增强和集成度的提高,静态技术已经不能完全满足系统对功耗的要求。尽管静态技术在一定程度上能够带来能量节省,但是最近的研究都着重于动态领域的低功耗设计技术,后者通常利用底层的硬件特性来获取有效的能量节省,现已成为嵌入式系统领域中降低功耗的重要手段。
3 DVS设计技术研究
3.1 DVS基本原理
随着商用CMOS芯片电源供给技术的发展,处理器内核的工作电压在运行期间进行实时调节成为可能;而高效DC-DC电压转换器的出现也为处理器内核工作电压的动态调节提供了条件。另外在软实时系统中,任务只需在规定的截止时间之前执行完毕就能达到系统的性能要求,不要求立即得到系统的响应。DVS技术就是根据任务的紧迫程度来动态调节处理器运行电压,以达到任务响应时间和系统低能耗之间的平衡。
DPM技术对非实时系统而言,能够显著节省能量。但是由于DPM内在的概率特性以及非确定性,不适用于实时系统。DVS技术却能够很好地解决嵌入式实时系统中的性能与功耗要求,根据当前运行任务的性能需求来实时调节处理器工作电压。DVS技术主要基于这样一个事实,即处理器的能量消耗与工作电压的平方成正比关系。如果只对处理器的频率进行调节,则所能节省的能量将很有限,这是因为功耗与周期时间成反比,而能耗又与执行时间和功耗成正比。早期DVS原理基于处理器的利用率来设置其速度,并没有考虑到运行任务的不同需求。现在已经针对实时系统提出了一些电压调节策略。例如,参考文献针对电压可连续变化以及离散变化的处理器进行了讨论:为了降低电压可连续变化处理器的功耗,需要为每个任务找到一个具体的电压,从而将整个执行时间延长到对应的截止期限(deadline);对电压离散变化的处理器来说,则至少需要为每个任务找到两个执行电压。参考文献则考虑了将周期性和非周期性任务进行联合在线调度的问题。该原理能够保证满足所有周期性任务的截止期限,并使得所接受的非周期性任务数目最大化。另外,在参考文献中还针对分布式系统进行了讨论。