當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] 內(nèi)容摘要:在強調(diào)便攜式設(shè)備的電池壽命時,看起來比較奇怪是,很少有軟件工程師在其日常項目任務(wù)中真正做到了減少能耗。我猜想對這個課題有所想法的那些人可能都是本著榮辱自擔(dān)的想法才關(guān)注此課題的。

內(nèi)容摘要:在強調(diào)便攜式設(shè)備的電池壽命時,看起來比較奇怪是,很少有軟件工程師在其日常項目任務(wù)中真正做到了減少能耗。我猜想對這個課題有所想法的那些人可能都是本著榮辱自擔(dān)的想法才關(guān)注此課題的。我們到了要做些改變的時期。隨著電池壽命和性能要求的矛盾持續(xù),我們作為軟件工程師不得不要用更多時間來找出如何才能以節(jié)能方式來設(shè)計和編寫我們的軟件,至少在工具能滿足我們要求之前需要這樣做。


我們這些軟件工程師都熱衷于為我們遇到的問題找出完美的解決方案。但奇怪的是,我們會發(fā)現(xiàn)在這個特定的領(lǐng)域,沒有一個完美的解決方案。聰明的技巧可能會節(jié)省一些功率,但是這個領(lǐng)域是由其他更簡單的因素支配的。就象房間里有幾頭很大的大象,我們必須要先小心翼翼地獵取我們可以看到的大象,然后再花精力去獵捕體型小的動物。

在考量某個系統(tǒng)的功耗時,重要的是要弄清楚我們實際測量的對象是什么。我們說的“節(jié)省功耗”可能意味著幾個方面。它意味著“功率”還是“能量”。實際上,我們既需要功率也需要能量。大多數(shù)手持便攜式設(shè)備均具有以下兩個不同的預(yù)算:功率預(yù)算——它管理著瞬間功耗、避免過熱或產(chǎn)生熱應(yīng)力,而能量預(yù)算則管理著長期使用的能量總數(shù)。而軟件則需要滿足短期的功率預(yù)算和長期的能量預(yù)算。

很明顯,我們可以把任何設(shè)備的功耗降低到接近零,只要不讓它做任何操作或任何有意義的操作即可!不得已的是,實現(xiàn)有用的功能就需要耗費能量。因此,我們只能在有意義的操作和節(jié)能二者中不斷采取折衷方案。為了實現(xiàn)所需的功能,我們必須耗能;但我們必須盡量確保以節(jié)能的方式來實現(xiàn)這些功能。

功耗時間積 有關(guān)該主題的學(xué)術(shù)材料中常用的更好度量方式是采用“功耗時間積”。盡管既沒有標(biāo)準(zhǔn)單位也沒有具體方法,但是這種度量方式將能耗和性能度量結(jié)合到了一起。增加能耗或降低性能會增加功耗時間積的值,因此我們的目標(biāo)是找出最低的可接受的功耗時間積的值,換句話說,最低的能耗要與允許的時間內(nèi)所需任務(wù)的執(zhí)行保持一致。

能量去哪兒了? 所有計算器械均會執(zhí)行兩個基本功能。這兩個功能都是必需的,沒有這兩個功能就不能完成任何有意義的任務(wù)。

我們首先想到的自然是計算或數(shù)據(jù)處理。通常,計算是對機器寄存器中保存的值實施的操作。為了盡可能高效地實施計算任務(wù),我們需要在最短的時間內(nèi)執(zhí)行最少的指令。最重要的是,高效計算允許以下二選一:要么我們可以早點完成計算去睡覺,要么我們調(diào)慢時鐘且仍然在規(guī)定時間內(nèi)完成計算任務(wù)。

這里經(jīng)常被人忽視的是數(shù)據(jù)通信(數(shù)據(jù)移動)。在大多數(shù)架構(gòu)中(A R M采用加載/存儲架構(gòu),也不例外),數(shù)據(jù)移動是必需的。如果不將信息從一個位置移動到另一個位置且經(jīng)常返回原來的位置,用戶就無法處理任何信息。例如,內(nèi)存中的值需要移動到寄存器中進(jìn)行處理,然后把結(jié)果寫回到內(nèi)存中。

但是哪個耗用的能量更多呢?最大的償付在哪兒?

圖1顯示了普遍存在的事實,與程序有關(guān)的內(nèi)存存取操作中有大約60%是指令抓取,另外40%才是數(shù)據(jù)存取。

圖1:內(nèi)存存取分布

圖2:內(nèi)存存取能耗

圖2顯示了A R M進(jìn)行的一些研究。如果執(zhí)行一條指令的能耗是1,那么,緊耦合存儲器(TCM)存取的能耗約為1/25,緩存存取的能耗大約為1/6。而外部R A M存取的能耗則是指令執(zhí)行能耗的7倍。

換言之,對于每次外部R A M存取所用的能耗,我們可以執(zhí)行7條指令,40次緩存存取或大約170次TCM存取。

計算廉價但通信昂貴

因此,似乎數(shù)據(jù)移動要比數(shù)據(jù)處理更昂貴。因此,第一頭大象就是數(shù)據(jù)效率。

我們可以為內(nèi)存存取的能耗管理提出兩個規(guī)則。

近距離 - 從能量角度講,內(nèi)存越靠近核心,訪問內(nèi)存的相對能耗越低。

少存取 - 減少內(nèi)存存取次數(shù)比減少指令數(shù)量更加重要。

充分利用片上存儲器

