嵌入式软件系统的节能策略研究

2010-06-22 03:41王昌龙
现代电子技术 2009年22期
关键词:应用软件操作系统嵌入式

王昌龙

摘 要:低能耗在现代工业中受到特别的关注,较低的能量耗费正成为嵌入式系统,特别是便携式设备所要解决和实现的重点目标之一。仅依靠硬件技术,实现节能的潜力正在逐渐减小。使用软件技术优化系统能量正得到更多的关注。从操作系统资源管理的角度,分析了嵌入式操作系统节能原理,探讨操作系统的节能策略;从软件的设计模式、编译优化等方面出发,研究了嵌入式应用软件的节能原理以及相应的节能方法。

关键词:嵌入式;操作系统;应用软件;节能策略

中图分类号:TP311

0 引 言

随着嵌入式系统的广泛应用,嵌入式系统的功能部件越来越多。处理器功能的增强和存储器容量的增大,为把应用软件从操作系统中独立出来提供了条件。软件复杂化必然带来功耗的扩大化,从电路设计角度来看,传统的硬件低功耗技术虽降低了局部器件的功耗,但无法顾及系统运行特征,且降低功耗的范围和程度有限。操作系统作为整个系统的资源管理者,能够根据工作负载和硬件资源电源状态,在满足系统性能约束条件下作出电源管理决策和控制,降低系统能耗。应用软件则可以结合实际的硬件特征和操作系统平台的特性,从设计、编译、运行等方面进行优化,减少执行指令数目,降低执行时间,从而达到降低功耗的目的。

1 嵌入式操作系统

嵌入式操作系统负责嵌入系统中全部软、硬件资源的分配、调度,控制、协调并发活动。 由于嵌入式产品应用的特殊性,嵌入式操作系统需要在满足性能要求的条件下,使系统以最小能耗方式运行。

1.1 嵌入式操作系统的节能原理

操作系统的节能是通过有效管理各部件的功耗来实现的,其电源管理技术的硬件基础是系统各部件的低功耗特性,尽管硬件的种类繁多,但降低功耗都依据CMOS电路的功耗原理:

式中:Е廖输入结点每个时钟周期的变化概率;C为门输出结点的总电容;f玞为时钟频率;V┆玠d为獵MOS供电电压;I玵为漏电流。其中,V┆玠d狪玵为静态功耗,主要由反偏玃N结的漏电流和晶体管的亚阈值电流引起,其最主要的形式是漏电损失;αCV2┆玠d为动态功耗,е饕由各器件的门电路跳变时引起[2,3]。在0.18μm工艺水平情况下,静态功耗中所占比重大约为5%~10%,一般可以忽略。这样,在CMOS电路中,动态功耗就成了这个系统功耗的主要组成部分,约占整体功耗的90%以上。降低动态功耗的基本方法就是找出减小α,f,C和V的方法。传统的硬件节能策略主要是实现在这几个参数中的最佳平衡点。操作系统作为系统资源的统筹管理者,通过制定一定的策略,可以从系统级的层次,管理各部件的动态功耗,从而实现系统的低功耗。

1.2 操作系统的节能策略

在系统确定部件的情况下,操作系统电源管理器决策面临的主要问题是对工作负载特征进行建模。在性能约束条件下,对系统部件功耗状态的转换时机和选择何种状态做出决策。目前,各种嵌入式操作系统(如Linux)中,都内置有电源管理模块。在进行嵌入式操作系统的开发或对现有系统进行剪裁时,可根据嵌入式系统运行环境的特征、微处理器及其他功能部件的使用情况,增加必要的电源管理策略。根据不同的工作负载特征抽象方法,把动态功耗管理(Dynamic Power Management,DPM)策略分为三类:超时策略、基于预测的启发式策略和基于随机过程的优化策略。

1.2.1 超时策略

超时策略是最简单的DMP策略。如果部件空闲时间超过预定的时间,则该策略认为未来的空闲时间将大于部件的能耗平衡时间,从而设置系统为低功耗状态。该策略不关注应用的特征差异和需求,比较通用。超时策略的主要缺陷是等待超时过程中增加能耗,唤醒部件时会造成系统部件响应延迟。如果超时阈值选择不当,会带来性能损失或降低节能效率。针对非平稳工作负载,可以通过保存阈值,加权平均以及动态自适应等方法优化超时阈值。研究表明,对无线传输网络设备等具有非平稳子相似业务请求的设备,最优动态功耗管理策略是超时策略(确定性Markov策略)。

1.2.2 基于预测的DMP策略

动态预测策略分为预测关闭和预测唤醒。预测关闭根据预测的结果关闭系统部件;预测唤醒根据预测的空闲时间提前唤醒部件。

预测方法属于启发式方法,假设系统部件访问在时间上存在关联性,未来的空闲时间可以通过历史信息进行估算,如何提高部件空闲时间预测的准确度是这种策略的关键。一种采用离线的非线性回归方法可以较好地拟合系统部件的空闲时间特征,但对应用依赖比较严重,并需要离线计算,适用于事先确定的工作负载。指数滑动平均方法易于实现,并具有较高的准确性,且应用范围较广。基于BP神经网络自适应学习来预测系统空闲时间的方法无需预先获得工作负载特征,具有传统的回归算法不可比拟的优点。

1.2.3 基于随机过程的优化策略

基于随机过程的优化策略是通过较高层次数学抽象建立系统的概率模型,解决启发式方法遇到的是最优化问题。

基于随机过程的方法用Markov链对部件能耗、状态转换时间和工作负载的不确定性建模,定义给定性能约束下的全局能耗优化问题,用线性规划方法求解。需要得到系统工作负载的先验信息,但系统工作负载很难提前建模。一种改进静态随机过程的方法是在不同的工作负载下在线学习,动态调节工作负载的Markov模型参数。

