发明名称 一种嵌入式软件体系结构级能耗建模方法
摘要 本发明公布了一种嵌入式软件体系结构级能耗建模方法。该方法首先对5个体系结构级软件特征量(有效代码行数LOC、构件数量TC、平均构件接口复杂度Rc、平均路径复杂度Rp、平均构件耦合度CF)进行度量,对度量值进行预处理后作为BP神经网络的输入值,同时通过功耗仿真实验平台HMSim获取样本程序的能耗值E作为BP神经网络的输出值,然后确定BP神经网络的具体结构,包括隐层数、隐层节点数、隐层传递函数和输出层传递函数,对BP神经网络进行训练得到BP神经网络隐层的权值和阈值,最后得到BP神经网络的能耗预测值,再与目标程序的实际能耗值进行对比。通过实验得出该方法的平均误差保持在20%的范围内,说明以软件特征量为基础的嵌入式软件体系结构级能耗建模方法是有效的。
申请公布号 CN102426662B 申请公布日期 2014.02.26
申请号 CN201110348973.0 申请日期 2011.11.08
申请人 四川大学 发明人 郭兵;沈艳;刘啸滨;陈晓丰;王继禾;伍元胜;刘云本;韩洪良;王敞
分类号 G06N3/08(2006.01)I 主分类号 G06N3/08(2006.01)I
代理机构 代理人
主权项 1.一种嵌入式软件体系结构级能耗建模方法,其特征在于该方法的步骤如下:1)对大量样本程序的5个体系结构级软件特征量:有效代码行数LOC、构件数量TC、平均构件接口复杂度Rc、平均路径复杂度Rp、平均构件耦合度CF,分别进行度量;2)对5个软件特征量的度量值进行预处理,处理后的值作为BP神经网络的输入值;3)在功耗仿真实验平台HMSim上运行样本程序,获得样本程序的能耗值E,E将作为BP神经网络的输出值;4)确定BP神经网络的具体结构,包括隐层数、隐层节点数、隐层传递函数和输出层传递函数;●隐层数的确定:隐层数多少决定了网络误差,但过多的隐层数会导致网络复杂化,增加网络训练时间和“过拟合”的倾向,单隐层的BP神经网络可以逼近任何在闭区间内的连续函数,一个三层的BP网络可完成任意的n维到m维的映射,所以隐层数确定为1,●隐层节点数的确定:BP神经网络中,隐层节点数对BP网络性能影响巨大,但目前理论上还缺乏科学的和普遍的方法用于隐层节点数的确定,采用以下经验公式确定隐层节点数n<sub>1</sub>:<img file="FDA0000390604200000011.GIF" wi="334" he="75" />其中,n为输入层节点数,m为输出层节点数,a为1到10之间的常数,对应到体系结构级能耗模型中,输入层包括有效代码行数、构件数量、平均构件接口复杂度、平均路径复杂度和平均构件耦合度5个输入量,因此,输入层节点数为5,输出层为平均功耗<img file="FDA0000390604200000012.GIF" wi="71" he="79" />输出层节点数为1,所以n<sub>1</sub>的取值范围为3-12,●隐层传递函数和输出层传递函数的确定:针对单隐层BP神经网络,输入层和隐层传递函数采用tansig函数,输出层传递函数采用purelin函数,通过多组实验可以发现,Trainlm函数在隐层节点数为11的时候,其收敛速度和逼近误差都能达到令人满意的效果,所以BP神经网络的训练函数使用Trainglm,训练函数的隐层结点数为11,5)输入样本程序软件特征量度量值和能耗值对BP神经网络进行训练,通过训练确定BP神经网络隐层的权值和阈值;6)输入目标程序的特征量到训练好的BP神经网络中,得到能耗预测值,再与目标程序的实际能耗值进行对比,验证建模方法的有效性。
地址 610065 四川省成都市武侯区一环路南一段24号
您可能感兴趣的专利