每個(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ī)電池容量還沒有實(shí)現(xiàn)質(zhì)的飛躍的前提下, 我們不得不考慮手機(jī)電源節(jié)能的問題。我主要通過了以下四個(gè)方面來(lái)闡述在基于Linux 平臺(tái)上的智能手機(jī)的解決方案。
CPU 的選擇
盡管現(xiàn)在有了各種在不過多加重功耗負(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ú)疑是大牛拉小車, 同時(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 的性能就是我們要考慮的第二大問題。一般的情況下, 我們是在CPU 的性能( Performance) 和功耗(PowerConsumption) 方面進(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è)專門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 芯片的工作頻率。
由上可見, 當(dāng)CPU 確定后, 我可以通過降低頻率和電壓來(lái)減少系統(tǒng)的功耗。
在CPU 的選擇方面, 我們推薦采用Intel 的Xscale 芯片, 以及IBM的PowerPC405G 芯片。