當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于嵌入式Linux的智能手機(jī)省電設(shè)計(jì)

每個(gè)系統(tǒng)要正常運(yùn)行都有賴于CPU 的性能, 系統(tǒng)軟件, 中間件一集各種系統(tǒng)策略等等, 智能手機(jī)也是一樣。這篇文章主要探討了給智能手機(jī)選擇合適的CPU, 以及在手機(jī)電源管理中的動(dòng)態(tài)電源管理(DPM) 和自適應(yīng)電壓調(diào)整(AVS) 技術(shù)。最后, 我還對(duì)手機(jī)軟件設(shè)計(jì)進(jìn)行一點(diǎn)優(yōu)化工作, 實(shí)現(xiàn)了軟件的節(jié)能設(shè)計(jì)。

  引言

  智能手機(jī)中包含了很多耗能設(shè)備, 諸如MP3、MPEG- 4、Wi-Fi、數(shù)碼相機(jī)、3D 游戲等等。在手機(jī)電池容量還沒(méi)有實(shí)現(xiàn)質(zhì)的飛躍的前提下, 我們不得不考慮手機(jī)電源節(jié)能的問(wèn)題。我主要通過(guò)了以下四個(gè)方面來(lái)闡述在基于Linux平臺(tái)上的智能手機(jī)的解決方案。

  CPU 的選擇

  盡管現(xiàn)在有了各種在不過(guò)多加重功耗負(fù)擔(dān)的前提下提高性能的技術(shù), 但用一個(gè)芯片來(lái)處理這么多各種各樣的任務(wù), 恐怕已經(jīng)不是一個(gè)很好的選擇了。一是因?yàn)檫@些功能對(duì)芯片處理功能的要求可能各不相同, 二是因?yàn)橐粋€(gè)負(fù)擔(dān)著如此眾多任務(wù)的芯片勢(shì)必需要很高的速度, 降低功耗變得很困難。

  在這種情況下, 多CPU 系統(tǒng)(MPCore)成為一個(gè)必然的趨勢(shì)。多CPU 系統(tǒng)的一個(gè)明顯的優(yōu)勢(shì)是: 針對(duì)不同的任務(wù)處理需要, 不同的CPU 可以各盡其職, 將自身的優(yōu)勢(shì)充分發(fā)揮, 由此帶給手機(jī)最優(yōu)化的性能表現(xiàn)。另一個(gè)優(yōu)勢(shì)顯然還是體現(xiàn)在對(duì)功耗的控制上: 假如用單CPU 來(lái)完成所有的功能, 不可避免地需要一個(gè)很高的CPU 速度, 從而造成很高的功耗。用一顆高速CPU 來(lái)完成這樣的任務(wù), 無(wú)疑是大牛拉小車(chē), 同時(shí)浪費(fèi)很多能源。多CPU 系統(tǒng)可以根據(jù)不同的任務(wù)需要合理地啟動(dòng)、停止相應(yīng)的CPU 來(lái)完成任務(wù),不需要的時(shí)候處于停歇狀態(tài), 實(shí)現(xiàn)最大限度地控制功耗。

  既然我們選擇了多CPU 的架構(gòu), 那么接下來(lái)CPU 的性能就是我們要考慮的第二大問(wèn)題。一般的情況下, 我們是在CPU 的性能( Performance) 和功耗( Power Consumption) 方面進(jìn)行比較和選擇。通常可以采用每執(zhí)行1M次指令所消耗的能量來(lái)進(jìn)行衡量, 即Watt/MIPS。

  我們把CPU 的功率消耗分為兩大部分: 內(nèi)核消耗功率PCORE和外部接口控制器消耗功率PI/O, 總的功率等于兩者之和, 即PPCORE+PI/O。對(duì)于PCORE, 關(guān)鍵在于其供電電壓和時(shí)鐘頻率的高低; 對(duì)于PI/O 來(lái)講, 除了留意各個(gè)專門(mén)I/O 控制器的功耗外, 還必須關(guān)注地址和數(shù)據(jù)總線寬度。

  在數(shù)字集成電路設(shè)計(jì)中, CMOS 電路的靜態(tài)功耗很低, 與其動(dòng)態(tài)功耗相比基本可以忽略不計(jì)。CMOS 電路動(dòng)態(tài)功耗的計(jì)算公式如下:

  Pd=CT*V2*f, 其中Pd 是CMOS 芯片的動(dòng)態(tài)功耗, C是CMOS芯片的負(fù)載電容, V 是CMOS 芯片的工作電壓, f 是CMOS 芯片的工作頻率。

  由上可見(jiàn), 當(dāng)CPU 確定后, 我可以通過(guò)降低頻率和電壓來(lái)減少系統(tǒng)的功耗。

  在CPU 的選擇方面, 我們推薦采用Intel 的Xscale 芯片, 以及IBM的PowerPC405G 芯片。

  動(dòng)態(tài)電源管理(DPM)

  系統(tǒng)不可能始終處于滿負(fù)荷狀態(tài), 因?yàn)橄到y(tǒng)的工作量隨時(shí)都在改變。動(dòng)態(tài)電源管理(DPM) 通過(guò)選擇性的將空閑的系統(tǒng)組件置于低能耗狀態(tài)實(shí)現(xiàn)了系統(tǒng)整體能耗的最優(yōu)化。

  我們更為關(guān)注的是DPM在Linux 框架結(jié)構(gòu)下的實(shí)現(xiàn)。圖1 展示了電源管理和嵌入式Linux 堆棧之間的關(guān)系。

