摘 要:本文主要闡述了在移動智能終端程序設計中降低功耗的方法。
關鍵詞:移動智能終端;程序設計;功耗控制
中圖分類號:TH929.5 文獻標識碼:A 文章編號:1674-7712 (2013) 20-0000-01
在移動智能終端領域,功耗與應用程式的運行幾乎成正比。而隨著系統能力增強,則所能支持的硬件又得以提升,可以使用更大的屏幕、使用更大量內存、支持更多的無線芯片,這些功能增強的同時,也進一步加劇了電量的消耗。面對這樣功耗上的挑戰,移動智能終端在設計上,必須在考慮其他設計因素之前,更關注功耗控制問題。
在移動智能終端程序開發中,控制功耗的設計方法主要有以下方面:
1.低功耗優化的最基本原則。盡量減少處理器和各種外設的工作時間。當不需要某個外設和不需要處理器運算時,盡可能地把處理器和外設的功耗降低或關閉[1]。由于處理器的功耗在系統的總功耗中所占比例較大,因此要盡可能縮短處理器的工作時間,較長地處于空閑方式或掉電方式是軟件設計降低移動智能終端功耗的關鍵。
2.提高軟件性能就是降低功耗。基本上所有軟件層次的性能優化的措施對于降低功耗都是有積極作用的:算法層次優化→減少運算次數→降低CPU頻率要求
實現層次優化:減少完成同樣的運算次數所需的CPU時鐘數→降低CPU頻率要求;減少內存數據搬運次數→減少總線、內存的功耗;采用快速算法也可以降低功耗。
4.采用事件驅動的程序設計方法。從軟件設計方法來說,低功耗程序應該盡量遵循事件驅動的程序設計。當有事件來就運行處理事件;當沒有事件到達,或事件處理完程序放棄處理器,處于“休眠”狀態。這里說的事件是廣義的事件,包括用戶的輸入、網絡通信事件、進程/線程同步時的事件等。
采用事件驅動設計的程序,使處理器的利用率特別高:只有真正有事情要處理時才運行,無事情處理時,讓出處理器,這樣操作系統和硬件就能在處理器讓出的時間內及時地偵測到處理器,處于空閑狀態,從而做出降低功耗的操作。
5.減少程序中類似于輪詢的周期性操作。前面說輪詢操作使系統消耗不必要的電能,而實際上,程序中一些不必要的周期性觸發或運行的操作同樣有著與輪詢類似的消耗不必要的電能的效果。例如音量改變(每秒10次,在混頻器程序中常用)、GPS信號獲取應用(每秒大于30次)等等。我們可以采用Tickless Idle技術去除內核中周期性的定時操作。
6.通信、數據采集上的低功耗方法。在通信模塊設計中,盡量提高通信速率,這就意味著通信時間的縮短,因而較少了通信時高功耗的時間,降低了總的功耗[2]。同理,在使用WiFi通信時,應多使用突發(burst)模式來傳輸數據,這樣可以縮短通信(特別是發送數據)的時間,便于WiFi設備盡快進入空閑狀態。
7.外設通信和界面設計上的低功耗建議。如果外設支持動態電源調整,盡量用突發(burst)模式來訪問數據。比如本來播放一個視頻文件(1MB)只需要每秒讀200KB數據,但是可以在第一秒就讀完1MB數據,后9秒相應外設可以進入休眠狀態。GUI如果只是需要用16位色就夠了,那么,24位/32位色意味著更多的計算和內存數據的搬移,需要更高的功耗。
參考文獻:
[1]韋路.Method for reducing the power consumption,the mobile terminal.2012,04.
[2]劉洲洲,張捷.嵌入式系統的低功耗軟件方案.中國It網.2011.2.
[作者簡介]何偉文(1970.7-),男,廣東廣州人,廣州涉外經濟職業技術學院信息學院講師,高級工程師,工程碩士,研究方向:系統工程,項目管理。