技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 嵌入式系統(tǒng)中軟件優(yōu)化的低功耗研究

嵌入式系統(tǒng)中軟件優(yōu)化的低功耗研究

時(shí)間:2008-09-26 17:10:00來(lái)源:dujing

導(dǎo)語(yǔ):?本文基于對(duì)嵌入式系統(tǒng)中軟件的優(yōu)化,提出一種對(duì)指令進(jìn)行重新排序的算法,以降低系統(tǒng)功耗。
摘要 :各種嵌入式處理器及SoC應(yīng)用于傳感器、手機(jī)、PDA等各種設(shè)備。每種設(shè)備都有其對(duì)執(zhí)行性能、體積、成本、功耗、散熱等的要求。其中,功耗、散熱問(wèn)題特別重要。本文基于對(duì)嵌入式系統(tǒng)中軟件的優(yōu)化,提出一種對(duì)指令進(jìn)行重新排序的算法,以降低系統(tǒng)功耗。 引言 從20世紀(jì)70年代世界上第一個(gè)為嵌入式應(yīng)用而設(shè)計(jì)的微處理器Intel 4004誕生以來(lái),嵌入式系統(tǒng)已經(jīng)發(fā)展了30多年。近幾年,嵌入式系統(tǒng)(embedded system)已經(jīng)成為電子信息產(chǎn)業(yè)中最具增長(zhǎng)力的一個(gè)分支。隨著手機(jī)、PDA、GPS、機(jī)頂盒等新興產(chǎn)品的大量應(yīng)用,嵌入式系統(tǒng)的市場(chǎng)正在以每年30%的速度遞增,嵌入式系統(tǒng)的設(shè)計(jì)也成為軟硬件工程師越來(lái)越關(guān)心的話題。 嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁減,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)[1]。在嵌入式系統(tǒng)的設(shè)計(jì)中,低功耗設(shè)計(jì)(Low-Power Design)是必須面對(duì)的問(wèn)題。其原因在于嵌入式系統(tǒng)被廣泛應(yīng)用于便攜式和移動(dòng)性較強(qiáng)的產(chǎn)品中,而這些產(chǎn)品不是一直都有充足的電源供應(yīng),往往靠電池來(lái)供電,所以應(yīng)從每一個(gè)細(xì)節(jié)來(lái)考慮降低功率消耗,盡可能地延長(zhǎng)電池的使用時(shí)間。事實(shí)上,從全局來(lái)考慮低功耗設(shè)計(jì)已經(jīng)成為了一個(gè)越來(lái)越迫切的問(wèn)題。 低功耗是便攜式電子設(shè)備必須具備的一個(gè)關(guān)鍵特性。過(guò)去幾年的研究主要針對(duì)硬件部分,而現(xiàn)在人們則更注重通過(guò)優(yōu)化軟件部分來(lái)降低系統(tǒng)功耗。要想對(duì)軟件進(jìn)行優(yōu)化,必須了解每條指令所產(chǎn)生的功耗,并選擇正確的編譯方法,以降低程序執(zhí)行的功耗。由于各種微處理器架構(gòu)不同,指令集和功耗也不一樣。因此,適用于某一處理器的優(yōu)化方式并不一定適用于其他處理器。這樣,選擇與可降低功耗的軟件相匹配的微處理器便十分重要。 1、編譯優(yōu)化 編譯器的作用是將由高級(jí)語(yǔ)言編寫(xiě)的程序,如C/C++等,翻譯成能夠在目標(biāo)機(jī)上執(zhí)行的程序。換句話說(shuō),編譯器為高級(jí)語(yǔ)言程序員提供了一個(gè)抽象層,使得程序員能夠通過(guò)編寫(xiě)與實(shí)際問(wèn)題相近的高級(jí)語(yǔ)言代碼(而不用匯編或者機(jī)器語(yǔ)言),方便地解決實(shí)際問(wèn)題;同時(shí),也使得程序的可讀性和可維護(hù)性得到保證,提高軟件開(kāi)發(fā)的效率。另外,將程序移植到新的目標(biāo)機(jī),也只要用相應(yīng)的編譯器對(duì)程序進(jìn)行重新編譯,而不必重新編寫(xiě)程序。 但是某些情況下,這樣的做法是以犧牲程序的執(zhí)行性能為代價(jià)的。編譯器的有效性以及它所生成的代碼效率,可以與專家級(jí)的匯編/機(jī)器語(yǔ)言程序員所編寫(xiě)的代碼相比較得出,因此可以通過(guò)對(duì)編譯器的優(yōu)化,生成效率更高的代碼。 通過(guò)優(yōu)化編譯器可以有效地降低嵌入式設(shè)備的功耗。在一個(gè)程序中,每一條指令都將激活微處理器中的某些硬件部件,因此,正確選擇指令可降低處理器的功耗。通過(guò)建立特定處理器架構(gòu)下指令集的功耗信息,利用“減少跳轉(zhuǎn)的指令重排序”等方法,可以進(jìn)行有效的軟件低功率優(yōu)化。 這里作兩點(diǎn)假設(shè):① 每一條指令都有一個(gè)固定量的功率;② 每條指令的散熱與它的操作數(shù)及其他指令無(wú)關(guān)。從圖1可以看到,通過(guò)對(duì)指令的重新排序,可以把一段程序的初始功率狀況,如圖1(a)所示,轉(zhuǎn)換成圖1(b)所示的那樣??梢缘贸鲞@樣的結(jié)論:盡管兩種情況中局部區(qū)域的散熱狀況不一樣,但是它們所消耗的總電能是一致的。換句話說(shuō),可以在不影響總耗電的情況下,對(duì)程序的局部散熱情況作出某些調(diào)整,以符合實(shí)際的需要。下面通過(guò)將指令進(jìn)行重新排序來(lái)實(shí)現(xiàn)系統(tǒng)功耗的降低[2]。 [align=center][img=303,142]http://www.e-works.net.cn/images/127973501637812500.GIF[/img] 圖1程序內(nèi)局部區(qū)域功率的兩種可能性[/align] 2、指令排序 我們知道,運(yùn)行某一特定程序的處理器的功率P=I×Vdd(I為平均電流,Vdd為給定的電壓),則程序的功耗E=P×t(t為程序的執(zhí)行時(shí)間);同時(shí),t=N×T(T為指令周期),即為主頻的倒數(shù),N為程序執(zhí)行的周期數(shù))。在嵌入式系統(tǒng),尤其是在移動(dòng)設(shè)備中,一般都通過(guò)電池供電,故系統(tǒng)的功耗是一個(gè)非常重要的指標(biāo)?,F(xiàn)在,Vdd和T都是已知量,因此程序消耗的電能E與電流I和程序周期數(shù)N的乘積成正比。這里通過(guò)引用參考文獻(xiàn)[3]中所建立的模型來(lái)進(jìn)行闡述。該模型中通過(guò)示波器等設(shè)備,測(cè)量并估計(jì)執(zhí)行每條指令所需要的電流I[4]。綜上所述,可以利用嵌入式處理器中的多數(shù)據(jù)存儲(chǔ)區(qū)域的特性,實(shí)現(xiàn)數(shù)據(jù)的并行處理,通過(guò)對(duì)指令的排序,減少指令的執(zhí)行周期,從而達(dá)到降低功耗的目的。 2.1 舉例 假設(shè)有一段C語(yǔ)言程序,如圖2(a)所示。圖2(b)是其相應(yīng)的匯編代碼,圖2(c)表示每個(gè)結(jié)點(diǎn)帶有兩個(gè)權(quán)值的數(shù)據(jù)依賴圖(Data Dependence Graph,DDG)。第一個(gè)權(quán)值表示結(jié)點(diǎn)在DDG中的深度,如V10的第一個(gè)權(quán)值為1,V0的第一個(gè)權(quán)值為6。假設(shè)這個(gè)權(quán)值越大,表示其優(yōu)先級(jí)越高,如圖2(c)中V0和V1具有最高的優(yōu)先級(jí)。 [align=center][img=375,265]http://www.e-works.net.cn/images/127973502079531250.GIF[/img] 圖2 C語(yǔ)言代碼、匯編代碼與數(shù)據(jù)依賴圖[/align]
圖3為未使用文中的算法前指令的執(zhí)行順序。注意,圖中的黑體字,即V2、V6以及V9,與其他指令不同。它們是ADD或者M(jìn)PY指令,需要用到系統(tǒng)的ALU部件。在同一指令周期中,可以同時(shí)執(zhí)行ALU運(yùn)算以及MOVE操作,但是不可以同時(shí)執(zhí)行兩個(gè)ALU操作。 [align=center][img=177,148]http://www.e-works.net.cn/images/127973502751562500.GIF[/img] 圖3 指令排序前結(jié)點(diǎn)的執(zhí)行順序[/align]
節(jié)點(diǎn)的第二個(gè)權(quán)值,表示相關(guān)寄存器的生命周期。如圖4所示,V0所依賴的寄存器是r0,它的生命周期為1到3,即為2。從圖中可以得出以下結(jié)論:此段程序總共需要11個(gè)指令周期和最少同時(shí)使用2個(gè)寄存器。 [align=center][img=357,237]http://www.e-works.net.cn/images/127973502926562500.GIF[/img] 圖4 指令排序前的狀況[/align]
圖5為基于本文的算法,將指令重新排序后的情況。程序總的執(zhí)行周期變?yōu)?,但是所占用的寄存器個(gè)數(shù)增加到3。由此也可以看到,程序的執(zhí)行周期與寄存器的個(gè)數(shù)之間也是一個(gè)折衷權(quán)衡的結(jié)果。 [align=center][img=347,380]http://www.e-works.net.cn/images/127973503075625000.GIF[/img] 圖5 基于排序算法后的情況[/align]
文中借用了參考文獻(xiàn)[3]中所建立的模型,用以計(jì)算程序的耗電量。在圖5中,程序執(zhí)行時(shí)所需要的總電流I=780 mA,總的執(zhí)行周期數(shù)為N=6,因此消耗電路E=N×I=6×780 mA=4 680 mA。不使用任何算法的情況,即圖2所示,E=N×I=1 080×11=11 880 mA。通過(guò)使用文中的算法,將程序執(zhí)行周期減少了,同時(shí)程序的功耗也降低了。也就是說(shuō),通過(guò)使用文中的算法,程序的執(zhí)行性能得到提高,系統(tǒng)的功耗也最大程度地得到了優(yōu)化。由此可見(jiàn),在這一層面上,采用何種算法是非常重要的。 2.2 算法描述 文中的算法是基于文獻(xiàn)[5]中提出的以串列為基礎(chǔ)的排序機(jī)制,主要是以減少程序的執(zhí)行周期為目的,同時(shí)考慮到使用盡量少的寄存器。程序的描述如下: ① 構(gòu)造數(shù)據(jù)依賴圖DDG。 ② 構(gòu)造帶權(quán)的元組,其中第一個(gè)權(quán)值為結(jié)點(diǎn)在DDG中的深度,設(shè)為P;第二個(gè)權(quán)值為生命周期,設(shè)為L(zhǎng)。 ③ 查找就緒表R(如圖3所示)。 ④ while就緒表R不為空 do P值為最高結(jié)點(diǎn)所具有的最高優(yōu)先級(jí) if當(dāng)前指令周期中的結(jié)點(diǎn)的深度

