专利名称:一种嵌入式软件体系结构级能耗建模方法
技术领域:
本发明涉及嵌入式软件能耗优化技术领域,尤其是涉及一种嵌入式软件体系结构级能耗建模方法。
背景技术:
目前,嵌入式系统在信息家电、智能控制、军事电子等领域得到了广泛的应用。截止2009年底,全世界嵌入式设备的保有量超过了 40亿台,且数量继续呈快速增长的势头, 每年电力消耗达到1000亿千瓦时以上。在全球倡导“低碳经济”的背景下,嵌入式系统的能耗是一个日益引起人们关注的热点问题,成为嵌入式系统设计的重要考量因素。国内外在嵌入式软件能耗建模的研究成果有T. K. Tan提出了一种使用基于特性的宏模型分析、计算软件能耗的方法,该方法以目标处理器能耗模型刻画函数级能耗,然后根据函数刻画整个软件的宏模型,从而对软件的能耗进行评估,并提出了一种体系结构转换的方法,从体系结构的角度对嵌入式软件的能耗进行优化,但该模型采用线性回归方法, 在面对多种输入时模型不具有通用性,另外模型的准确性不够稳定;Lee等描述了一种基于进程代数的形式化框架,对能源受限的实时系统进行建模与分析;Eric knn等针对具体的体系结构建模语言MDL (the Architecture Analysis & Design Language),提出了基于 AADL模型的嵌入式系统能耗评估精化方法;张滕滕等提出了一种基于CSP (Communicating Sequential Process)进程代数语言的能耗模型,该模型以接口为基本研究对象,并对系统的最大、最小和平均能耗进行了定义,但文章缺乏对该模型有效性的验证;陈丽琼等提出了一种能耗时延Petri网(ECTPN),对系统的模块、任务、任务间关系、通信协议等进行建模, 分析系统的可调度性和能耗约束,并给出启发式算法计算满足时间约束和能耗约束的可行调度;赵霞等提出了一种嵌入式操作系统能耗量化分析方法,利用微体系结构能耗模型估算单时钟周期指令能耗,同时提出基于软件功能结构的操作系统内核能耗估算模型,估算分析内核执行路径、服务、例程、原子函数的能耗,发现操作系统内核中显著影响系统能耗的关键软件模块及其特征。对嵌入式软件功耗的研究已经成为嵌入式研究领域的研究者所关注的焦点,但上述大多数研究仍然停留在指令级、源程序结构级和算法级的能耗分析与估算上,对更高层次的体系结构级的能耗分析与估算的研究还较少。本发明从嵌入式软件体系结构层面中提取出有效代码行数、构件数目、平均构件接口复杂度、平均路径复杂度和平均构件耦合度 5个体系结构级软件特征量,并假设这些软件特征量与软件能耗存在非线性函数关系,以此为基础建立了一种嵌入式软件体系结构级能耗建模方法。该建模方法分析了上述软件特征量影响嵌入式软件能耗的过程,给出了具体的度量方法,并使用BP神经网络拟合出软件特征量与嵌入式软件能耗的非线性函数关系。通过实验验证,模型预测值与实际能耗值的误差在20%以内,说明了方法的有效性,同时也证明了体系结构级软件特征量与嵌入式软件能耗之间存在非线性关系的假设是合理的。
发明内容
本发明的目的在于提供一种嵌入式软件体系结构级能耗建模方法。本发明解决其技术难题所采用的技术方案的步骤如下1)对大量样本程序的5个体系结构级软件特征量(有效代码行数L0C、构件数量 TC、平均构件接口复杂度Re、平均路径复杂度Rp、平均构件耦合度CF)分别进行度量。2)对5个软件特征量的度量值进行预处理,处理后的值作为BP神经网络的输入值。3)在功耗仿真实验平台HMSim上运行样本程序,获得样本程序的能耗值E,E将作为BP神经网络的输出值。4)确定BP神经网络的具体结构,包括隐层数、隐层节点数、隐层传递函数和输出层传递函数。 隐层数的确定隐层数多少决定了网络误差,但过多的隐层数会导致网络复杂化,增加网络训练时间和“过拟合”的倾向。单隐层的BP神经网络可以逼近任何在闭区间内的连续函数,一个三层的BP网络可完成任意的η维到m维的映射。因此,隐层数确定为 1。 隐层节点数的确定BP神经网络中,隐层节点数对BP网络性能影响巨大,但目前理论上还缺乏科学的和普遍的方法用于隐层节点数的确定。一般采用以下经验公式确定隐层节点数Ii1 -M1 =4^ι+α,其中,η为输入层节点数,m为输出层节点数,a为1到10之间的常数。对应到体系结构级能耗模型中,输入层包括有效代码行数、构件数量、平均构件接口复杂度、平均路径复杂度和平均构件耦合度5个输入量,因此,输入层节点数为5,输出层为平均功耗7,输出层节点数为1。因此,H1的取值范围为3-12。 隐层传递函数和输出层传递函数的确定针对单隐层BP神经网络,输入层和隐层传递函数一般采用tansig函数,输出层传递函数一般采用purelin函数。通过多组实验可以发现,Trainlm函数在隐层节点数为11的时候,其收敛速度和逼近误差都能达到令人满意的效果。因此,BP神经网络的训练函数使用Trainglm,训练函数的隐层结点数为11。5)输入样本程序软件特征量度量值和能耗值对BP神经网络进行训练,通过训练确定BP神经网络隐层的权值和阈值。6)输入目标程序的特征量到训练好的BP神经网络中,得到能耗预测值,再与目标程序的实际能耗值进行对比,验证该建模方法的有效性。
图1三组目标数据与模型预测值对比图。
具体实施例方式为了验证嵌入式软件体系结构级能耗建模方法的有效性,本发明采用三组总共27 个目标程序对其进行验证,这些程序中包含了较为常用的和较复杂的MP3文件解码程序。 27个目标程序的有效代码行数、构件数量、平均构件接口复杂度、平均路径复杂度和平均构件耦合度等5个软件特征量的具体数值如表1所示表1 (a)第一组目标程序软件特征量值
权利要求
1. 一种嵌入式软件体系结构级能耗建模方法,其特征在于该方法的步骤如下1)对大量样本程序的5个体系结构级软件特征量(有效代码行数L0C、构件数量TC、平均构件接口复杂度Re、平均路径复杂度Rp、平均构件耦合度CF)分别进行度量;2)对5个软件特征量的度量值进行预处理,处理后的值作为BP神经网络的输入值;3)在功耗仿真实验平台HMSim上运行样本程序,获得样本程序的能耗值E,E将作为BP 神经网络的输出值;4)确定BP神经网络的具体结构,包括隐层数、隐层节点数、隐层传递函数和输出层传递函数; 隐层数的确定隐层数多少决定了网络误差,但过多的隐层数会导致网络复杂化,增加网络训练时间和“过拟合”的倾向,单隐层的BP神经网络可以逼近任何在闭区间内的连续函数,一个三层的BP网络可完成任意的η维到m维的映射,所以隐层数确定为1, 隐层节点数的确定BP神经网络中,隐层节点数对BP网络性能影响巨大,但目前理论上还缺乏科学的和普遍的方法用于隐层节点数的确定,一般采用以下经验公式确定隐层节点数Ii1 -M1 =4^ι+α,其中,η为输入层节点数,m为输出层节点数,a为1到10之间的常数,对应到体系结构级能耗模型中,输入层包括有效代码行数、构件数量、平均构件接口复杂度、平均路径复杂度和平均构件耦合度5个输入量,因此,输入层节点数为5,输出层为平均功耗7,输出层节点数为1,所以Ii1的取值范围为3-12, 隐层传递函数和输出层传递函数的确定针对单隐层BP神经网络,输入层和隐层传递函数一般采用tansig函数,输出层传递函数一般采用purelin函数,通过多组实验可以发现,Trainlm函数在隐层节点数为11的时候,其收敛速度和逼近误差都能达到令人满意的效果,所以BP神经网络的训练函数使用Trainglm,训练函数的隐层结点数为11,5)输入样本程序软件特征量度量值和能耗值对BP神经网络进行训练,通过训练确定 BP神经网络隐层的权值和阈值;6)输入目标程序的特征量到训练好的BP神经网络中,得到能耗预测值,再与目标程序的实际能耗值进行对比,验证建模方法的有效性。
全文摘要
本发明公布了一种嵌入式软件体系结构级能耗建模方法。该方法首先对5个体系结构级软件特征量(有效代码行数LOC、构件数量TC、平均构件接口复杂度Rc、平均路径复杂度Rp、平均构件耦合度CF)进行度量,对度量值进行预处理后作为BP神经网络的输入值,同时通过功耗仿真实验平台HMSim获取样本程序的能耗值E作为BP神经网络的输出值,然后确定BP神经网络的具体结构,包括隐层数、隐层节点数、隐层传递函数和输出层传递函数,对BP神经网络进行训练得到BP神经网络隐层的权值和阈值,最后得到BP神经网络的能耗预测值,再与目标程序的实际能耗值进行对比。通过实验得出该方法的平均误差保持在20%的范围内,说明以软件特征量为基础的嵌入式软件体系结构级能耗建模方法是有效的。
文档编号G06N3/08GK102426662SQ20111034897
公开日2012年4月25日 申请日期2011年11月8日 优先权日2011年11月8日
发明者伍元胜, 刘云本, 刘啸滨, 沈艳, 王敞, 王继禾, 郭兵, 陈晓丰, 韩洪良 申请人:四川大学