專利名稱:基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法
技術(shù)領(lǐng)域:
本發(fā)明屬于嵌入式軟件開發(fā)過程中的能耗估算技術(shù)領(lǐng)域,具體涉及一種估算嵌入式軟件運(yùn)行時(shí)能耗的方法。
背景技術(shù):
軟件能耗評(píng)估方法主要有兩類一類為硬件測量方法,一類是軟件估算方法。硬件測量方法準(zhǔn)確性高,但是對(duì)處于開發(fā)階段的軟件并不適用,因?yàn)檐浖Y(jié)構(gòu)和功能會(huì)有變化。并且硬件測量方法很難把獲得的測量數(shù)據(jù)與軟件的具體語義聯(lián)系起來。軟件估算方法的準(zhǔn)確性低于硬件測量方法,但構(gòu)建簡便,測試周期短,并且成本低廉。實(shí)際中多采用軟件估算方法。
軟件估算方法按照估算模型可以分為4類1)晶體管級(jí)模型基于這種模型的方法,適用于集成電路設(shè)計(jì)中估算電路能耗。不適合用來估算大型軟件(操作系統(tǒng),編譯器)的能耗。
2)微體系結(jié)構(gòu)級(jí)模型基于該模型的方法建立了微體系結(jié)構(gòu)級(jí)別的流水線模型,每個(gè)時(shí)鐘周期收集能耗信息,并以此為基礎(chǔ)來估算能耗,具有較高的準(zhǔn)確性,但不能很好地把能耗映射到軟件的語義。
3)指令級(jí)模型基于該模型的估算方法以單條指令為基礎(chǔ)累計(jì)估算軟件的能耗。具有較好的速度,但準(zhǔn)確性比微體系結(jié)構(gòu)級(jí)模型差。
4)系統(tǒng)級(jí)模型基于該模型的估算方法把軟件能耗歸結(jié)為軟件不同模塊的消耗,單位模塊有不同狀態(tài),并且處于不同的狀態(tài)時(shí)有不同的能耗,由此該模型通過記錄軟件模塊的狀態(tài)切換來估算能耗。該模型準(zhǔn)確性差,適用于選擇不同的模塊來構(gòu)成軟件系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明克服現(xiàn)有軟件能耗估算方法的不足,利用基本的指令在流水線上執(zhí)行過程的能耗信息,提供一種基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,能夠獲得嵌入式軟件各個(gè)粒度(小到函數(shù),大到包括應(yīng)用軟件和操作系統(tǒng)的整個(gè)系統(tǒng))的能耗,準(zhǔn)確估算更高級(jí)別的軟件構(gòu)件的能耗。
本發(fā)明的技術(shù)內(nèi)容一種基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,包括
1、分析軟件的二進(jìn)制可執(zhí)行文件中的符號(hào)信息,獲取符號(hào)的起始地址和結(jié)束地址的信息,建立軟件構(gòu)件符號(hào)信息表。軟件構(gòu)件的最小單位是函數(shù),根據(jù)函數(shù)間的調(diào)用關(guān)系可以構(gòu)造函數(shù)集合組成的操作系統(tǒng)服務(wù)、功能模塊、整個(gè)系統(tǒng)等不同級(jí)別的軟件構(gòu)件。
2、指令級(jí)模擬器模擬軟件運(yùn)行,并獲取運(yùn)行時(shí)的指令地址和指令碼。在模擬器讀取指令的地址后,把地址送給后續(xù)取指模塊的同時(shí),送給緩存地址流隊(duì)列。取指模塊讀到指令碼,送給指令執(zhí)行模塊,通過實(shí)現(xiàn)指令功能的方式模擬執(zhí)行指令的同時(shí),將指令碼送入指令流隊(duì)列。
3、微體系結(jié)構(gòu)模擬器按照同步的原則,從指令流隊(duì)列獲取指令碼,交給微體系結(jié)構(gòu)流水線模擬模塊。流水線模擬模塊分析指令流需要訪問的微體系結(jié)構(gòu)部件(如邏輯運(yùn)算單元ALU、高速緩存CACHE),按照部件的能耗模型計(jì)算被訪問部件的能耗。在最后一級(jí)微體系結(jié)構(gòu)流水線模擬模塊里,累計(jì)在該流水線周期內(nèi),所有被訪問部件的能耗。
4、能耗估算模塊從地址流隊(duì)列里,獲取與指令碼對(duì)應(yīng)的指令地址信息,在軟件構(gòu)件符號(hào)信息表中查找該指令所在的函數(shù)名符號(hào)的起始地址和結(jié)束地址,從而判別該指令屬于哪一個(gè)函數(shù)。同時(shí),根據(jù)指令所在的函數(shù)符號(hào)名稱建立軟件構(gòu)件能耗信息表,把所有屬于該函數(shù)的指令的能耗累計(jì)起來,估算出該函數(shù)的能耗。
5、以上步驟獲取指令流在處理器上運(yùn)行過程中的能耗。嵌入式軟件訪問內(nèi)存和外部設(shè)備時(shí),調(diào)用相應(yīng)的指令。在對(duì)該類指令計(jì)算能耗時(shí),利用相應(yīng)的能耗模型。內(nèi)存的能耗模型中的關(guān)鍵參數(shù)是內(nèi)存的能耗與內(nèi)存單元的大小和內(nèi)存訪問的時(shí)間成正比。外設(shè)的能耗模型根據(jù)不同的設(shè)備硬件特征定制。
6、從指令級(jí)模擬器輸出動(dòng)態(tài)執(zhí)行的指令和地址流,經(jīng)過能耗估算模塊中的函數(shù)調(diào)用關(guān)系樹分析子模塊根據(jù)函數(shù)符號(hào)和指令起始/終止地址之間的映射信息和動(dòng)態(tài)執(zhí)行地址流信息,在線分析并構(gòu)造出函數(shù)調(diào)用關(guān)系樹。能耗估算模塊中的軟件構(gòu)件能耗估算子模塊,根據(jù)函數(shù)間的調(diào)用關(guān)系信息和單個(gè)函數(shù)能耗信息,合成所需要的任意粒度的軟件構(gòu)件能耗。
本發(fā)明的技術(shù)效果能夠在嵌入式軟件動(dòng)態(tài)模擬運(yùn)行期間收集軟件的指令和地址信息,結(jié)合微體系結(jié)構(gòu)部件的能耗估算模型,參照嵌入式軟件運(yùn)行期間指令地址與軟件構(gòu)件對(duì)應(yīng)關(guān)系得到軟件構(gòu)件的能耗估算。
下面結(jié)合附圖,對(duì)本發(fā)明做出詳細(xì)描述。
圖1為指令地址和軟件構(gòu)件的映射信息的獲取的流程圖;圖2為指令級(jí)模擬器的工作流程圖;圖3為微體系級(jí)模擬器的流水線結(jié)構(gòu)圖;
圖4為估算軟件中函數(shù)的能耗流程圖。
具體實(shí)施例方式
本發(fā)明利用模擬器估算嵌入式軟件能耗,該方法要用到兩個(gè)完成部分功能的模擬器1)一個(gè)指令級(jí)的全系統(tǒng)模擬器該全系統(tǒng)模擬器讀入編譯鏈接后生成的二進(jìn)制映像文件,通過模擬每條指令的執(zhí)行結(jié)果,來實(shí)現(xiàn)對(duì)嵌入式軟件的模擬執(zhí)行。本發(fā)明利用該模擬器獲得嵌入式軟件動(dòng)態(tài)執(zhí)行的信息(如指令流,地址流),用于后續(xù)的能耗分析。
2)一個(gè)微體系結(jié)構(gòu)級(jí)的處理器能耗模擬器該微體系結(jié)構(gòu)級(jí)的處理器能耗模擬器模擬了處理器內(nèi)部的流水線結(jié)構(gòu)和組成部件,以及指令流在流水線中訪問到的微體系結(jié)構(gòu)部件(如CACHE,ALU,TLB等部件的能耗),同時(shí)建立了各部件的能耗模型。本發(fā)明利用基本的指令在流水線上執(zhí)行過程的能耗信息,經(jīng)過處理,估算更高級(jí)別的軟件構(gòu)件的能耗。
以skyeye開源指令級(jí)模擬器和sim-panalyzer微體系結(jié)構(gòu)級(jí)模擬器為基礎(chǔ)的嵌入式軟件估算系統(tǒng),運(yùn)行在skyeye上的ARM-Linux嵌入式操作系統(tǒng)為實(shí)施實(shí)例1、獲取指令地址和軟件構(gòu)件之間的映射信息本發(fā)明首先要分析軟件中各構(gòu)件的符號(hào)信息和指令流地址的對(duì)應(yīng),從而實(shí)現(xiàn)動(dòng)態(tài)執(zhí)行軌跡與軟件語義的結(jié)合,為估算軟件構(gòu)件的能耗做準(zhǔn)備。
下面給出獲取指令地址和軟件構(gòu)件符號(hào)信息映射的具體步驟(1)把待估算軟件編譯成帶調(diào)試信息的可執(zhí)行文件(2)解析上面第1步得到的可執(zhí)行文件,獲得軟件構(gòu)件的地址信息與構(gòu)件的映射關(guān)系。得到類似下面格式的映射關(guān)系<軟件函數(shù)名,起始地址,結(jié)束地址>
圖1給出了指令地址和軟件構(gòu)件的映射信息的獲取的流程。
2、估算單流水線周期內(nèi)微體系部件的能耗用指令級(jí)模擬器運(yùn)行嵌入式軟件,從中捕獲動(dòng)態(tài)執(zhí)行的指令流的地址和指令碼;把這些信息經(jīng)過緩沖和速度匹配方式提供給微體系結(jié)構(gòu)能耗模擬器;用微體系結(jié)構(gòu)能耗模擬器模擬在流水線上模擬執(zhí)行每條指令,然后根據(jù)指令對(duì)微體系部件的訪問,獲得一個(gè)時(shí)鐘周期內(nèi)微體系部件的能耗。具體實(shí)施步驟如下1、從指令級(jí)模擬器中捕獲動(dòng)態(tài)執(zhí)行指令流和地址流指令級(jí)模擬器負(fù)責(zé)運(yùn)行軟件,載入軟件的可執(zhí)行二進(jìn)制代碼以后,指令級(jí)模擬器進(jìn)入一個(gè)大循環(huán),在這個(gè)循環(huán)中依次累加指令地址,從該地址取出指令,然后模擬指令執(zhí)行。
(1)地址流的獲取指令級(jí)模擬器在每個(gè)循環(huán)的開始依照PC(程序計(jì)數(shù)器)進(jìn)行地址變換,本發(fā)明在此處獲取指令地址,并緩存在地址流隊(duì)列中。
(2)指令流的獲取在地址變換完成后,指令級(jí)模擬器會(huì)按照變換得到的位置取指令,本發(fā)明在此處獲取指令并存入指令流隊(duì)列。
2、把指令流和地址流信息傳遞給微體系結(jié)構(gòu)能耗模擬器采用一個(gè)雙緩存隊(duì)列,當(dāng)指令和地址累積到一定數(shù)量時(shí)才一次性發(fā)送給微體系級(jí)模擬器。在緩存發(fā)送的過程中指令級(jí)模擬器和微體系結(jié)構(gòu)級(jí)模擬器的速度不一致,如果指令級(jí)模擬器太快將會(huì)導(dǎo)致指令地址流緩沖區(qū)溢出,本方法利用操作系統(tǒng)提供的IPC來解決這個(gè)問題,一旦指令級(jí)模擬器太快,操作系統(tǒng)將會(huì)阻塞指令級(jí)模擬器,使得微體系結(jié)構(gòu)級(jí)模擬器有足夠的時(shí)間來處理指令和地址流。
圖2給出了指令級(jí)模擬器的工作流程。
3、微體系結(jié)構(gòu)模擬器執(zhí)行每一條指令,獲取微體系結(jié)構(gòu)級(jí)別流水線部件的能耗。
從指令級(jí)模擬器獲得指令和地址后,微體系結(jié)構(gòu)級(jí)模擬器處理的方法和步驟(1)從雙緩沖隊(duì)列獲取指令流和地址流(2)把獲得的指令流交給微體系結(jié)構(gòu)流水線(3)流水線解讀指令并訪問微體系部件,同時(shí)計(jì)算被訪問部件的能耗。計(jì)算時(shí)機(jī)如下,參考圖3a)在取指階段,判斷指令是否在cache中,如果不在,這需要計(jì)指令cache和dtlb的能耗;b)在發(fā)射階段,要計(jì)算寄存器堆的能耗,數(shù)據(jù)dtlb和數(shù)據(jù)cache的能耗,同時(shí)根據(jù)指令的編碼,判斷指令要用到的運(yùn)算部件,比如加法指令就計(jì)算ALU的能耗,乘法運(yùn)算就計(jì)算MULT的能耗。
c)在執(zhí)行階段,計(jì)算邏輯部件的能耗,如果還涉及到數(shù)據(jù)操作,則還要計(jì)算數(shù)據(jù)cache和dtlb的能耗。如果更新了預(yù)測緩沖器,則還要計(jì)算bpred(預(yù)測緩沖器)的能耗。
d)在寫回階段要計(jì)算寄存器堆的能耗,要計(jì)算bpred(預(yù)測緩沖器)的能耗。
(4)在微體系流水線的最后一段,計(jì)算這一個(gè)流水線周期內(nèi)所有部件能耗的和。
3、軟件中函數(shù)的能耗在上述步驟中獲得了<函數(shù)名,起始地址,結(jié)束地址>信息和單個(gè)流水線周期各部件的能耗和總能耗,利用以上信息,來估算該指令所屬函數(shù)的能耗。參考圖4,具體步驟如下
(1)為每個(gè)函數(shù)建立一個(gè)結(jié)構(gòu),用來存放這個(gè)時(shí)間段內(nèi)該函數(shù)的能耗,初始化為0(2)在每個(gè)流水線周期取指令處,根據(jù)指令的地址(PC),對(duì)照軟件符號(hào)信息,可以得知該指令所屬函數(shù)。
(3)在流水線周期末尾把計(jì)算所得的單周期能耗歸屬給1)中計(jì)算得出的函數(shù)(4)在第一條指令運(yùn)行時(shí),找到該指令的歸屬函數(shù),并記錄這個(gè)函數(shù)為當(dāng)前函數(shù)(5)在下一次取指令時(shí),比較指令的歸屬函數(shù)是否變化,如果變化,則記錄新函數(shù)為當(dāng)前函數(shù)這樣隨著流水線的不斷循環(huán),最終能得到軟件函數(shù)的能耗估算。
4、處理器以外部件能耗模型的補(bǔ)充(1)內(nèi)存內(nèi)存能耗與其Active狀態(tài)成正比(idle狀態(tài)忽略不計(jì),因?yàn)閷?duì)軟件來講,內(nèi)存能耗消耗在對(duì)內(nèi)存的存取上)。內(nèi)存能耗還與訪問時(shí)間有關(guān),我們認(rèn)為時(shí)間與訪問內(nèi)存區(qū)域的大小成線性關(guān)系。所以得到一個(gè)計(jì)算公式E=a+b*size(a,b是常量,size是訪問區(qū)域大小)本發(fā)明在微體系結(jié)構(gòu)模型中如下處理內(nèi)存能耗1找到微體系機(jī)構(gòu)模型數(shù)據(jù)CACHE缺失處,插入計(jì)算內(nèi)存能耗的模塊。
2找到微體系機(jī)構(gòu)模型指令CACHE缺失處,插入計(jì)算內(nèi)存能耗的模塊。
(2)外設(shè)有一個(gè)能耗模型本發(fā)明目前提供了一個(gè)接口,可以添加外設(shè)功耗估算模塊。接口在微體系級(jí)模擬器的指令解碼處,只要在該處加入自己的過濾層,鑒別出該指令是訪問待估算外設(shè),就可以調(diào)用外設(shè)能耗估算模塊計(jì)算外設(shè)能耗。
5、估算更粗粒度的軟件構(gòu)件的能耗根據(jù)函數(shù)間調(diào)用關(guān)系信息和單個(gè)函數(shù)能耗信息,合成所需要的任意粒度的軟件構(gòu)件能耗。函數(shù)間調(diào)用關(guān)系信息可以是靜態(tài)分析源代碼產(chǎn)生的函數(shù)調(diào)用關(guān)系樹,也可以是在嵌入式軟件運(yùn)行時(shí),分析得到的運(yùn)行時(shí)函數(shù)調(diào)用關(guān)系樹,后一種方法獲得的能耗估算結(jié)果更為準(zhǔn)確。
在微體系結(jié)構(gòu)模擬器的流水線周期的最后一段,估算出嵌入式軟件中單個(gè)函數(shù)在處理器上運(yùn)行過程的能耗之后,進(jìn)一步估算更粗粒度的軟件構(gòu)件的能耗的步驟包括(1)從指令級(jí)模擬器輸出動(dòng)態(tài)執(zhí)行的指令和地址流,把這些信息提供給微體系結(jié)構(gòu)能耗模擬器的同時(shí),也提供給能耗估算模塊。能耗估算模塊中的函數(shù)調(diào)用關(guān)系樹分析子模塊根據(jù)函數(shù)符號(hào)和指令起始/終止地址之間的映射信息和動(dòng)態(tài)執(zhí)行地址流信息,在線分析并構(gòu)造出函數(shù)調(diào)用關(guān)系樹。
構(gòu)造運(yùn)行時(shí)的函數(shù)調(diào)用關(guān)系樹的具體實(shí)施步驟如下(a)利用堆棧結(jié)構(gòu)保存函數(shù)調(diào)用關(guān)系樹的節(jié)點(diǎn)信息。讀取第一條指令地址。
(b)用該地址在函數(shù)符號(hào)和指令起始/終止地址映射信息表中查找,確認(rèn)其對(duì)應(yīng)的函數(shù)符號(hào),建立節(jié)點(diǎn)作為軟件的根函數(shù)節(jié)點(diǎn)。并記錄該指令地址到PC變量里面。
(c)取下一條指令,當(dāng)前函數(shù)的起始/終止地址比較,判斷該指令是否仍然在該函數(shù)內(nèi)。
(d)如果該地址不在當(dāng)前函數(shù)內(nèi),并且當(dāng)前函數(shù)有父函數(shù),則判斷該地址是否在父函數(shù)內(nèi);如果不在父函數(shù)內(nèi),并且有祖父函數(shù),則判斷該地址是否在祖父函數(shù)內(nèi)。如果在父函數(shù)內(nèi),則將當(dāng)前函數(shù)節(jié)點(diǎn)出棧,表示當(dāng)前函數(shù)返回到父函數(shù)。如果在祖父函數(shù)內(nèi),則將當(dāng)前函數(shù)節(jié)點(diǎn)和父函數(shù)節(jié)點(diǎn)出棧。表示返回到祖父函數(shù)內(nèi)。輸出函數(shù)調(diào)用關(guān)系樹的一條記錄。
(e)如果該函數(shù)既不在當(dāng)前函數(shù),也不在父函數(shù)和祖父函數(shù),則用該地址在函數(shù)符號(hào)和指令起始/終止地址映射信息表中查找,確認(rèn)其對(duì)應(yīng)的函數(shù)符號(hào)。如果找到,就做在堆棧重壓棧,創(chuàng)建一個(gè)新節(jié)點(diǎn),當(dāng)前函數(shù)節(jié)點(diǎn)作為父節(jié)點(diǎn),如果父節(jié)點(diǎn)已有子節(jié)點(diǎn),就作為已有子節(jié)點(diǎn)的兄弟節(jié)點(diǎn)。并記錄該指令地址到PC變量里面。新節(jié)點(diǎn)變成當(dāng)前節(jié)點(diǎn)。
(f)返回(c),循環(huán)執(zhí)行這個(gè)過程。直至接收到按鍵中斷。完成運(yùn)行時(shí)的軟件函數(shù)調(diào)用關(guān)系樹的創(chuàng)建過程。
(2)能耗估算模塊中的軟件構(gòu)件能耗估算子模塊,根據(jù)函數(shù)間的調(diào)用關(guān)系信息和單個(gè)函數(shù)能耗信息,合成所需要的任意粒度的軟件構(gòu)件能耗。
權(quán)利要求
1.一種基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,包括分析嵌入式軟件中各構(gòu)件符號(hào)文件,獲取函數(shù)符號(hào)和指令起始/終止地址之間的映射信息;用指令級(jí)模擬器運(yùn)行嵌入式軟件,從中捕獲動(dòng)態(tài)執(zhí)行的指令流的地址和指令碼,把這些信息經(jīng)過緩沖和速度匹配方式提供給微體系結(jié)構(gòu)能耗模擬器,用微體系結(jié)構(gòu)能耗模擬器執(zhí)行指令流,獲取指令流在處理器上運(yùn)行過程中每個(gè)流水線周期內(nèi)的能耗;根據(jù)函數(shù)符號(hào)和指令起始/終止地址之間的映射信息,分析指令流地址信息,獲取每個(gè)函數(shù)的指令流信息,根據(jù)指令流在處理器上運(yùn)行過程中每個(gè)流水線周期內(nèi)的能耗,估算嵌入式軟件中每個(gè)函數(shù)在處理器上運(yùn)行過程的能耗。
2.如權(quán)利要求1所述的基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,其特征在于獲取指令地址和軟件構(gòu)件之間的映射信息的步驟包括(1)把待估算軟件編譯成帶調(diào)試信息的可執(zhí)行文件(2)解析上面第1步得到的可執(zhí)行文件和調(diào)試信息,獲得軟件構(gòu)件的地址信息與構(gòu)件的映射關(guān)系。得到類似下面格式的映射關(guān)系<軟件函數(shù)名,起始地址,結(jié)束地址>。
3.如權(quán)利要求1所述的基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,其特征在于從指令級(jí)模擬器獲得指令和地址后,微體系結(jié)構(gòu)級(jí)模擬器處理的步驟(1)從雙緩沖隊(duì)列獲取指令流和地址流;(2)把獲得的指令流交給微體系結(jié)構(gòu)流水線;(3)流水線解讀指令并訪問微體系部件,同時(shí)計(jì)算被訪問部件的能耗;(4)在微體系流水線的最后一段插入能耗估算模塊,能耗估算模塊同時(shí)采用地址流和待估算軟件的語義信息,計(jì)算微體系流水線周期內(nèi)所有部件能耗的和。
4.如權(quán)利要求1所述的基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,其特征在于當(dāng)嵌入式軟件調(diào)用訪存指令訪問內(nèi)存時(shí),利用內(nèi)存能耗模型,估算該次訪存的能耗,并與指令在處理器上運(yùn)行過程中產(chǎn)生的能耗相加,得到該訪存指令的能耗。
5.如權(quán)利要求1所述的基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,其特征在于當(dāng)嵌入式軟件調(diào)用訪存指令訪問外部設(shè)備時(shí),利用外設(shè)的能耗模型,估算該次訪問的能耗,并與指令在處理器上運(yùn)行過程中產(chǎn)生的能耗相加,得到該訪存指令的能耗。
6.如權(quán)利要求1、2、3、4或5所述的基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,其特征在于根據(jù)函數(shù)間的調(diào)用關(guān)系信息,累加軟件構(gòu)件的單個(gè)函數(shù)能耗信息,得到所需要的任意粒度的能耗。
7.如權(quán)利要求6所述的基于模擬器的嵌入式軟件運(yùn)行時(shí)能耗估算方法,其特征在于在嵌入式軟件運(yùn)行時(shí),獲得函數(shù)間的調(diào)用關(guān)系的步驟包括(1)從指令級(jí)模擬器輸出動(dòng)態(tài)執(zhí)行的指令和地址流;(2)把這些信息提供給微體系結(jié)構(gòu)能耗模擬器的同時(shí),也提供給能耗估算模塊;(3)能耗估算模塊中的函數(shù)調(diào)用關(guān)系樹分析子模塊根據(jù)函數(shù)符號(hào)和指令起始/終止地址之間的映射信息和動(dòng)態(tài)執(zhí)行地址流信息,在線分析并構(gòu)造出函數(shù)調(diào)用關(guān)系樹。
全文摘要
一種基于指令級(jí)模擬器和微體系結(jié)構(gòu)級(jí)模擬器的嵌入式軟件能耗估算方法,能夠在嵌入式軟件動(dòng)態(tài)模擬運(yùn)行期間收集軟件的指令和地址信息,結(jié)合微體系結(jié)構(gòu)部件的能耗估算模型,參照嵌入式軟件運(yùn)行期間指令地址與軟件構(gòu)件對(duì)應(yīng)關(guān)系得到軟件構(gòu)件的能耗估算。本發(fā)明能夠獲得嵌入式軟件各個(gè)粒度的能耗,即小到函數(shù),大到包括應(yīng)用軟件和操作系統(tǒng)的整個(gè)系統(tǒng),可以用于嵌入式軟件開發(fā)過程中的能耗估算和優(yōu)化。
文檔編號(hào)G06F11/36GK1766848SQ200510086808
公開日2006年5月3日 申請(qǐng)日期2005年11月8日 優(yōu)先權(quán)日2005年11月8日
發(fā)明者陳向群, 趙霞, 雷志勇 申請(qǐng)人:北京大學(xué)