電源管理和嵌入式Linux 堆棧之間的關(guān)系

  以下是一些于電源管理相關(guān)的接口以及API:

  內(nèi)核接口。在針對(duì)Linux 的DPM 架構(gòu)中, 內(nèi)核中的DPM 子系統(tǒng)負(fù)責(zé)維持系統(tǒng)的電源狀態(tài), 并把DPM 系統(tǒng)的各個(gè)電源得到管理的元件聯(lián)系在一起。DPM 子系統(tǒng)通過(guò)多個(gè)API 直接與設(shè)備驅(qū)動(dòng)程序通信, 這些API 把驅(qū)動(dòng)程序從完全運(yùn)行狀態(tài)轉(zhuǎn)為各種電源得到管理的狀態(tài)。策略管理器( 或應(yīng)用軟件自身) 通過(guò)多個(gè)API向DPM 子系統(tǒng)提供指導(dǎo), 這些API 定義各種策略, 并在定義好的運(yùn)行點(diǎn)之間轉(zhuǎn)移整個(gè)系統(tǒng)。

  驅(qū)動(dòng)程序接口。啟用了DPM 的設(shè)備驅(qū)動(dòng)程序比默認(rèn)驅(qū)動(dòng)程序具有更多“狀態(tài)”: 由外部事件通過(guò)各種狀態(tài)來(lái)驅(qū)動(dòng)它們, 或通過(guò)來(lái)自內(nèi)核DPM 子系統(tǒng)的回調(diào)來(lái)驅(qū)動(dòng)它們, 從而反映并遵循運(yùn)行策略。驅(qū)動(dòng)程序API 還允許驅(qū)動(dòng)程序登記它們連接和管理的各個(gè)設(shè)備的基本運(yùn)行特征, 從而實(shí)現(xiàn)更精細(xì)的策略決策。

  用戶程序API, 用戶程序( 應(yīng)用軟件) 分為三類:

  (1)可感知電源管理的應(yīng)用軟件;

  (2)可感知電源管理的“包裝器”中的傳統(tǒng)應(yīng)用軟件;

  (3)不帶電源管理的傳統(tǒng)應(yīng)用軟件。

  可感知電源管理的應(yīng)用軟件能夠充分利用來(lái)自策略管理器的API, 從而建立各自的基礎(chǔ)約束, 并強(qiáng)制電源管理策略發(fā)生變化, 以便匹配各自的執(zhí)行要求。不直接帶有電源管理功能的傳統(tǒng)應(yīng)用軟件可以“包裝”到代碼或補(bǔ)丁中, 從而實(shí)現(xiàn)相當(dāng)?shù)男Ч? 它們還可以按照默認(rèn)行為來(lái)運(yùn)行, 這取決于更寬范圍的默認(rèn)策略管理。
 