3、結(jié)論 近年來(lái),功耗成為嵌入式應(yīng)用領(lǐng)域的一個(gè)越來(lái)越令人關(guān)注的問(wèn)題。尤其是在移動(dòng)設(shè)備中,由于通過(guò)電池供電,功耗顯得尤為重要。當(dāng)前的編譯器很少能夠充分利用處理器的各種特性,因此編譯生成的代碼不能與那些專家級(jí)匯編程序員寫(xiě)出的代碼相提并論。本文從軟件角度出發(fā),提出了一個(gè)優(yōu)化編譯器,對(duì)指令進(jìn)行重新排序的算法,通過(guò)優(yōu)化編譯器來(lái)實(shí)現(xiàn)降低系統(tǒng)的功耗。下一步工作則要選擇和研究某種特定的微處理器,然后創(chuàng)建相關(guān)工具,產(chǎn)生這種微處理器的指令集功耗信息,再進(jìn)一步運(yùn)用該算法實(shí)現(xiàn)編譯優(yōu)化,最終實(shí)現(xiàn)功耗的優(yōu)化。 參考文獻(xiàn) [1] Wayne Wolf. 嵌入式計(jì)算系統(tǒng)設(shè)計(jì)原理. 孫玉芳等譯. 北京:機(jī)械工業(yè)出版社,2002 [2] Sathishkumar Udayanarayanan. Energyefficient code generation for DSP56000 family, MS. Thesis in Arizona State University (Aug. 2000) [3] Gibbons P A, Muchnick S S. Efficient Instruction Scheduling for a Pipelined Processor, in Proc. of the SIGPLAN Symposium on Compiler Construction (July1986), pp. 11-16 [4] Ulrich Kremer. Low Power/Energy Compiler Optimizations [5] Wen Tsong Shiue. Retargetable Compilation for Low Power王力生,碩士生導(dǎo)師。夏志江,碩士:主要研究方向?yàn)榍度胧较到y(tǒng)及其應(yīng)用。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:嵌入式系統(tǒng)引導(dǎo)技術(shù)研究

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)