《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 源碼級和算法級的功耗測試與優化
源碼級和算法級的功耗測試與優化
中電網
廖海艷 范明明
摘要: 軟件設計中,代碼優化是一件非常有意義的事情。優化的本質是對代碼進行等價變換,使變換前后的代碼運行結果相同,但變換后的代碼比變換前的代碼具有更多優越性能。傳統的觀點要求變換后的代碼運行速度較快或占用較少運行資源,或二者兼備。隨著嵌人式系統的快速發展,軟件功耗問題顯得越來越重要,應該將“省電”作為軟件優化的一項技術指標,這樣對軟件優化的評價體系才算完整。值得注意的是,大多數情況下性能和功耗并不矛盾,減少程序執行時間同樣會使程序功耗減少。
關鍵詞: 源碼級 算法 測試
Abstract:
Key words :

軟件設計中,代碼優化是一件非常有意義的事情。優化的本質是對代碼進行等價變換,使變換前后的代碼運行結果相同,但變換后的代碼比變換前的代碼具有更多優越性能。傳統的觀點要求變換后的代碼運行速度較快或占用較少運行資源,或二者兼備。隨著嵌人式系統的快速發展,軟件功耗問題顯得越來越重要,應該將“省電”作為軟件優化的一項技術指標,這樣對軟件優化的評價體系才算完整。值得注意的是,大多數情況下性能和功耗并不矛盾,減少程序執行時間同樣會使程序功耗減少。

在功耗優化這個問題上,研究者普遍比較關注硬件功耗優化,應用各種技術想方設法改進硬件的功耗,比如在芯片制造工藝上采用更精細的納米技術,不斷降低芯片驅動電壓,不斷改變片內系統結構等。事實上,整個系統的運行管理是由軟件體現的。在硬件基礎一定的情況下,只有將軟件系統對能量的損耗降至最小,才能使整個系統工作于最佳狀態。面向功耗的軟件優化方法是當前嵌入式系統低功耗研究領域的熱點。掌握軟件運行時的能量消耗特征、準確獲取能量消耗數據信息,是面向低功耗的軟件優化研究的前提。經過多年的努力,許多學者也提出了關于如何減少軟件功耗的方法。研究表明,軟件優化對降低功耗會有數量級的貢獻。針對同一任務,所選擇的算法不同或采用不同的實現方式,不僅性能有差別,能耗也大不一樣。因此在進行系統優化設計時,除了代碼的規模和執行性能之外,功耗也是一個需要認真考慮的問題。

1軟件功耗優化方法

常用的軟件功耗優化方法大致可分為以下4類:

(1)軟件體系結構級

不存在沒有體系結構的軟件。通常考慮軟件體系結構都是注重軟件的可修改性、可重用性和可靠性等問題,軟件體系結構的好壞直接關系到軟件性能的好壞。而且前,關于軟件體系結構對軟件功耗影響這方面的研究較少,用不同軟件體系結構開發出的軟件功耗會有差異,怎樣選擇合適的軟件體系結構使軟件功耗最小化,將成為軟件低功耗優化的重要研究方向。

(2)源程序級

C語言的源程序級功耗優化指的是實現同一功能的不同語句間的選擇。比如,同樣實現循環功能,有多種選擇(for、while、goto等)。這些語句的功耗會有差異,為了實現低功耗的軟件,應采用功耗最低的語句來完成相同的功能。這就需要對所有語句的功耗進行測試與研究。同時,對C語言不同數據類型操作的功耗進行分析。比如,同樣表示數目,可以用8位int型、16位int型和32位int型。再者,對不同變量的存儲類型功耗也要進行分析,如寄存器變量、靜態變量、自動變量等??傊?,在源碼級對軟件功耗進行優化是一個重要的研究方向。

(3)算法級

