现有嵌入式软件节能技术综述摘要:本文根据嵌入式系统的构成以及功耗构成,介绍了嵌入式系统在电源节能、通信功耗、安全功耗和显示功耗的软件节能手段,并根据以上各方面的材料分析了现有嵌入式软件节能技术的可能潜力。引言:当前嵌入式系统发展迅速,已经融入各种工业和民用设备中,大到航空航天控制系统、雷达设备,小到我们身边的手机、数码相机、PDA、MP3。嵌入式系统以体积小巧、功能强大而著称,在一块小的单芯片上就可以实现多媒体播放、图像处理、无线通讯等功能多种功能。然而在嵌入式系统飞速发展的同时,其能耗随之增多。功耗问题是嵌入式系统发展的最重要制约因素之一。首先,移动便携产品这类普遍采用有限容量的电池供电。一方面,人们希望享受现代嵌入式计算技术带来的方便,希望便携式系统的功能更多,性能更强;但另一方面又不愿意携带大体积的电池或者频繁的给电池充电。我们知道,电池的容量与其体积呈正比例关系,为达到体积和容量的双重要求,就必然要不断提高电池的单位体积容量。然而在近几十年中,电池技术和微电子技术的发展速度以每年20%到30%的速度被进一步拉开,两者之间的差距并不在同一个数量级上。其次,追求系统体积小的同时,芯片散热问题也变的越来越突出。芯片温度及其波动影响电子设备稳定和寿命,由于温度过高而产生的热效应问题将对芯片设备维护成本的增加产生重要影响。有时,由于热效应问题而不得不在体积非常有限的嵌入式系统中额外添加一些辅助散热装置,但这会增加系统制造成本。因此,研究嵌入式系统的功耗,通过多种方法和手段来降低能量的消耗,使设备在有限电池能量条件下工作时间更长,运行更稳定,具有十分重要的意义。在本次报告的撰写过程中,作者参阅了众多与嵌入式软件节能技术相关的文献,对于嵌入式系统软件节能技术有了全面的而深入的了解。文章先介绍了嵌入式系统的硬件构成,基于硬件的相应的功耗来源,还有软件节能的原理。再根据各个部分的功耗,具体分析电源、通信和显示屏等各部分应如何降低功耗。正文:一.嵌入式系统的主要构成嵌入式系统的构成能根据具体应用而变化,但从整体来看,大致可以归结为图1所示的几个部分。由图1可以看出,嵌入式系统并不是一个单纯的计算机系统,它往往是一个综合应用系统包含:机械、电子、计算机技术的多方面的应用。图1嵌入式系统构成传感器是嵌入式系统感知外部环境的主要渠道。微处理器是嵌入式系统的核心部件之一,担负着控制、协调系统工作的重要任务。利用FPGA(Field-ProgrammableGateArray,即现场可编程门阵列)/ASIC(专用集成电路)既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,是实现系统的特殊功能是现代嵌入式系统设计的主要方法之一。嵌入式操作系统一般都是实时操作系统RTOS,能够有效调度多任务,合理利用系统资源。A/D、D/A转换能将外部的模拟量与系统能够处理的数字量进行相互转化。嵌入式系统由于执行的任务相对固定,软件容量相对较小,因而对存储器的容量要求不高,但对存储器的速度、功耗要求较高。受价格、体积、功耗、速度等因素的限制,嵌入式系统对人机界面的基本要求是简单可靠。不同嵌入式系统对电源要求不同,甚至同一系统不同部件对电压的要求也不同,电源部件及其管理提出了极高的要求。二.功耗主要构成研究嵌入式的软件节能技术,首先需要分析嵌入式系统功耗主要构成。只有了解了嵌入式系统的功耗主要构成才能针对性地降低功耗。在嵌入式系统中直接产生功耗的是计算机硬件,包括CPU和Memory等核心部件,也包括通讯端口、LCD等外围设备,嵌入式系统各部件功耗比例如图2所示。图2嵌入式系统功耗比例图图3微处理器功耗来源另外,高性能CPU通过高层次仿真得出开关级功率的分布关系1,如图3所示。时钟功耗所占比例最大,它包括时钟发生、时钟树、驱动器、锁存器和时钟负担的所有器件;排在第二位的是数据通路,其功耗仅次于时钟,主要包括执行单元、总线和寄存器;而后依次是存储器功耗、控制单元和I/O功耗。对于CMOS工艺的嵌入式微处理器来说,功耗主要由动态功耗()、静态功耗()构成:(1)式中,为瞬时导通功耗,为输出电容充放电功耗,为CMOS供电电压,为瞬时导通脉冲电流,为门输出结点的总电容,f为时钟频率。表1CMOS电路的功耗特性表由表1可以看出,CMOS电路动静功耗差异极大,在0.18μm工艺水平情况特性CMOS74HCXXX74AHCXXX静态功耗/(mW/门)0.00000250.00000动态功耗/(100KHzmW/门)0.170.006最大输入驱动电流In/mA(Vi=0.4V)±0.001±0.001下,静态功耗中所占比重大约为5%~10%,一般可以忽略。这样,在CMOS电路中,动态功耗就成了这个系统功耗的主要组成部分,约占整体功耗的90%以上2。结合公式,可得出降低系统功耗的方法可归结为以下三种:大力降低系统或器件的工作电压;控制CMOS器件的时钟频率使其尽量低;最大限度的实施静态化运行管理。而其中最大静态化控制就是低功耗方式的核心。传统的硬件低功耗技术从电路设计角度降低局部器件功耗,难以顾及任务运行特征,降低能耗的程度和范围有限。而操作系统能够在系统运行期间根据系统运行状态,动态调节系统部件功耗状态,在系统范围内更有效地发挥低功耗硬件的特性,降低系统能耗。因此,如何根据工作负载的复杂性和不确定性进行电源管理决策和控制,在不降低用户可察觉的系统性能情况下降低系统能耗,成为移动计算和操作系统研究领域的热点问题。自古软硬不分家,本文所关注的软件节能技术则将主要讨论通过软件程序的变更(包括操作系统),管理各硬件的功耗,实现系统的低功耗。三.具体省电措施1.动态电源管理(Dynamicpowermanagement,DPM)动态电源管理(Dynamicpowermanagement,DPM)是一种系统级的功耗控制技术,广泛应用于网络设备的设计与运行以及便携式移动通信终端中,如无线传感网络节点的功耗控制。受电池容量的限制及散热设备成本和体积的制约,在这些应用中急需功耗限制。在嵌入式系统中,越来越多的设备除了正常功耗模式外,还支持一种或多种低功耗工作模式,这为动态的功耗管理提供了可能,即系统可以根据工作负载变化情况合理设置目标设备的工作模式。DPM通过将负荷较轻的组件切换到较低功耗(对应于较低的性能)的运行状态,在满足性能要求的同时降低系统的功耗。功耗控制的效果取决于DPM策略的优劣。DPM策略选取实际上是一个在性能约束下最小功耗的带约束优化问题3。现有的DPM策略通常可分为3种类型4:预测式策略、随机型策略和超时策略。预测式策略预测策略分为预测关闭和预测唤醒。预测关闭根据预测的结果关闭系统部件;预测唤醒根据预测的空闲时间提前唤醒部件。预测方法属于启发式方法,首先假设系统部件访问在时间上存在关联性,则未来的空闲时间可以通过历史运行情况进行估算,当电源管理控制器预测系统组件的下一个空闲周期大于设定值时,将系统组件在转为空闲的时刻切换到低功耗的状态。该策略的关键在于提高部件空闲时间预测的准确度5。一种采用离线的非线性回归方法6可以较好地拟合系统部件空闲时间特征,但对应用依赖较严重,并需要离线计算,适用于事先确定的工作负载。指数滑动平均方法易于实现并具有较高的准确性,应用范围较广。基于BP神经网络(BackPropagation,一种按误差逆传播算法训练的多层前馈网络7)自适应学习来预测系统空闲时间的方法无需预先获得工作负载特性,具有传统回归算法不可比拟的优点。随机型策略基于随机过程的优化策略是通过较高层次数学抽象建立系统的概率模型,解决启发式方法遇到的是最优化问题。基于随机过程的方法用Markov链(在给定当前知识或信息的情况下,历史状态对于预测未来状态是无关的8)对部件能耗、状态转换时间和工作负载的不确定性建模,定义定性约束下的全局能耗优化问题,用线性规划方法求解。需要得到系统工作负载的先验信息,但系统工作负载很难提前建模。一种改进静态随机过程的方法是在不同的工作负载下进行在线学习,动态调节工作负载的Markov模型参数。用这种方法得到的性能和能耗是期望值,不能保证对特定工作负载得到最优解。构造的Markov模型只是复杂随机过程的近似,如果模型不准确,优化策略也只是近似解。与启发式方法相比,该方法求解复杂度和计算成本较高,实际中难以直接实现,但可以用于离线系统分析和DPM策略评估9。近年来这类研究非常活跃,Benini等提出了基于离散时间Markov决策过程的DPM模型;Qiu等提出基于连续时间Markov决策过程的DPM模型;Rem等提出基于Markov修正随机过程的层次DPM模型,由于模型限制,以上都假设空闲时间长度服从几何、负指数等无记忆分布;Simunic等提出了基于时间索引半Markov决策过程的DPM模型,可适用于一般分布的情况。以上研究虽建立了DPM随机决策模型,给出了优化方程和算法,但均未能从理论上解答哪种策略更有效等基本问题,而且DPM属于动态(或在线)控制,要求算法本身计算量很小,不能直接采用以上模型进行DPM控制。对于非平稳系统,Chung等提出了基于滑动窗口的DPM算法;Wu等提出了基于反馈控制的DPM算法;Li等提出了基于Q学习的DPM算法。目前实际系统中采用最多的是超时策略,如硬盘驱动器,但为何超时策略具有很好的功耗性能,现有研究均没能给出答案10。超时(Timeout)策略超时策略是最简单通用的DPM策略。如果部件空闲时间超过预定的时间,则该策略认为未来的空闲时间将大于部件的能耗平衡时间,从而设置系统为低功耗状态。该策略不关注应用的特征差异和需求,比较通用。超时策略的主要缺陷是等待超时过程中增加能耗,唤醒部件时会造成系统部件响应延迟。如果超时阈值选择不当会带来性能损失或者降低节能效率。针对非平稳工作负载,可以通过保存阈值、加权平均以及动态自适应等方法优化超时阈值。研究表明,对无线网络传输设备等具有非平稳自相似业务请求的设备,最优的动态功耗管理策略是超时策略(确定性Markov策略)11。2.通信功耗在芯片内的总线上的通信以及设备之间的无线通信往往是一个芯片功耗的主要来源。总线编码和编码技术可以用来减少能源消耗的同时,增加数据的吞吐量和延迟方面的性能。无线通信在轻量级嵌入式系统通信总能耗中占主导地位。无线通信与传统的网络之间的主要区别在于部署的元素数目,它们的功率限制,他们的流动性水平等等12。设参数表示内部节点的平均负载,表示总线各位的平均负载,表示单位时间所有内部节点的平均翻转次数,表示单位时间总线的平均翻转次数。则它们与功耗P的关系可表示为:(2)因为内部节点的个数远远大于总线的位数,所以平均翻转次数远远大于;而负载却远远小于。前者大约只有后者的千分之一,所以,式(2)中具有很大的权重。欲降低P,只需减小。一些新的低功耗自适应偏移量总线编码方法可有效降低大负载地址总线的功耗。该编码方法采用排序数列索引进行偏移地址总线的自适应重排,通过冗余线实现最佳排序数列至存储器地址接收端的传送,相对于传统的地址总线编码方法,具有更低的总线翻转频率。通过实验验证,结果表明,采用自适应偏移量总线编码,地址总线的翻转频率降低了86.6%,功耗减少了69.2%,编码器本身的动态功耗和面积相当小,有效地实现了地址总线的低功耗工作13。同时在具体的通讯过程中,可以通过减少通信流量和增加休眠时间来实现低功耗14。减少信息流量可以通过以下四个具体手段。首先,可以将本地计算和数据融合,对传感器节点采集的原始数据和各个节点汇集的相关数据进行处理,发送有用信息。其次,如果两帧同时发送,应尽量减少冲突。发生冲突时,它们会相互重叠,结果导致接收到的信号难以辨认,需要重传才能把信息正确发送到目的地,冲突引起的重传造成很大的能量浪费。再者,在传输的过程中,可增加错误检测以便尽早发现错误。校正机制可以校正少量比特错误的数据包,错误检测和校正机制可以在给定误码率的条件下有效减少数据包的重传。最后,应尽量减少控制包的开销和包头长度。网络协议需要控制包和包头来维护其正常运行,