本发明专利技术公开了一种能量受限嵌入式系统的算法源程序节能优化方法,本方法主要针对诸如无线传感器网络节点、移动终端、便携式设备等能量受限的嵌入式系统的算法源程序进行节能优化。该方法基于系统具有的资源条件,在不改变算法的前提下,针对影响算法运行过程能耗的源程序的五个构成要素,即数据存储与访问方式、分支结构、循环结构、函数调用和条件判断,通过改变数据存储与访问方式、基于概率调整语句顺序、减少隐含附加指令、以增加程序的存储空间开销来缩减执行时间这四种机制,进行减少算法源程序执行过程所消耗能量的编程优化,降低原有源程序的运行能量代价,从而达到降低系统运行能耗、延长工作时间的目的。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了,本方法主要针对诸如无线传感器网络节点、移动终端、便携式设备等能量受限的嵌入式系统的算法源程序进行节能优化。该方法基于系统具有的资源条件,在不改变算法的前提下,针对影响算法运行过程能耗的源程序的五个构成要素,即数据存储与访问方式、分支结构、循环结构、函数调用和条件判断,通过改变数据存储与访问方式、基于概率调整语句顺序、减少隐含附加指令、以增加程序的存储空间开销来缩减执行时间这四种机制,进行减少算法源程序执行过程所消耗能量的编程优化,降低原有源程序的运行能量代价,从而达到降低系统运行能耗、延长工作时间的目的。【专利说明】
本专利技术技术涉及嵌入式系统的算法源程序优化领域,特别涉及无线传感器网络节点、移动便携式终端、穿戴式设备等能量供给有限或不连续的系统和场合的能量受限嵌入式系统的算法源程序节能优化方法。
技术介绍
近年来,嵌入式系统已经成为电子信息产业中最具增长力的一个分支。随着半导体工艺技术的发展,微处理器的晶体管集成度及时钟频率在不断提高,性能增强的同时功耗也急剧增加,处理器的功耗问题已成为制约处理器发展的一个重要瓶颈。其中部分嵌入式系统因为需要满足可移动性或便携性,设备或系统均采用有限容量的电池供电,系统的能量供应受到限制,使得此类嵌入式设备的功耗问题尤为突出。因此,如何降低系统能耗,充分利用有限的能源,成为能量受限嵌入式系统设计过程中必须解决的问题。能量是功率在时间上的累积,功耗仅能反应某个时刻系统的能量消耗大小,但能量消耗的总量还与运行的时间有关,因此,对于能量供给受限系统,能耗的表述更为贴切,在降低系统能耗的问题上,也可从降低运行功耗和减少运行时间两个角度来考虑解决方案。在实现低能耗的问题上,早期研究者普遍关注硬件途径的改进方法,主要通过降低硬件的功耗来节约能量。由于受到当前技术及工艺水平的限制,单纯的硬件层次的方法无法有效的降低系统能耗。随着嵌入式操作系统的发展,软件对嵌入式系统的管理、功能实现起到重要作用。嵌入式系统越来越庞大,算法复杂度越来越高,软件层次能耗优化技术的意义也就越加凸显。虽然功耗最终由硬件系统产生,但影响功耗的因素不只是硬件本身,还有控制或指挥硬件操作运行的软件。大量研究表明,在硬件相同的条件下,软件层次的能耗优化技术对降低系统能耗具有良好效果,软件层次的能耗优化成为降低系统能耗的一个关键环节。当前软件层次的能耗优化技术大致可分为两类,一类是与硬件结合的软件管理方法,例如动态电源管理(DPM)以及动态电压调节(DVS)等;另一类是以降低能量消耗为目标的软件优化策略,例如,编译优化、源程序优化以及算法优化等。软件管理方式通过调节系统资源能有效减少系统的能量消耗,但是对系统运行特性的调整必须根据系统性能需要,因而具有一定局限性;而软件的优化方式是降低程序本身的运行能量代价,在任何运行条件下对降低系统能耗都是有意义的。当前许多研究与实验结果表明,不同的汇编指令、源程序、软件算法都会使得硬件工作方式不同,从而对系统的功耗带来不同影响。有关软件层次能耗优化方法的研究从底层到上层也大致可分为:(I)编译级优化:面向源程序的编译过程,对编译器进行优化,注重指令的调整,指令优化调度,存储分配等;(2)源程序级优化:面向算法的实现过程,注重编程中语句的调整、数据存储形式的选择,减少源程序的运行代价;(3)算法级优化:面向任务或事件,注重算法的选择,算法复杂度的降低;目前,相关研究大多侧重于编译级和算法级。基于能量考虑的编译优化可以减小代码运行的能耗,但此优化只能针对已有代码,并不能改变源程序,其优化空间受到限制。算法级的优化能明显改善算法的复杂度及运行性能,是降低软件运行能耗的重要途径,但在算法实现过程中的源程序却在很大程度受限于编程者的主观性,不同编程者编写代码的质量差异很大,因而存在很大的优化空间。源程序级的优化(即实现算法的源程序代码的编写优化)的意义在于,在编译环境一定、原有算不变的条件下对软件进行优化。源程序优化介于编译优化和算法优化之间,能有效弥补二者的不足,虽然不改变编译器的编译过程,但可以引导编译器编译出高效的代码;虽然不改变原有算法,但可以改变算法的实现过程,降低软件运行的能耗。此外,随着编译技术的成熟,编译器的效率的不断提高,为了加快软件的开发速度,高级语言已成为嵌入式系统的主流开发环境,编译器将源程序与机器指令隔开,编程者不再关注代码在底层如何编译实现,加快了软件的开发速度,同时也将效率优化的任务转移给编译器。尽管高级语言相对于汇编语言的代码效率差异已经在逐步缩小,但当程序规模变大、复杂度变高,而主频不能无限提高且电源容量有限时,高级语言的效率问题也就凸显出来。因此,在依靠高效编译器的同时还需结合适当的编程方法以及源程序的编程优化方法。以往对于源程序的优化都只限于为编程者提供建议。随着源程序的优化重要性的提升,尤其是在资源受限,特别是能量供给受限的环境下,源程序的优化方法备受关注。除了遵循编程规范和优化建议外,还可以通过对源程序的编程改进或调整达到优化效果,但目前研究都只涉及源程序的某个方面,对优化的对象考虑不全,提出方法也较单一,缺乏一个全面的、系统的方法。嵌入式系统所采用的微处理器/单片机系统有一个共同的特点,即程序存储器的容量往往远大于数据存储器的容量,而内部寄存器更是少之又少。尽管微处理器在硬件上也在不断改进,程序存储器容量不断增大,但数据存储器(RAM)的容量和内部寄存器数量却变化很小,资源相对短缺。依靠编译器去分配有限资源、调整指令是降低代码运行代价的主要途径。此外,通过改变数据的存储方式来减少数据的访问代价,根据源程序已知特性调整源程序语句顺序来减少执行的语句,通过牺牲一定的程序存储空间来减少源程序的运行时间等源程序层次的优化方法也是降低能耗的有效途径。对于嵌入式系统底层程序的开发,由于C语言较高的运行效率及较好的移植性,C语言成为了使用最为广泛的一种高级语言。因此,针对C语言的算法源程序级能耗优化方法的研究具有重要意义和实用价值。
技术实现思路
本专利技术的目的是提出一种用于能量受限的嵌入式系统的算法源程序级能耗优化方法,采用本专利技术,能有效降低系统的软件运行的能耗,有效延长设备的使用周期,提升设备续航能力。为了实现上述技术目的,本专利技术的技术方案是,,包括以下步骤:步骤一:在系统所给资源条件或系统分配给具体程序的有限的程序与数据存储空间的基础上,对算法源程序进行分析,选取程序中涉及数据存储与访问、选择结构、循环结构、函数调用、条件判断的部分,并进行优化对象判断以找出需要和可以进行优化的对象;其中数据存储与访问部分的优化对象为需重复访问的以非局部变量定义的数据或采用非寄存器寻址方式的数据;选择结构部分的优化对象为分支选中概率已知或可预测,且未按分支选中概率设计分支顺序的选择结构,或概率未知但具有四分支以上分支的选择结构;循环结构部分的优化对象为关系成立概率已知或可预测,且未按关系成立概率设置判断顺序的条件判断,或概率未知但未按关系表达式运算复杂程度设置判断顺序的条件判断;循环结构部分的优化对象为可以减少循环过程中用于循环控制的隐含附加指令的循环结构;函数调用部分的优化对象为可以减少函数调用过程中用于数据保护和程序转移的本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:刘少强,陈翔,樊晓平,尹超,刘延芳,翦林鹏,
申请(专利权)人:中南大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。