论文部分内容阅读
在嵌入式系统的研究早期,其关注重点主要集中在性能、可靠性和实时性等方面,近年来随着嵌入式系统的飞快发展,嵌入式系统的主频和集成度的提高,嵌入式设备尤其是移动嵌入式设备的大量应用,为嵌入式系统的设计带来了一个新的问题,如何通过有效的方式降低嵌入式系统能耗达到延长嵌入式设备中电池使用时间目的。嵌入式系统能耗由系统硬件能耗和系统软件能耗组成。随着硬件能耗分析技术的日趋成熟,软件能耗逐渐成为嵌入式系统能耗研究的主要方向。然而对软件能耗分析和优化技术的研究是以软件能耗的估算为基础工作开展的。目前关于嵌入式软件能耗估算的方法有很多,但是大部分都是对系统软件底层进行能耗分析,对于软件开发人员可以直接接触的源程序级软件能耗估算方法比较少,本文针对这种需求设计了一种面向C语言源程序的嵌入式软件能耗估算方法。本文首先对嵌入式系统的硬件能耗分析技术和软件能耗分析技术进行了总结,从中找到源程序级软件能耗估算的切入点,并在分析电路级能耗估算方法和已有的软件能耗估算方法的基础上设计了一种源程序级软件能耗估算方法。C语言源程序可以通过反汇编转换为汇编指令进行分析,通过分析发现汇编指令的能耗与执行时所需要的时钟周期之间存在着某种定量关系。为此本文建立了一个源程序级软件能耗分析模型,充分考虑了源程序运行时CPU的占用情况,通过计算得到源程序在执行时占用的CPU时钟周期数,可以按照确定的定量关系求得该源程序执行时消耗的能量。本文把C语言源程序按照四个基本结构:顺序结构、选择结构、循环结构和函数调用结构分别进行能耗分析,并给出各自的能耗估算过程。然后在结合四种基本结构的估算方法的基础上汇总整合得到C语言应用程序的能耗估算流程。最后,使用本文设计的基于时钟周期的C语言源程序能耗估算方法对C语言的基本语句和应用程序分别进行能耗估算,并与通过仿真实验得到的能耗值进行对比分析,证明了本文方法的有效性和可行性。同时对一些常见的具有相同功能代码不同的语句和算法进行了分析,得到相同功能不同代码的低功耗语句和算法,进一步验证了本文设计的能耗估算方法的可行性和实用性。