嵌入式LinuxDPM 下的實(shí)際機(jī)制包括各種API, 比如dpm_set_os ()( 內(nèi)核) 、assert_constraint ()、remove_constraint () 和set_operating_state () ( 內(nèi)核和驅(qū)動(dòng)程序) 、set_policy () 和set_task_state()( 經(jīng)由系統(tǒng)調(diào)用的用戶級(jí)接口) , 以及/proc 接口。

  電源管理策略在系統(tǒng)電源管理中扮演了極為關(guān)鍵的角色。DPM的策略抽象模型的執(zhí)行體系類似于狀態(tài)機(jī)。在DPM中有2個(gè)概念很重要: 一個(gè)是執(zhí)行點(diǎn)(operating points), 另一個(gè)是執(zhí)行狀態(tài)( operating states) 。DPM的執(zhí)行點(diǎn)來(lái)自一些獨(dú)立的系統(tǒng)參數(shù), 包括執(zhí)行電壓, 頻率, 以及總線帶寬等等。隨著事件的改變, 系統(tǒng)的狀態(tài)也不斷的改變( 如圖2 所示) 。在DPM中, 每個(gè)系統(tǒng)狀態(tài)都是一個(gè)執(zhí)行狀態(tài), 包括空閑態(tài)、活動(dòng)態(tài)和睡眠態(tài)。

系統(tǒng)的狀態(tài)不斷的改變

  自適應(yīng)電壓調(diào)整(AVS)

  在CPU 的選擇部分, 我們知道了系統(tǒng)能耗是與電壓和頻率緊密相關(guān)的?,F(xiàn)在我們來(lái)探討一下調(diào)整電壓在降低能耗方面的作用。在電壓調(diào)整方面, 自適應(yīng)電壓調(diào)整是一種很有效的方法。自適應(yīng)電壓調(diào)整AVS(Adaptive Voltage Scaling)是通過(guò)反饋機(jī)制將電源電壓調(diào)整到給定工作負(fù)載(處理量)所需的最小值。這種閉環(huán)方式可進(jìn)一步減小功耗, 但需要將部分電源管理電路置入主處理器。

  成功實(shí)現(xiàn)AVS 的關(guān)鍵是在基帶芯片中集成部分系統(tǒng)電源管理電路, 即內(nèi)置AVS 控制器(圖3)。這一關(guān)鍵模塊包含專門(mén)的電路和算法, 用來(lái)確定給定處理量下的最優(yōu)電壓。通過(guò)向電壓調(diào)整器的參考端輸入饋送誤差信號(hào), 可以生成最優(yōu)的VDD, 無(wú)需提供不必要的電壓余量, 從而減少了電能損耗。對(duì)任何閉環(huán)方法來(lái)說(shuō), 環(huán)路帶寬都是很重要的。環(huán)路快速跟蹤并穩(wěn)定的能力決定了基帶電源動(dòng)態(tài)調(diào)整以自適應(yīng)工作負(fù)載突變的能力。

內(nèi)置AVS 控制器

  通過(guò)軟件方法降低設(shè)備功耗

  低能耗軟件優(yōu)化對(duì)于基于處理器系統(tǒng)的應(yīng)用程序而言, 是最有發(fā)展前途的降低系統(tǒng)能耗的技術(shù)方法。這種方法對(duì)于那些計(jì)算復(fù)雜度較高的應(yīng)用程序最為有效。因?yàn)橹挥性趹?yīng)用程序執(zhí)行的時(shí)候, 才會(huì)消耗大量電源。

  這項(xiàng)技術(shù)的最終目的是在執(zhí)行較為復(fù)雜的應(yīng)用程序時(shí), 盡量降低能耗。我們的程序用于降低計(jì)算的復(fù)雜度, 但不能改變程序原本的行為?,F(xiàn)在我們通過(guò)圖4(A) 中的例子, 來(lái)闡述一下一些有關(guān)軟件優(yōu)化的想法。

