專利名稱:一種嵌入式軟件體系結(jié)構(gòu)級(jí)能耗建模方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式軟件能耗優(yōu)化技術(shù)領(lǐng)域,尤其是涉及一種嵌入式軟件體系結(jié)構(gòu)級(jí)能耗建模方法。
背景技術(shù):
目前,嵌入式系統(tǒng)在信息家電、智能控制、軍事電子等領(lǐng)域得到了廣泛的應(yīng)用。截止2009年底,全世界嵌入式設(shè)備的保有量超過了 40億臺(tái),且數(shù)量繼續(xù)呈快速增長(zhǎng)的勢(shì)頭, 每年電力消耗達(dá)到1000億千瓦時(shí)以上。在全球倡導(dǎo)“低碳經(jīng)濟(jì)”的背景下,嵌入式系統(tǒng)的能耗是一個(gè)日益引起人們關(guān)注的熱點(diǎn)問題,成為嵌入式系統(tǒng)設(shè)計(jì)的重要考量因素。國(guó)內(nèi)外在嵌入式軟件能耗建模的研究成果有T. K. Tan提出了一種使用基于特性的宏模型分析、計(jì)算軟件能耗的方法,該方法以目標(biāo)處理器能耗模型刻畫函數(shù)級(jí)能耗,然后根據(jù)函數(shù)刻畫整個(gè)軟件的宏模型,從而對(duì)軟件的能耗進(jìn)行評(píng)估,并提出了一種體系結(jié)構(gòu)轉(zhuǎn)換的方法,從體系結(jié)構(gòu)的角度對(duì)嵌入式軟件的能耗進(jìn)行優(yōu)化,但該模型采用線性回歸方法, 在面對(duì)多種輸入時(shí)模型不具有通用性,另外模型的準(zhǔn)確性不夠穩(wěn)定;Lee等描述了一種基于進(jìn)程代數(shù)的形式化框架,對(duì)能源受限的實(shí)時(shí)系統(tǒng)進(jìn)行建模與分析;Eric knn等針對(duì)具體的體系結(jié)構(gòu)建模語言MDL (the Architecture Analysis & Design Language),提出了基于 AADL模型的嵌入式系統(tǒng)能耗評(píng)估精化方法;張滕滕等提出了一種基于CSP (Communicating Sequential Process)進(jìn)程代數(shù)語言的能耗模型,該模型以接口為基本研究對(duì)象,并對(duì)系統(tǒng)的最大、最小和平均能耗進(jìn)行了定義,但文章缺乏對(duì)該模型有效性的驗(yàn)證;陳麗瓊等提出了一種能耗時(shí)延Petri網(wǎng)(ECTPN),對(duì)系統(tǒng)的模塊、任務(wù)、任務(wù)間關(guān)系、通信協(xié)議等進(jìn)行建模, 分析系統(tǒng)的可調(diào)度性和能耗約束,并給出啟發(fā)式算法計(jì)算滿足時(shí)間約束和能耗約束的可行調(diào)度;趙霞等提出了一種嵌入式操作系統(tǒng)能耗量化分析方法,利用微體系結(jié)構(gòu)能耗模型估算單時(shí)鐘周期指令能耗,同時(shí)提出基于軟件功能結(jié)構(gòu)的操作系統(tǒng)內(nèi)核能耗估算模型,估算分析內(nèi)核執(zhí)行路徑、服務(wù)、例程、原子函數(shù)的能耗,發(fā)現(xiàn)操作系統(tǒng)內(nèi)核中顯著影響系統(tǒng)能耗的關(guān)鍵軟件模塊及其特征。對(duì)嵌入式軟件功耗的研究已經(jīng)成為嵌入式研究領(lǐng)域的研究者所關(guān)注的焦點(diǎn),但上述大多數(shù)研究仍然停留在指令級(jí)、源程序結(jié)構(gòu)級(jí)和算法級(jí)的能耗分析與估算上,對(duì)更高層次的體系結(jié)構(gòu)級(jí)的能耗分析與估算的研究還較少。本發(fā)明從嵌入式軟件體系結(jié)構(gòu)層面中提取出有效代碼行數(shù)、構(gòu)件數(shù)目、平均構(gòu)件接口復(fù)雜度、平均路徑復(fù)雜度和平均構(gòu)件耦合度 5個(gè)體系結(jié)構(gòu)級(jí)軟件特征量,并假設(shè)這些軟件特征量與軟件能耗存在非線性函數(shù)關(guān)系,以此為基礎(chǔ)建立了一種嵌入式軟件體系結(jié)構(gòu)級(jí)能耗建模方法。該建模方法分析了上述軟件特征量影響嵌入式軟件能耗的過程,給出了具體的度量方法,并使用BP神經(jīng)網(wǎng)絡(luò)擬合出軟件特征量與嵌入式軟件能耗的非線性函數(shù)關(guān)系。通過實(shí)驗(yàn)驗(yàn)證,模型預(yù)測(cè)值與實(shí)際能耗值的誤差在20%以內(nèi),說明了方法的有效性,同時(shí)也證明了體系結(jié)構(gòu)級(jí)軟件特征量與嵌入式軟件能耗之間存在非線性關(guān)系的假設(shè)是合理的。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式軟件體系結(jié)構(gòu)級(jí)能耗建模方法。本發(fā)明解決其技術(shù)難題所采用的技術(shù)方案的步驟如下1)對(duì)大量樣本程序的5個(gè)體系結(jié)構(gòu)級(jí)軟件特征量(有效代碼行數(shù)L0C、構(gòu)件數(shù)量 TC、平均構(gòu)件接口復(fù)雜度Re、平均路徑復(fù)雜度Rp、平均構(gòu)件耦合度CF)分別進(jìn)行度量。2)對(duì)5個(gè)軟件特征量的度量值進(jìn)行預(yù)處理,處理后的值作為BP神經(jīng)網(wǎng)絡(luò)的輸入值。3)在功耗仿真實(shí)驗(yàn)平臺(tái)HMSim上運(yùn)行樣本程序,獲得樣本程序的能耗值E,E將作為BP神經(jīng)網(wǎng)絡(luò)的輸出值。4)確定BP神經(jīng)網(wǎng)絡(luò)的具體結(jié)構(gòu),包括隱層數(shù)、隱層節(jié)點(diǎn)數(shù)、隱層傳遞函數(shù)和輸出層傳遞函數(shù)。 隱層數(shù)的確定隱層數(shù)多少?zèng)Q定了網(wǎng)絡(luò)誤差,但過多的隱層數(shù)會(huì)導(dǎo)致網(wǎng)絡(luò)復(fù)雜化,增加網(wǎng)絡(luò)訓(xùn)練時(shí)間和“過擬合”的傾向。單隱層的BP神經(jīng)網(wǎng)絡(luò)可以逼近任何在閉區(qū)間內(nèi)的連續(xù)函數(shù),一個(gè)三層的BP網(wǎng)絡(luò)可完成任意的η維到m維的映射。因此,隱層數(shù)確定為 1。 隱層節(jié)點(diǎn)數(shù)的確定BP神經(jīng)網(wǎng)絡(luò)中,隱層節(jié)點(diǎn)數(shù)對(duì)BP網(wǎng)絡(luò)性能影響巨大,但目前理論上還缺乏科學(xué)的和普遍的方法用于隱層節(jié)點(diǎn)數(shù)的確定。一般采用以下經(jīng)驗(yàn)公式確定隱層節(jié)點(diǎn)數(shù)Ii1 -M1 =4^ι+α,其中,η為輸入層節(jié)點(diǎn)數(shù),m為輸出層節(jié)點(diǎn)數(shù),a為1到10之間的常數(shù)。對(duì)應(yīng)到體系結(jié)構(gòu)級(jí)能耗模型中,輸入層包括有效代碼行數(shù)、構(gòu)件數(shù)量、平均構(gòu)件接口復(fù)雜度、平均路徑復(fù)雜度和平均構(gòu)件耦合度5個(gè)輸入量,因此,輸入層節(jié)點(diǎn)數(shù)為5,輸出層為平均功耗7,輸出層節(jié)點(diǎn)數(shù)為1。因此,H1的取值范圍為3-12。 隱層傳遞函數(shù)和輸出層傳遞函數(shù)的確定針對(duì)單隱層BP神經(jīng)網(wǎng)絡(luò),輸入層和隱層傳遞函數(shù)一般采用tansig函數(shù),輸出層傳遞函數(shù)一般采用purelin函數(shù)。通過多組實(shí)驗(yàn)可以發(fā)現(xiàn),Trainlm函數(shù)在隱層節(jié)點(diǎn)數(shù)為11的時(shí)候,其收斂速度和逼近誤差都能達(dá)到令人滿意的效果。因此,BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)使用Trainglm,訓(xùn)練函數(shù)的隱層結(jié)點(diǎn)數(shù)為11。5)輸入樣本程序軟件特征量度量值和能耗值對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過訓(xùn)練確定BP神經(jīng)網(wǎng)絡(luò)隱層的權(quán)值和閾值。6)輸入目標(biāo)程序的特征量到訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)中,得到能耗預(yù)測(cè)值,再與目標(biāo)程序的實(shí)際能耗值進(jìn)行對(duì)比,驗(yàn)證該建模方法的有效性。
圖1三組目標(biāo)數(shù)據(jù)與模型預(yù)測(cè)值對(duì)比圖。
具體實(shí)施例方式為了驗(yàn)證嵌入式軟件體系結(jié)構(gòu)級(jí)能耗建模方法的有效性,本發(fā)明采用三組總共27 個(gè)目標(biāo)程序?qū)ζ溥M(jìn)行驗(yàn)證,這些程序中包含了較為常用的和較復(fù)雜的MP3文件解碼程序。 27個(gè)目標(biāo)程序的有效代碼行數(shù)、構(gòu)件數(shù)量、平均構(gòu)件接口復(fù)雜度、平均路徑復(fù)雜度和平均構(gòu)件耦合度等5個(gè)軟件特征量的具體數(shù)值如表1所示表1 (a)第一組目標(biāo)程序軟件特征量值
權(quán)利要求
1. 一種嵌入式軟件體系結(jié)構(gòu)級(jí)能耗建模方法,其特征在于該方法的步驟如下1)對(duì)大量樣本程序的5個(gè)體系結(jié)構(gòu)級(jí)軟件特征量(有效代碼行數(shù)L0C、構(gòu)件數(shù)量TC、平均構(gòu)件接口復(fù)雜度Re、平均路徑復(fù)雜度Rp、平均構(gòu)件耦合度CF)分別進(jìn)行度量;2)對(duì)5個(gè)軟件特征量的度量值進(jìn)行預(yù)處理,處理后的值作為BP神經(jīng)網(wǎng)絡(luò)的輸入值;3)在功耗仿真實(shí)驗(yàn)平臺(tái)HMSim上運(yùn)行樣本程序,獲得樣本程序的能耗值E,E將作為BP 神經(jīng)網(wǎng)絡(luò)的輸出值;4)確定BP神經(jīng)網(wǎng)絡(luò)的具體結(jié)構(gòu),包括隱層數(shù)、隱層節(jié)點(diǎn)數(shù)、隱層傳遞函數(shù)和輸出層傳遞函數(shù); 隱層數(shù)的確定隱層數(shù)多少?zèng)Q定了網(wǎng)絡(luò)誤差,但過多的隱層數(shù)會(huì)導(dǎo)致網(wǎng)絡(luò)復(fù)雜化,增加網(wǎng)絡(luò)訓(xùn)練時(shí)間和“過擬合”的傾向,單隱層的BP神經(jīng)網(wǎng)絡(luò)可以逼近任何在閉區(qū)間內(nèi)的連續(xù)函數(shù),一個(gè)三層的BP網(wǎng)絡(luò)可完成任意的η維到m維的映射,所以隱層數(shù)確定為1, 隱層節(jié)點(diǎn)數(shù)的確定BP神經(jīng)網(wǎng)絡(luò)中,隱層節(jié)點(diǎn)數(shù)對(duì)BP網(wǎng)絡(luò)性能影響巨大,但目前理論上還缺乏科學(xué)的和普遍的方法用于隱層節(jié)點(diǎn)數(shù)的確定,一般采用以下經(jīng)驗(yàn)公式確定隱層節(jié)點(diǎn)數(shù)Ii1 -M1 =4^ι+α,其中,η為輸入層節(jié)點(diǎn)數(shù),m為輸出層節(jié)點(diǎn)數(shù),a為1到10之間的常數(shù),對(duì)應(yīng)到體系結(jié)構(gòu)級(jí)能耗模型中,輸入層包括有效代碼行數(shù)、構(gòu)件數(shù)量、平均構(gòu)件接口復(fù)雜度、平均路徑復(fù)雜度和平均構(gòu)件耦合度5個(gè)輸入量,因此,輸入層節(jié)點(diǎn)數(shù)為5,輸出層為平均功耗7,輸出層節(jié)點(diǎn)數(shù)為1,所以Ii1的取值范圍為3-12, 隱層傳遞函數(shù)和輸出層傳遞函數(shù)的確定針對(duì)單隱層BP神經(jīng)網(wǎng)絡(luò),輸入層和隱層傳遞函數(shù)一般采用tansig函數(shù),輸出層傳遞函數(shù)一般采用purelin函數(shù),通過多組實(shí)驗(yàn)可以發(fā)現(xiàn),Trainlm函數(shù)在隱層節(jié)點(diǎn)數(shù)為11的時(shí)候,其收斂速度和逼近誤差都能達(dá)到令人滿意的效果,所以BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)使用Trainglm,訓(xùn)練函數(shù)的隱層結(jié)點(diǎn)數(shù)為11,5)輸入樣本程序軟件特征量度量值和能耗值對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過訓(xùn)練確定 BP神經(jīng)網(wǎng)絡(luò)隱層的權(quán)值和閾值;6)輸入目標(biāo)程序的特征量到訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)中,得到能耗預(yù)測(cè)值,再與目標(biāo)程序的實(shí)際能耗值進(jìn)行對(duì)比,驗(yàn)證建模方法的有效性。
全文摘要
本發(fā)明公布了一種嵌入式軟件體系結(jié)構(gòu)級(jí)能耗建模方法。該方法首先對(duì)5個(gè)體系結(jié)構(gòu)級(jí)軟件特征量(有效代碼行數(shù)LOC、構(gòu)件數(shù)量TC、平均構(gòu)件接口復(fù)雜度Rc、平均路徑復(fù)雜度Rp、平均構(gòu)件耦合度CF)進(jìn)行度量,對(duì)度量值進(jìn)行預(yù)處理后作為BP神經(jīng)網(wǎng)絡(luò)的輸入值,同時(shí)通過功耗仿真實(shí)驗(yàn)平臺(tái)HMSim獲取樣本程序的能耗值E作為BP神經(jīng)網(wǎng)絡(luò)的輸出值,然后確定BP神經(jīng)網(wǎng)絡(luò)的具體結(jié)構(gòu),包括隱層數(shù)、隱層節(jié)點(diǎn)數(shù)、隱層傳遞函數(shù)和輸出層傳遞函數(shù),對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練得到BP神經(jīng)網(wǎng)絡(luò)隱層的權(quán)值和閾值,最后得到BP神經(jīng)網(wǎng)絡(luò)的能耗預(yù)測(cè)值,再與目標(biāo)程序的實(shí)際能耗值進(jìn)行對(duì)比。通過實(shí)驗(yàn)得出該方法的平均誤差保持在20%的范圍內(nèi),說明以軟件特征量為基礎(chǔ)的嵌入式軟件體系結(jié)構(gòu)級(jí)能耗建模方法是有效的。
文檔編號(hào)G06N3/08GK102426662SQ20111034897
公開日2012年4月25日 申請(qǐng)日期2011年11月8日 優(yōu)先權(quán)日2011年11月8日
發(fā)明者伍元?jiǎng)? 劉云本, 劉嘯濱, 沈艷, 王敞, 王繼禾, 郭兵, 陳曉豐, 韓洪良 申請(qǐng)人:四川大學(xué)