用这种方法得到的性能和能耗是期望值,不能保证对特定工作负载得到最优解。构造的Markov模型只是复杂随机过程的近似,如果模型不准确,优化策略也只是近似解。与启发式方法相比,该方法求解复杂度和计算开销较大,实际中难以直接实现,但可以用于离线系统分析和DPM策略评估。

2 应用软件

嵌入式系统的广泛应用需要专门的应用软件,硬件技术特别是处理器和存储器技术的发展,为把专门的应用软件从传统的嵌入式操作系统中独立出来提供了条件。与普通计算机应用软件相比,嵌入式应用软件除了满足时间、空间性能的要求之外,功耗也是嵌入式应用软件必须考虑的问题。

2.1 应用软件节能原理

系统的运行过程,就是计算机硬件执行各具体的应用程序指令的过程。低功耗软件设计的基本思想是:根据功能部件的物理特征,让它们在需要的时候才处于工作状态,其他时候处于各部分的省电状态,关键在于如何降低CPU要完成任务而必须执行的指令条数。

2.2 节能策略与方法

应用软件的节能依赖于硬件特征和操作系统平台的支持,涉及到软件的设计、编译、优化等环节。

2.2.1 编译低功耗优化技术

通过编译技术,降低系统功耗是基于这样的事实:对于实现同样的功能,不同的软件算法消耗的时间不同;不同的指令,其功耗特性是不同的。编译时,对功率和能量的优化技术是对硬件和OS技术的有效扩充,编译器具有能够分析整个应用程序行为的能力,它可以对应用程序的整体按照给定的优化目标进行重新构造。

指令级编译优化可以从指令选择和调度两方面进行。

编译时,通过采用低功耗的指令替代高功耗的指令作为程序的实现,达到低功耗的目的。指令的选取标准是指令的基本功耗,这种思想是由Tiwari提出的,他认为含有存储器操作数指令的功耗比只有寄存器操作数的功率指令大的多,尽量使用只含寄存器操作数的指令,可以降低程序功耗。在参考文献[7]中,在指令级功耗仿真器xpPower环境下,采用四个程序:bubble(冒泡查找)、heap(堆查找)、quick(快速查找)、perm(置换排序)对指令功耗进行了测试,结果如图1所示。 随着多媒体应用的迅猛发展,许多硬件现在都支持SIMD指令或短向量指令,使用这类指令可以大大地提升性能和降低功耗。

低功耗指令调度技术是在不改变程序语义的前提下,重新安排指令执行的顺序,这样通过调度可以改变程序运行的功耗行为。为了减少程序执行中的功耗,低功耗调度通常指通过适当安排指令执行的顺序减少指令间效应造成的功耗,减少功能部件的电路信号翻转,对应在硬件上就是减少程序在执行部件、通信部件和存储部件因电路信号翻转造成的功耗。软件流水是一种非常重要的细粒度循环调度方法,它产生一种周期模式的并行调度,使得相邻轮次循环的指令尽可能地重叠执行,以充分开发指令级的并行性。从而提高性能/功耗比。整数线性规划(Integer Linear Programming,ILP)方法对具有简单有限资源的嵌入式系统寻求最优化周期调度提供了途径。

2.2.2 软件设计成中断驱动方式

典型嵌入式系统,例如移动终端,其能耗主要部件包括嵌入式微处理器(CPU)、内存、LCD及背光、电源转换部件,其他部件还可能包括基带处理器、DSP、外设控制器等。据统计,CPU占20%~25%,LCD以及背光占用了20%,内存占15%,电源转换占5%~10%,其他的组成占30%。CPU产生的功耗在各功能部件中所占比例是最大的,因此减少CPU功耗能在很大程度上降低整个系统的能量开销。在程序中用“中断”代替“查询”,避免嵌入式系统花费太多的处理器时间检查┠掣霆轮询循环的单个状态位而拖累系统。 CPU在空闲时就转入待机或休眠等节能状态,既减少了能耗,也延长了特殊场合下CPU的寿命(如传感器网络节点)。

2.2.3 其他降低功耗的软件策略

现代嵌入式操作系统都内嵌电源管理器(PM)并提供了应用编程接口,可以编制智能化电源管理程序驻留内存,或者利用内核提供的API实现节能。

通常,硬件电路都消耗功率,基于此,可以减少系统的硬件电路,把数据处理功能用软件实现,如许多仪表中用到的对数放大电路、抗干扰电路,测量系统中用软件滤波代替硬件滤波器等。

在多机通信中,尽量提高传送的波特率。提高通信速率,意味着缩短通信时间,一旦完成通信,通信电路进入低功耗状态;并且发送、接收均应采用外部中断处理方式,而不采用查询方式。

在测量和控制系统中,数据采集部分的设计,需根据实际情况适当设置采样率,因为模/数转换时功耗较大,[HK]过大的采样

速率不仅功耗大,而且为了传输处理大量的冗余数据,也会额外消耗CPU的时间和功耗。

3 结 语

低功耗是现代嵌入式计算系统的重要特征,也是嵌入式产品品质的体现。嵌入式操作系统能够实现节能的优势在于它作为系统全部资源的管理者,在既定策略下能根据系统负载实时调节系统功耗;设计嵌入式应用软件的真正挑战在于降低CPU要完成任务而必须执行的指令条数,根据具体硬件特性,谨慎设计应用软件的结构,编写紧凑的代码,选择合适的开发、编译工具,均能动态地减少系统能耗。

猜你喜欢
应用软件操作系统嵌入式
搭建基于Qt的嵌入式开发平台
智能手机操作系统的分析与比较
嵌入式软PLC在电镀生产流程控制系统中的应用
国产桌面操作系统中虚拟化技术应用研究
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器