算法是為解決某個特定問題而定義的無二義性的操作序列,算法復雜性分析就是對算法運行時所消耗的計算機資源作量化的分析和預測。以往,程序設計者關心的資源主要是運行時間和存儲空間。由于能量消耗已成為軟件設計中的關鍵約束條件,因此本文將能耗作為一項重要資源,對算法運行時所消耗的能量進行分析和比較。

(4)編譯級

對于某個硬件來說,執行程序所產生的功耗取決于它的機器代碼,而機器代碼是從源代碼編譯而來的,這就說明編譯過程也影響了硬件的功耗。既然編譯器可以很大程度上控制硬件的運行軌跡,除了性能這一傳統的優化目標之外,編譯器也可以通過適當的調度優化,使得硬件執行某一個程序時的功耗變小。國際上對于低功耗編譯的歷史并不長,是從20世紀90年代初才開始研究的,這方面的文章最早出現于文獻[4-5],Tiwari等人在這些文章中提出了對軟件進行功耗分析的一些基本概念,建立了基本的指令級功耗模型,以486DX為例初步探討了低功耗編譯技術。

本文主要從源程序級和算法級這兩個方面對軟件功耗特征進行測試與分析,并根據分析結果對μC/OS-II進行源碼級的功耗優化。

2源碼級和算法級的功耗測試

測試環境是T.K.Tan等人研發的EMSIM,它是一個基于指令級的嵌入式軟件功耗模擬器,其主要的功耗估算思想是累計函數中所有單條指令的功耗作為該函數的總功耗。嵌入式硬件平臺是ARM公司的StrongARM110。EMSIM測試功耗的單位為函數,即它只能測試某個函數的功耗。在本文的測試中,將要測試的語句放入函數中,測得整個函數的功耗,記為E1,然后測試同樣參數及返回值的空語句函數的功耗,記為E2,最后計算得到語句的功耗為:E=E1-E2。

2.1源碼級的功耗測試

本小節對C語言的源碼級功耗進行測試,測試過程分為以下幾步:

①對每種數據類型的不同操作的功耗進行測試。要測試8位整型、16位整型、32位整型以及32位浮點型和64位浮點型的基本操作功耗。基本操作有:加、減、乘、除、取余、賦值、移位、與、或、非。此處測試的結果與處理器的位數有關,StrongARM110為32位精簡指令集系統,在此基礎上測試的結果如表1所列。

 

從表1可知,對于相同數據類型,加、減、乘、除和取余操作的功耗一樣,與、或、非操作的功耗一樣,而移位功耗最低。對于不同數據類型來說,32位數比16位數的操作功耗低,16位數比8位數的操作功耗低。32位浮點數與32位整形數的操作功耗一樣。在所有數據類型中64位浮點數的操作功耗最高。

測試環境的處理器StrongARM110為32位處理器,對8位數和16位數的處理要考慮字節對齊問題,而對32位就不用考慮該問題。

②對函數、內聯函數和宏定義的功耗進行測試。如表2所列,內聯函數和宏定義的功耗比一般函數的功耗低,CPU周期數及指令數也小。

 

③對相同功能不同實現語句的功耗進行測試。主要針對循環語句、選擇語句(二元和多元)、乘法、移位、除法、移位進行測試,測試結果如表3所列。


 

從表3可知,同樣實現循環功能,for循環的功耗比while、goto的要大,goto語句的功耗明顯最低;二元選擇運算中三目運算比if語句的功耗低,但是只能在單條賦值語句中使用三目運算,在復雜的多條語句的情況下,兩者功耗一樣;多元選擇運算中,switch語句比if…elseif…語句功耗低;寄存器變量的操作比自動變量的操作功耗低近50%,因為處理器從寄存器里直接讀取變量省去了反復從內存讀取變量的過程,從而達到降低功耗的目的。

2.2算法級功耗測試

算法級功耗測試是比源碼級功耗測試更高一層次的測試,不同的算法針對同一問題的考慮方面不同,如可靠性、易用性、時間復雜度、空間復雜度、功耗等。以往對軟件算法的研究著重在性能上面,本文把功耗作為主要考慮對象,研究算法對功耗的影響。為了便于討論,本文提出一具體問題,針對該問題提出5種不同的算法,然后分析這些算法對軟件功耗的影響。

