楊煉,牟倫榮,夏軍
(1.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶400065;2.重慶重郵信科通信技術(shù)有限公司)
對(duì)于移動(dòng)通信終端而言,終端的能耗問(wèn)題既是系統(tǒng)性能的關(guān)鍵因素,也是用戶認(rèn)可度的關(guān)鍵指標(biāo),已經(jīng)成為評(píng)估終端性能的重要指標(biāo)之一,移動(dòng)終端省電機(jī)制的研究與實(shí)現(xiàn)變得更加迫切。同時(shí),伴隨著通信產(chǎn)業(yè)的不斷發(fā)展,融合了拍照、攝像、音樂(lè)、游戲等多功能的智能手機(jī)應(yīng)需而生并得以快速發(fā)展。同傳統(tǒng)手機(jī)相比,智能手機(jī)的優(yōu)勢(shì)非常明顯,同樣,功耗問(wèn)題也是成倍增長(zhǎng)。工信部電信研究院公布的手機(jī)行業(yè)運(yùn)行情況顯示,智能手機(jī)市場(chǎng)占有率在50%以上,也就是說(shuō)智能機(jī)已經(jīng)成為主流產(chǎn)品。但對(duì)于手機(jī)終端低功耗技術(shù)的研究仍局限于功能單一的通話機(jī),所以必須加快智能手機(jī)終端低功耗技術(shù)的研究,以解決隨之而來(lái)的功耗問(wèn)題。同時(shí),支持多功能應(yīng)用的基礎(chǔ)上在智能手機(jī)終端為保證良好的用戶體驗(yàn)通常采用雙操作系統(tǒng)架構(gòu),而其他普通移動(dòng)終端多以單個(gè)OS為控制硬件設(shè)備和高層軟件架構(gòu)的搭建提供支持服務(wù),因此不乏有基于簡(jiǎn)單的單OS終端的省電研究和實(shí)現(xiàn),卻缺少多OS低功耗技術(shù)的研究。本文基于單芯片雙操作系統(tǒng)智能手機(jī)終端,提出一種雙操作系統(tǒng)間的省電方案。
智能手機(jī)作為一種便攜式和移動(dòng)性的終端設(shè)備,需要強(qiáng)大的處理器和硬件來(lái)支撐復(fù)雜的操作系統(tǒng)和應(yīng)用。智能手機(jī)硬件架構(gòu)主要有基帶(Base Band)加應(yīng)用處理器(Application Processor)的雙CPU架構(gòu)和基于虛擬化技術(shù)的單CPU架構(gòu)?;鶐幚砥鲗?shí)現(xiàn)手機(jī)的呼叫/接聽(tīng)等基本電話功能,應(yīng)用處理器專用于處理高負(fù)荷的多媒體應(yīng)用。這消除了由新應(yīng)用的軟件缺陷引起基帶處理器失效的風(fēng)險(xiǎn)。以模塊化架構(gòu)的形式,應(yīng)用處理器構(gòu)成一個(gè)子系統(tǒng),并與基帶處理器隔離開(kāi)來(lái)。
本文涉及的智能手機(jī)采用基于虛擬化技術(shù)的單CPU架構(gòu),手機(jī)虛擬化技術(shù)方案需采用VM(Virtual Machine)。VM對(duì)上層軟件架構(gòu)可以看成一個(gè)虛擬的硬件系統(tǒng),將真實(shí)的CPU模擬成兩個(gè)虛擬的CPU并行運(yùn)行,允許一個(gè)平臺(tái)同時(shí)運(yùn)行兩個(gè)操作系統(tǒng),兩個(gè)虛擬CPU上分別運(yùn)行一個(gè)分時(shí)操作系統(tǒng)(Android)和一個(gè)實(shí)時(shí)操作系統(tǒng)(RTOS),如圖1所示。
圖1
基帶處理器和應(yīng)用處理器之間的通信靠虛擬管道傳遞實(shí)現(xiàn)。本方案硬件平臺(tái)芯片中集成了一顆ARM1176JS內(nèi)核,兩顆ZSP800內(nèi)核、一顆CEVA公司的DSP內(nèi)核以及GSM&TD專用加速器,用于實(shí)現(xiàn)TD與GSM基帶功能;同時(shí)集成LCD控制器、Camera控制器、2D加速器、Codec音頻解碼器,用于實(shí)現(xiàn)多媒體功能。
在評(píng)估手機(jī)功耗特性方面,主要包括手機(jī)待機(jī)狀態(tài)最低電流值和手機(jī)工作狀態(tài)電流值。由于篇幅有限,本文僅針對(duì)如何降低最低待機(jī)狀態(tài)電流值來(lái)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。
在智能終端省電軟件控制過(guò)程中,最有效的方式是對(duì)系統(tǒng)的電壓和時(shí)鐘頻率進(jìn)行有效的低功耗控制管理。本方案采用目前已經(jīng)成為系統(tǒng)設(shè)計(jì)主流的低功耗設(shè)計(jì)策略DPM(動(dòng)態(tài)功耗管理)。DPM設(shè)計(jì)思想簡(jiǎn)單來(lái)說(shuō),就是系統(tǒng)一旦空閑則立即通過(guò)關(guān)閉時(shí)鐘和關(guān)閉電源兩種方式將該設(shè)備切換到低功耗狀態(tài)。主要通過(guò)在操作系統(tǒng)上搭建一個(gè)用于功耗管理的軟件模塊來(lái)實(shí)現(xiàn)。由于本方案中兩個(gè)OS同時(shí)并發(fā)運(yùn)行于單芯片的ARM1176EJS子系統(tǒng)內(nèi),硬件資源分配遵循原則是“基帶子系統(tǒng)專屬使用的由RTOS控制,應(yīng)用子系統(tǒng)專屬使用的由Android控制,共用資源由RTOS控制”??紤]運(yùn)行于RTOS的基帶子系統(tǒng)對(duì)任務(wù)實(shí)時(shí)性的苛刻要求,設(shè)計(jì)以基帶子系統(tǒng)DPM軟件模塊為主控制模塊,應(yīng)用子系統(tǒng)PM軟件模塊為從控制模塊。同時(shí),DPM軟件模塊主要負(fù)責(zé)基帶各模塊和與應(yīng)用子系統(tǒng)公用模塊的狀態(tài)管理、約束判斷、省電模式設(shè)置等任務(wù)。PM軟件模塊主要負(fù)責(zé)向DPM請(qǐng)求睡眠,醒鎖機(jī)制,外設(shè)(例如鍵盤、背光燈、Camera等)狀態(tài)管理等。其總體軟件架構(gòu)如圖2所示。
在應(yīng)用子系統(tǒng)中,PM模塊動(dòng)態(tài)地收集應(yīng)用系統(tǒng)的運(yùn)行情況,配置基帶的DPM,使其滿足應(yīng)用系統(tǒng)的省電要求和針對(duì)Android專屬模塊采取使用開(kāi)啟、未使用關(guān)閉的原則控制。
在基帶系統(tǒng)中,DPM模塊為省電工作的主要承擔(dān)者,其核心通過(guò)收集系統(tǒng)的信息作出必要的判決,包括PM收集的Android系統(tǒng)的信息,決策睡眠類型、睡眠時(shí)間并通過(guò)調(diào)用硬件驅(qū)動(dòng)對(duì)相應(yīng)模式下的電源域狀態(tài)和時(shí)鐘域狀態(tài)控制。
圖2
(1)應(yīng)用子系統(tǒng)狀態(tài)
應(yīng)用子系統(tǒng)共有三種狀態(tài),躍遷關(guān)系如圖3所示。
work狀態(tài):有任務(wù)在執(zhí)行的工作狀態(tài),可向suspend和idle狀態(tài)躍遷。
suspend狀態(tài):當(dāng)處于 work狀態(tài)時(shí),向/sys/power/state里寫(xiě)“mem”時(shí)系統(tǒng)躍遷到suspend狀態(tài),凍結(jié)進(jìn)程讓外設(shè)進(jìn)入休眠狀態(tài)。當(dāng)喚醒事件產(chǎn)生則返回work狀態(tài)。
idle狀態(tài):當(dāng)所有任務(wù)運(yùn)行完畢系統(tǒng)會(huì)從work進(jìn)入idle狀態(tài);當(dāng)有喚醒事件產(chǎn)生時(shí)則返回work狀態(tài)。
(2)基帶子系統(tǒng)狀態(tài)
基帶子系統(tǒng)共有三種狀態(tài),躍遷關(guān)系如圖4所示。
sleep狀態(tài):省電睡眠模式,根據(jù)具體機(jī)制分為多種睡眠模式類型。
idle狀態(tài):指一個(gè)抽象的概念,僅僅是基帶從work狀態(tài)到sleep狀態(tài)的過(guò)渡。
work狀態(tài):指基帶側(cè)有任務(wù)或中斷在執(zhí)行。
圖3
圖4
本方案中,系統(tǒng)省電入口設(shè)置在基帶OS中,當(dāng)基帶進(jìn)入idle后,先查詢應(yīng)用子系統(tǒng)狀態(tài),用以控制是否可以進(jìn)入省電流程。如果狀態(tài)為work,則將虛擬機(jī)切換到應(yīng)用子系統(tǒng)之后,Linux進(jìn)行任務(wù)調(diào)度。若此時(shí)Linux任務(wù)完成則進(jìn)入應(yīng)用idle流程,若此時(shí)有suspend事件產(chǎn)生,就會(huì)進(jìn)入應(yīng)用suspend流程。凍結(jié)進(jìn)程及讓外設(shè)進(jìn)入休眠狀態(tài)這一系列低功耗設(shè)置工作后,應(yīng)用子系統(tǒng)通過(guò)虛擬管道(VPIPE)向基帶發(fā)送事先約定好的睡眠命令,基帶收到此VPIPE命令后設(shè)置應(yīng)用子系統(tǒng)狀態(tài)為空閑。當(dāng)基帶再次進(jìn)入idle后,查詢應(yīng)用子系統(tǒng)狀態(tài),如果為空閑,基帶子系統(tǒng)中低功耗模塊啟動(dòng)睡眠流程,基帶睡眠流程采用ARM主控的方式來(lái)控制芯片內(nèi)部模塊以及外設(shè)模塊在相應(yīng)的時(shí)隙進(jìn)入省電模式。被作為modem使用的基帶子系統(tǒng)省電控制主要分為4部分:物理層、協(xié)議棧、操作系統(tǒng)和硬件驅(qū)動(dòng)。其中物理層主要負(fù)責(zé)由協(xié)議棧規(guī)劃時(shí)間點(diǎn)的數(shù)據(jù)測(cè)量任務(wù),協(xié)議棧主要負(fù)責(zé)計(jì)算出下一個(gè)DRX(非連續(xù)接收)測(cè)量時(shí)間點(diǎn)。此時(shí),OS沒(méi)有任務(wù)調(diào)度或者中斷處理,就判斷約束條件并根據(jù)協(xié)議棧計(jì)算的時(shí)間點(diǎn)和系統(tǒng)定時(shí)器時(shí)間點(diǎn)進(jìn)行比較,共同決定進(jìn)入何種模式睡眠,再進(jìn)行數(shù)據(jù)保護(hù)、喚醒設(shè)置等一系列系統(tǒng)保護(hù)和數(shù)據(jù)保護(hù)動(dòng)作,然后調(diào)用硬件驅(qū)動(dòng),對(duì)各個(gè)模塊省電控制予以實(shí)現(xiàn)。
睡眠喚醒后,置應(yīng)用子系統(tǒng)狀態(tài)為工作,并進(jìn)行定時(shí)器補(bǔ)償。當(dāng)基帶再一次進(jìn)入idle,則切換到Linux。若檢測(cè)沒(méi)有中斷產(chǎn)生等待處理,則再一次發(fā)送帶有sleep指令的VPIPE命令,通知基帶進(jìn)入睡眠,如此反復(fù)。當(dāng)需要喚醒應(yīng)用時(shí),清除睡眠標(biāo)志,發(fā)送VPIPE命令給應(yīng)用。當(dāng)基帶進(jìn)入idle后,切換到Linux,Linux檢測(cè)到中斷pending,則進(jìn)行相應(yīng)處理。其省電狀態(tài)躍遷的主要流程如圖5所示。
在智能手機(jī)設(shè)計(jì)中,省電設(shè)計(jì)是必須面對(duì)的問(wèn)題。其原因在于,嵌入式系統(tǒng)被廣泛應(yīng)用于便攜式和移動(dòng)性較強(qiáng)的手持產(chǎn)品中,而這些產(chǎn)品不是一定都有充足的電源供應(yīng),往往靠電池來(lái)供電,電池容量是現(xiàn)在技術(shù)的一個(gè)瓶頸,所以只能從降低功率消耗來(lái)達(dá)到省電效果,盡可能地延長(zhǎng)電池的使用時(shí)間。
本文基于單芯片雙操作系統(tǒng)智能手機(jī)終端,提出一種雙操作系統(tǒng)終端間的省電方案架構(gòu)設(shè)計(jì),通過(guò)降低功耗來(lái)達(dá)到省電目的,并在Agilent 66319B電源為智能手機(jī)終端提供穩(wěn)定5V電壓的情況下通過(guò)電流值的降低驗(yàn)證本方案的有效性。圖6為沒(méi)有省電方案的智能手機(jī)終端在5V穩(wěn)定電壓下24s內(nèi)4 095次電流的采樣值,平均電流為204.488mA。需要說(shuō)明的一點(diǎn)是,這里的沒(méi)有省電方案僅指本文所提出的方案,對(duì)于部分省電由硬件驅(qū)動(dòng)控制的外設(shè)仍保留;圖7為有省電方案的智能手機(jī)終端在5V穩(wěn)定電壓下24s內(nèi)4 095次電流的采樣值,平均電流為89.327mA。省電亦即降低功耗,在電壓值保證不變的情況下降低電流值即降低功耗,說(shuō)明通過(guò)省電方案能有效地降低終端的功耗,方案是可行的。
圖5
本文從操作系統(tǒng)層級(jí)提出一種省電設(shè)計(jì)方案,有效地降低了智能手機(jī)功耗,延長(zhǎng)了待機(jī)時(shí)間。該方案的實(shí)現(xiàn)可大部分用于相似硬件平臺(tái)的嵌入式設(shè)備中,對(duì)省電技術(shù)的發(fā)展具有一定的理論意義和現(xiàn)實(shí)意義。
圖6
圖7
[1]智能手機(jī)的硬件體系結(jié)構(gòu)[DB/OL].(2008-06-13)[2012-12].http://tech.c114.net/174/a322489.html.
[2]蘇健.Android智能手機(jī)平臺(tái)電源管理技術(shù)[J].微處理機(jī),2011(5).
[3]T Simunic,L Benini,P W Glynn,et al.Dynamic power management for portable systems[C]//Proceedings of the International Conference on Mobile Computing Networking,Boston,August,2000:11-19.
[4]G Goossens,P Paulin,J Van Praet,et al.Embedded software in real-time signal processing systems:design technologies[J].Proceedings of the IEEE,1997,85(3):36-454.
[5]陳向群,郭耀.操作系統(tǒng)電源管理研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2008(5):817-824.
[6]李晗.TD-SCDMA系統(tǒng)中終端省電技術(shù)的研究[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2010(4):69-71.
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2013年4期