從我們的能量圖可以清楚地看出,TCM是到目前為止系統(tǒng)具有的最高效存儲器類型。不是所有的系統(tǒng)均具有A R M稱為TCM的存儲器(通過專用和優(yōu)化的接口連接到內(nèi)核),但是大部分系統(tǒng)至少具有某種片上快速存儲器類型。為了便于討論,我們指的是常見的片上存儲器(SPM)。假定S PM單次存取能耗大約是外部R A M存取能耗的1/170,充分利用這種SPM存儲器應(yīng)該是首選。

圖3:SPM的能量優(yōu)勢

圖3中的圖表顯示了簡單的“多類”基準(zhǔn),甚至128個字節(jié)的S PM區(qū)域都可以減少大約一半的功耗。1k字節(jié)的存儲器最大可減少70%的功耗。本次研究(Mar wedel, 2004)中采用的方法是從外部R AM到S PM動態(tài)重定位代碼和數(shù)據(jù)片段。甚至在按需移動各項開銷方面,不僅降低了能耗,性能也提高了大約60%。

很顯然,我們在某個點上正在損失回報。這種情況下,S PM超過1k時,性能提升幅度變緩,系統(tǒng)總能耗也會稍微升高。在這里,我們實際上在承擔(dān)這種特定應(yīng)用無法使用的S P M能耗,因為這種應(yīng)用程序本身并不夠大。

您還可以注意到,在結(jié)合了所使用的分配算法時,這種特定的應(yīng)用無法使用小于64字節(jié)的S P M區(qū)域,因為沒有足夠小的可用片段與之相配。本次研究中還展示了一個更加成熟的算法,可以在最佳狀況下節(jié)省能耗可以超過80%。

永遠(yuǎn)做緩存友好的事

分析緩存優(yōu)點有時可能比分析S PM優(yōu)點更加復(fù)雜。一方面,緩存基本上是自我管理的。另一方面,緩存不是對單個存儲位置進(jìn)行操作,而是對固定大小的“線路”進(jìn)行操作。因此,訪問單個可緩存的存儲位置可能加載整條線路,從而造成突發(fā)的內(nèi)存存取。如果該附加的數(shù)據(jù)從未被訪問過,則所消耗的能量就浪費了。

另一個不利之處是緩存所需的其他邏輯成本(就硅片面積和功耗而言)。

圖4:緩存的能量優(yōu)勢

圖4摘自普林斯頓(Brooks,2000)一份論文,顯示了針對某簡單應(yīng)用基準(zhǔn)的三套數(shù)據(jù)。針對不同的緩存大小,這些條塊分別代表性能IP C(單位周期指令數(shù))、功耗和功耗時間積(ED P)??偟膩碚f,性能會隨著緩存大小的增加而提升。但是,系統(tǒng)的功耗也會增加,因為增大緩存單元會相應(yīng)增加功耗。功耗時間積允許我們在性能和緩存大小之間取得平衡。在這個例子里,存在一個最佳點,即緩存大小為64k時,此時的功耗時間積最小。

最大限度減少數(shù)據(jù)內(nèi)存存取

A RM架構(gòu)的一個特性是其常量是不確定的,特別是,不可能用單條指令把一個任意32位常量放到一個寄存器中。實際上,所有內(nèi)存存取必須按寄存器中的地址操作,這就意味著程序需要把這些地址和其他常量頻繁地放到寄存器中,而這一點很難做到。解決此問題的標(biāo)準(zhǔn)方法是把常量作為文字?jǐn)?shù)據(jù)嵌入到代碼段中,在運行時使用PC相關(guān)的加載進(jìn)行加載。

因此,這種最大限度減少常量影響的方法很實用。確保在編譯時這些常量是已知的,如果可能,最好能把這些常量嵌入到單條ARM指令中。為了存取全局變量,盡可能減少加載基址指針的需求。這就需要確保全局變量在運行時都在內(nèi)存中,這樣才能使用單個指針存取多個變量。實現(xiàn)這個目標(biāo)最簡單的方式是將全局變量放到一個結(jié)構(gòu)中。

盡管A R M的堆棧訪問相對高效(堆棧訪問可較好地加載和存儲多條指令),但是程序員還可以通過很多方式來減少堆棧訪問:減少活動變量、避免占用本地變量地址、可能時充分利用尾部調(diào)用優(yōu)化、將傳遞到函數(shù)的參數(shù)數(shù)量減少到四個以下、允許編譯器主動內(nèi)聯(lián)函數(shù)等。

遞歸情形和避免遞歸情形的做法更加復(fù)雜。通常編譯器可以對歸函數(shù)很好地進(jìn)行尾部優(yōu)化。實際上將所有數(shù)據(jù)存儲到堆棧中可以比其他做法獲得更好的局部性?;蛟S建議可能最好表達(dá)為“除非其他做法讓數(shù)據(jù)局部性更糟或您確信編譯器可以對遞歸調(diào)用進(jìn)行尾部優(yōu)化,否則不要使用遞歸算法”。應(yīng)編寫異常處理程序,增加尾部連鎖的機會,進(jìn)而避免堆棧環(huán)境內(nèi)不必要的保存和恢復(fù)。

現(xiàn)在我們把注意力轉(zhuǎn)到這個問題的第二頭大象,即指令執(zhí)行。

最大限度減少指令數(shù)目

事實上,減少指令執(zhí)行次數(shù)本質(zhì)上與性能優(yōu)化是相同的,執(zhí)行的指令數(shù)越少,能耗就越低。另外,還要增加一些明顯的指針。

首先,正確地配置工具。在編譯器和鏈接器完全了解目標(biāo)平臺,甚至無法實施一些基本的優(yōu)化。

編寫代碼時要保持敏銳,才能避免不必要的操作。對于A R M架構(gòu),32位數(shù)據(jù)類型是高效的:一般8位和16位數(shù)據(jù)類型,盡管占用的存儲空間

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