問題描述:對于1字節的變量v,求其二進制表示中1的個數。

算法1:用除法和取余實現。對于二進制操作,除以2,原來的數將會減少1個0,如果在除的過程中有余,就表示當前位置為1。

算法2:使用與&(即移位>>)操作。&操作,把8位數字v與00000001進行與操作,如果結果為1,表示當前8位的最后1位為1,否則為0,然后再將v右移1位,循環進行。

算法3:使用與&操作,僅考慮v中1的個數。

算法4:使用分支操作,直接把0~255的情況都羅列出來,使用switch…case…,即可得到答案。

算法5:使用查表法,將0~255中1的個數直接存儲在數組Array中,v作為數組的下標,則Array[v]就是v中1的個數。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美成人免费在线观看| 亚洲一区二区三区精品在线| 国产视频久久久久| 亚洲高清免费在线| 在线成人av网站| 欧美伊人久久久久久午夜久久久久| 麻豆国产精品一区二区三区| 久久久噜噜噜久久中文字免| 欧美一区在线看| 亚洲午夜精品视频| 久久亚洲私人国产精品va| 国产日韩精品入口| 国产一区自拍视频| 欧美日韩午夜激情| 午夜日韩视频| 亚洲一区二区精品在线观看| 亚洲欧美www| 一本久道综合久久精品| 久久久99爱| 久久伊人精品天天| 一区二区三区国产| 老司机久久99久久精品播放免费| 欧美精品在线一区| 久久精品色图| 91久久精品美女| 亚洲一区3d动漫同人无遮挡| 亚洲欧美日韩精品在线| 久久久人成影片一区二区三区| 亚洲欧美一区二区在线观看| 亚洲欧美卡通另类91av| 欧美成人在线免费观看| 老司机精品导航| 欧美亚洲一区二区在线| 国产精品免费久久久久久| av成人免费在线| 久久免费视频一区| 欧美一级日韩一级| 亚洲欧美一区在线| 欧美三级网页| 亚洲欧美在线一区二区| 国产精品美女www爽爽爽| 亚洲区一区二| 亚洲欧美日韩精品综合在线观看| 香蕉久久精品日日躁夜夜躁| 亚洲卡通欧美制服中文| 国产精品久久国产三级国电话系列| 国产欧美日韩在线观看| 欧美精品久久99久久在免费线| 久久久精品一品道一区| 欧美日韩爆操| 欧美午夜激情视频| 欧美日本中文字幕| 国产精品婷婷午夜在线观看| 小黄鸭视频精品导航| 亚洲国产第一页| 在线观看免费视频综合| 亚洲精品久久久久久久久久久久久| 影音国产精品| 一本色道88久久加勒比精品| 欧美精品一区二区三区高清aⅴ| 亚洲精品欧美专区| 麻豆av一区二区三区久久| 狠狠色狠狠色综合| 每日更新成人在线视频| 国产精品久久久久999| 亚洲国产精品一区二区久| 亚洲最新合集| 欧美一区免费视频| 欧美精选在线| 欧美在线欧美在线| 国产精品日日做人人爱| 国产日韩欧美综合一区| 狠色狠色综合久久| 国产精品入口夜色视频大尺度| 亚洲欧美一区二区精品久久久| 亚洲网在线观看| 欧美在线视频a| 欧美日韩国产色综合一二三四| 亚洲永久精品大片| 国产日韩精品在线观看| 欧美色图首页| 欧美 日韩 国产精品免费观看| 国产精品久久久久久影院8一贰佰| 一区二区高清视频在线观看| 亚洲欧美日韩直播| 亚洲激情社区| 久久久一二三| 国产区日韩欧美| 国内精品久久久久久久影视蜜臀| 午夜精彩视频在线观看不卡| 国产视频自拍一区| 一本一本久久a久久精品牛牛影视| 尤物网精品视频| 亚洲精品中文字幕在线观看| 一区二区三区免费网站| 欧美乱在线观看| 韩国欧美一区| 性色av一区二区三区在线观看| 91久久久久久久久| 亚洲日本电影在线| 亚洲免费在线视频一区 二区| 久久精品亚洲一区二区三区浴池| 国产毛片久久| 亚洲免费大片| 1769国产精品| 亚洲电影免费观看高清完整版在线观看| 激情伊人五月天久久综合| 欧美午夜精品久久久久久人妖| 亚洲精品你懂的| 国产麻豆精品在线观看| 亚洲自拍偷拍麻豆| 国产精品裸体一区二区三区| 国产精品天美传媒入口| 在线观看日韩av电影| 欧美成人免费在线视频| 91久久综合亚洲鲁鲁五月天| 欧美在线视频二区| 久久久最新网址| 亚洲性图久久| 在线视频亚洲| 午夜日韩视频| 欧美成人精品一区二区| 亚洲国产老妈| 国产精品日日摸夜夜添夜夜av| 日韩一级欧洲| 久久黄色影院| 国产精品久久二区二区| 狠狠色丁香久久综合频道| 99热精品在线观看| 久久久无码精品亚洲日韩按摩| 欧美日韩成人在线| 欧美亚洲成人免费| 亚洲第一中文字幕在线观看| 欧美精品日日鲁夜夜添| 亚洲日本欧美日韩高观看| 在线观看视频免费一区二区三区| 久久gogo国模啪啪人体图| 欧美久久99| 国产精品一区亚洲| 欧美一级视频精品观看| 欧美成人午夜激情视频| 国产精品一区二区视频| 亚洲国产欧美一区二区三区久久| 国产精品福利网| 一本久久精品一区二区| 欧美精品久久久久久久| 亚洲精品乱码久久久久久久久| 一二三区精品福利视频| 在线精品高清中文字幕| 久久综合福利| 久久综合99re88久久爱| 欧美~级网站不卡| 亚洲欧美国产va在线影院| 欧美插天视频在线播放| 狠狠色丁香婷综合久久| 激情成人在线视频| 精品91久久久久| 国产自产高清不卡| 欧美在线看片a免费观看| 99人久久精品视频最新地址| 一区二区三区精品久久久| 国产日产亚洲精品系列| 亚洲天堂黄色| 在线播放精品| 欧美伊人精品成人久久综合97| 亚洲国产精品一区二区久| 国产人妖伪娘一区91| 亚洲国产一二三| 亚洲人成久久| 亚洲欧美激情一区| 国语自产精品视频在线看一大j8| 在线成人黄色| 久久久精品国产99久久精品芒果| 亚洲欧美国产另类| 欧美视频福利| 久久免费视频观看| 亚洲日本在线视频观看| 欧美日韩在线观看视频| 亚洲免费视频网站| 欧美一级一区| 亚洲图片在线观看| 国产一区二区三区无遮挡| 亚洲女同在线| 亚洲毛片一区| 午夜精品在线视频| 亚洲欧美日韩中文视频| 欧美成人激情视频免费观看| 久久久人成影片一区二区三区观看| 久久美女性网| 欧美一区二视频在线免费观看| 亚洲福利视频免费观看| 国外视频精品毛片| 久久一区二区三区超碰国产精品| 国产日韩综合一区二区性色av| 亚洲女性喷水在线观看一区| 99精品欧美一区二区三区综合在线| 欧美aa国产视频| 这里只有精品电影| 国产精品久久久久久久一区探花| 欧美日韩1区2区| 久久久久久久网| 欧美日韩午夜在线| 在线亚洲免费视频| 欧美性事免费在线观看| 久久精品国产69国产精品亚洲| 久久艳片www.17c.com| 午夜精品福利电影| 中文国产成人精品久久一| 欧美一区二区三区在线免费观看| 尤物yw午夜国产精品视频明星| 亚洲欧美视频一区二区三区| 欧美理论片在线观看| 亚洲精品永久免费| 亚洲欧美大片| 国产精品老女人精品视频| 久久aⅴ乱码一区二区三区| 亚洲精品国产精品久久清纯直播| 午夜精品免费| 亚洲国产美女精品久久久久∴| 久久精品国产精品亚洲综合| 亚洲欧洲免费视频| 蜜月aⅴ免费一区二区三区| 国产欧美一区二区三区久久| 香蕉av777xxx色综合一区| 欧美日韩在线观看一区二区| 国产欧美精品一区| 国产欧美亚洲精品| 国产日韩一区在线| 亚洲激情啪啪| 欧美成人伊人久久综合网| 伊人久久综合97精品| 欧美成人自拍| 亚洲免费福利视频| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲精品欧美激情| 国产精品捆绑调教| 一区二区三区高清在线观看| 久久久久久有精品国产| 久久久久成人网| 国产在线拍揄自揄视频不卡99| 黄色成人免费观看| 久久婷婷一区| 在线视频欧美一区| 欧美日韩一区二区视频在线| 国产精品资源在线观看| 国产精品久久久久久久久| 欧美大片在线影院| 亚洲欧美日韩久久精品| 一本久道久久综合狠狠爱| 欧美激情一区二区三区在线视频观看| 国产精品久久九九| 久久久99国产精品免费| 亚洲国产天堂久久综合网| 亚洲欧美国产高清va在线播| 欧美日韩一区二区三区视频| 欧美深夜影院| 欧美高清在线播放| 亚洲免费影院| 亚洲欧美成人综合| 欧美在线黄色| 亚洲一区二区三区中文字幕在线| 黑人巨大精品欧美一区二区小视频| 欧美成人亚洲成人日韩成人| 欧美本精品男人aⅴ天堂| 国产在线观看91精品一区| 亚洲女同性videos| 亚洲精品少妇网址| 国产精品a久久久久久| 国产精品国产自产拍高清av王其| 欧美成人tv| 久久精精品视频| 欧美亚洲尤物久久| 你懂的国产精品永久在线| 欧美一区二区成人6969| 久久精品欧美日韩精品| 国产精品成人一区二区三区吃奶| 欧美视频免费在线观看| 欧美精品乱码久久久久久按摩| 欧美日韩爆操| 模特精品在线| 国产视频精品网| 亚洲伦理在线免费看| 香蕉av福利精品导航| 国产精品午夜av在线| 久久久亚洲综合| 亚洲精品久久久久久久久久久| 国产精品网站一区| 国产区日韩欧美| 国产精品国内视频| 中日韩美女免费视频网址在线观看| 久久精品一区二区三区中文字幕| 亚洲电影在线观看| 欧美精品一卡二卡| 亚洲黄色三级| 亚洲欧美视频| 国产精品久久国产精麻豆99网站| 欧美freesex交免费视频| 欧美午夜在线一二页| 国产精品久久久久久久久借妻| 欧美三级日本三级少妇99| 久久天堂av综合合色| 欧美国产三级| 在线免费观看日本欧美| 亚洲欧美激情在线视频| 一本大道久久a久久精二百| 欧美一区二区大片| 国产综合色一区二区三区| 国产一区av在线| 欧美精品一区二区三区视频| 亚洲一区影院| 美女尤物久久精品| 国产亚洲a∨片在线观看| 国产精品一区二区久久| 亚洲欧美制服另类日韩| 欧美一区激情视频在线观看| 欧美日韩国语| 国产免费观看久久| 欧美日韩蜜桃| 国产精品人人爽人人做我的可爱| 亚洲欧美制服另类日韩| 国产亚洲欧美一区| 欧美日韩在线亚洲一区蜜芽| 国自产拍偷拍福利精品免费一| 国产欧美一区二区三区沐欲| 一区二区三区国产精品| 国产精品美女久久久浪潮软件| 欧美国产亚洲另类动漫| 欧美婷婷久久|