通過(guò)軟件方法降低設(shè)備功耗

  考慮主函數(shù)中第一次調(diào)用過(guò)程test。如果檔參數(shù)a 和差數(shù)k都是0 的概率為90%, 我們可以將源代碼改寫(xiě)為圖4(B) , 通過(guò)改寫(xiě), 我們減少了test 過(guò)程中的循環(huán)數(shù)。但在現(xiàn)實(shí)中, 參數(shù)a 和k 并不是總是為0。那么test 的過(guò)程調(diào)用不能被新的過(guò)程sp_test 所完全替代。我們用一個(gè)條件語(yǔ)句來(lái)限定過(guò)程的調(diào)用, 所有的過(guò)程調(diào)用依賴于cvd_test()的結(jié)果。當(dāng)過(guò)程cvd_test()檢測(cè)為一般情況( a,k同時(shí)為0) , 符合此條件的修正后的代碼被執(zhí)行。如果當(dāng)過(guò)程cvd_test()檢測(cè)為非一般情況( a,k 非同時(shí)為0) , 原有的代碼被執(zhí)行。在另一方面, 當(dāng)過(guò)程cvd_test()檢測(cè)為非一般情況, 我們提升了程序的計(jì)算復(fù)雜度, 也相應(yīng)提高了能耗。

  一般而言, 對(duì)代碼優(yōu)化有各種各樣不同的方法。如果我不考慮參數(shù)k, 我們可以將源代碼轉(zhuǎn)化為圖4(C) 所示。a 為0 的概率大于a 和k 同時(shí)為0 的概率。在不同情況下, 對(duì)原有代碼所做的修改有不同的效果。

  最后, 我們必須檢驗(yàn)修改過(guò)的代碼對(duì)原有代碼的影響, 是不是改變了原有代碼的行為, 在任何條件下我們都不能去擅自改變?cè)写a的行為。代碼質(zhì)量的提升也是相當(dāng)?shù)闹匾?。?duì)于C 語(yǔ)言來(lái)說(shuō), 將一些簡(jiǎn)單的函數(shù)轉(zhuǎn)換為宏定義時(shí)一種比較有效的方法。

  綜上所述, 我們可以將一般情況下代碼優(yōu)化分為4 個(gè)步驟:

  (1)一般案例的選擇。選擇最有效的、最長(zhǎng)被調(diào)用的案例。

  (2)一般案例的提煉。為給出的一般案例建立一個(gè)過(guò)程。

  (3)全局檢測(cè)。檢測(cè)改變后的調(diào)用對(duì)于全局的影響。

  (4)提高代碼質(zhì)量。使用一些編程語(yǔ)言中的基本技巧, 以提高代碼質(zhì)量。

總結(jié)

  在移動(dòng)終端設(shè)備設(shè)計(jì)方面, 節(jié)能成為了一個(gè)很重要的設(shè)計(jì)指標(biāo)。我們選取了更高效的CPU 以降低能耗。對(duì)于交互式應(yīng)用程序而言, 我們使用DPM策略降低處于空閑態(tài)的能耗, 這種方法主要使用于OS 層。而AVS 技術(shù)是通過(guò)電壓調(diào)整來(lái)實(shí)現(xiàn)減少能耗。在應(yīng)用程序?qū)? 我們通過(guò)對(duì)軟件的優(yōu)化來(lái)達(dá)到降低能耗的目的。在Intel? PXA27x 處理芯片環(huán)境下, 通過(guò)以上方法, 我們降低了26%的能耗, 提高了30%的系統(tǒng)性能以及增加了7%的代碼量。

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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