嵌入式系統(tǒng)的功耗管理技術(shù)研究
摘要:根據(jù)硬件提供的功耗管理機(jī)制,參考Intel和Microsoft公司制訂的高級(jí)電源管理規(guī)范,在嵌入式領(lǐng)域中提出了系統(tǒng)工作的四種功耗模式-常規(guī)模塊、空閑模式、休眠模式和睡眠模式;通過(guò)在嵌入式操作系統(tǒng)中使用功耗管理模塊,為應(yīng)用提供有效的功耗管理機(jī)制,同是分析基于操作系統(tǒng)功耗管理機(jī)制的功耗管理策略,從而實(shí)現(xiàn)系統(tǒng)的低功耗目的。
本文引用地址:http://www.ex-cimer.com/article/241594.htm關(guān)鍵詞:移動(dòng)設(shè)計(jì) 功耗管理 嵌入式操作系統(tǒng)
引言
同固定設(shè)備相比,移動(dòng)設(shè)備具有功耗低、重量輕和體積小的特點(diǎn):但移動(dòng)設(shè)備的資源有限,主要反映在能夠使用的磁盤(pán)、內(nèi)存、處理能力和屏幕尺寸都比較小,且能夠連續(xù)使用的時(shí)間也比較短。同時(shí),由于移動(dòng)網(wǎng)絡(luò)的低帶寬、高延遲特點(diǎn),使移動(dòng)應(yīng)用同桌面應(yīng)用之間存在著較大差別,主要表現(xiàn)為:(1)人機(jī)接口。移動(dòng)計(jì)算要求人機(jī)接口方式簡(jiǎn)單,采用傳統(tǒng)方式下人們所使用的語(yǔ)音、手寫(xiě)等交流方式。(2)自適應(yīng)能力。移動(dòng)計(jì)算環(huán)境的差異性比較大,并且是不斷變化的。為了提供有效的服務(wù),移動(dòng)設(shè)備應(yīng)該具有環(huán)境自適應(yīng)性,根據(jù)變化的環(huán)境,采取相應(yīng)的措施,為用戶(hù)提供相應(yīng)的透明服務(wù)。(3)應(yīng)用的個(gè)性化。移動(dòng)設(shè)備主要為個(gè)人所使用,提供的服務(wù)應(yīng)該能夠體現(xiàn)個(gè)體的差異性。(4)計(jì)算的移動(dòng)性。(5)資源的有限性。在設(shè)計(jì)移動(dòng)計(jì)算應(yīng)用時(shí),應(yīng)充分考慮所使用的資源的有限性。(6)安全性。由于終端設(shè)備容易丟失,使得終端設(shè)備不宜用來(lái)長(zhǎng)期保存數(shù)據(jù)。
1992年,Sheng認(rèn)為電池的容量每隔10年能夠提高20%[1];最近的研究則顯示,在相當(dāng)長(zhǎng)的時(shí)間內(nèi),要把電池的容量提高10倍左右?guī)缀跏遣豢赡艿腫2]。因此,研究如何有效地提高電源使用率就變得非常重要。從硬件設(shè)計(jì)的角度來(lái)說(shuō),目前主要通過(guò)以下方法來(lái)研究降低系統(tǒng)功耗的技術(shù);使用更大規(guī)模的VLSI組件集成技術(shù)來(lái)降低電容;提供多種時(shí)鐘頻率;降低工作電壓。
本文主要從軟件的角度來(lái)分析研究降低移動(dòng)設(shè)備功耗的機(jī)制與策略,其中包括系統(tǒng)工作的功耗模式、在嵌入式操作系統(tǒng)中使用功耗管理模塊以及考慮終端能夠在相同電池容量的情況下運(yùn)行更長(zhǎng)的時(shí)間。這對(duì)于滿(mǎn)足普及計(jì)算終端的移動(dòng)性和便攜性等特征起著至著重要的作用。
一、系統(tǒng)工作功耗模式
1.硬件特性
為了滿(mǎn)足嵌入式應(yīng)用的低功耗需求,CPU外圍設(shè)備大都考慮了低功耗特性,并提供了可編程控制的多種功耗工作模式。
對(duì)于硬件設(shè)備,如果提供了多種功耗工作模式,并能夠通過(guò)軟件編程的方法來(lái)實(shí)現(xiàn)工作模式之前的切換,就稱(chēng)該硬件設(shè)備為可編程功耗管理的設(shè)備。
可編程功耗管理設(shè)備的目的在于提供功耗可以變化的工作模式。就CPU來(lái)說(shuō),為達(dá)到低功耗目的,提供了多種功耗管理機(jī)制,如:
*允許停止CPU時(shí)鐘;
*能夠工作于多種時(shí)鐘頻率;
*CPU中的模塊能夠被單獨(dú)停止工作。
在DragonBall系列芯片MC68VZ328中,為適應(yīng)PDA和智能電話(huà)等移動(dòng)設(shè)備的需要,就采用了如下低功耗處理措施:采用靜態(tài)的HCMOS技術(shù);具有低功耗的停止特性;各模塊可以被單獨(dú)停止工作;低功耗控制模式;可工作于DC到33MHz的處理器時(shí)鐘頻率;可工作于2.7~3.3V的工作電壓。
對(duì)于外圍設(shè)備,也大都提供了多種功耗工作模式,如:
*睡眠模式,能夠維持設(shè)備的基本功能;
*設(shè)備內(nèi)部時(shí)鐘保持運(yùn)行狀態(tài)的設(shè)備掉電模式,設(shè)備不能提供正常的功能;
*設(shè)備內(nèi)部時(shí)鐘停止運(yùn)行的設(shè)備掉電模式,設(shè)備不能提供正常的功能。
在RTL8019網(wǎng)卡中,就提供了三種級(jí)別的工作功耗模式;睡眠模式;網(wǎng)卡內(nèi)部時(shí)鐘保持運(yùn)行狀態(tài)的低功耗模式和網(wǎng)卡內(nèi)部時(shí)鐘停止運(yùn)行的低功耗模式。
系統(tǒng)中的設(shè)備具有可編程功耗管理特性,是對(duì)系統(tǒng)進(jìn)行功耗管的基礎(chǔ)。本文參考Intel和Microsoft公司制訂的高級(jí)電源管理規(guī)范-Advanced Power Management BIOS Interface Specification,在嵌入式領(lǐng)域中提出了系統(tǒng)工作的四種功耗模式-常規(guī)模式、空閑模式、休眠模式和睡眠模式。在不同的功耗模式下,系統(tǒng)的功耗也不同。根據(jù)系統(tǒng)當(dāng)前的活動(dòng)狀況,確定合適的工作功耗模式,從而實(shí)現(xiàn)系統(tǒng)的低功耗目標(biāo)。
2.功耗模式
系統(tǒng)工作的不同功耗模式下:常規(guī)模式、空閑模式、休眠模式和睡眠模式。
常規(guī)模式:通常的工作模式,系統(tǒng)的大部分操作都在此模式下運(yùn)行。在該模式下,CPU Core(指執(zhí)行任何計(jì)算相關(guān)操作都需要上電的硬件內(nèi)容,包括CPU時(shí)鐘、Cache、系統(tǒng)總線(xiàn)和系統(tǒng)定時(shí)器)和所有的外部設(shè)備都處于上電狀態(tài),系統(tǒng)的功耗最大,性能也最好。
空閑模式:在該模式下,CPU Core被關(guān)閉,而大多數(shù)外部設(shè)備則處于活動(dòng)狀態(tài)。該狀態(tài)是外部設(shè)備需要處于活動(dòng)狀態(tài),而CPU則不需要處于活動(dòng)狀態(tài)時(shí)的一種低功耗模式。如,終端的LCD需要顯示內(nèi)容,但該內(nèi)容在顯示過(guò)程中是不需要發(fā)生變化的靜態(tài)顯示就屬于這種情況。在該模式下,沒(méi)有活動(dòng)的任務(wù),所有任務(wù)都處于掛起或停止?fàn)顟B(tài)。對(duì)于外部設(shè)備,則仍處于活動(dòng)狀態(tài),以便接收內(nèi)部或外部的事件。
休眠模式:在該模式下,CPU中的大多數(shù)模塊和大多數(shù)外部設(shè)備處于掉電狀態(tài)(如LCD和LCD控制器);而CPU Core則仍處于運(yùn)行狀態(tài)。該模式下,仍保持處理一些對(duì)系統(tǒng)應(yīng)用來(lái)說(shuō)是無(wú)效的外部事件而不需要切換功耗模式的能力,如用戶(hù)操作了觸摸屏上對(duì)應(yīng)用來(lái)說(shuō)是無(wú)效的輸入?yún)^(qū)域。
睡眠模式:功耗最低的模式,只有系統(tǒng)實(shí)時(shí)時(shí)鐘處于活動(dòng)狀態(tài),CPU Core和所有的外部設(shè)備都處于掉電模式。在該模式下,只有外部中斷能夠喚醒系統(tǒng),并使系統(tǒng)首先進(jìn)入休眠模式,然后再進(jìn)入常規(guī)模式。
3.各種功耗模式之間的關(guān)系
各種功耗模式之間的轉(zhuǎn)換關(guān)系如圖1所示。
圖1中顯示了四種功耗模式之間的轉(zhuǎn)換關(guān)系。上電后,系統(tǒng)工作于常規(guī)模式。如果有任務(wù)處于活動(dòng)狀態(tài)或是有外部事件發(fā)生,系統(tǒng)將保持該模式;否則,系統(tǒng)將執(zhí)行idle任務(wù),該任務(wù)把系統(tǒng)從常規(guī)模式切換到空閑模式。
在空閑模式下,系統(tǒng)將啟動(dòng)idle定時(shí)器。當(dāng)該定時(shí)器到期時(shí),系統(tǒng)將進(jìn)入常規(guī)模式,以進(jìn)行超時(shí)處理,把系統(tǒng)切換到休眠模式;否則,如果有外部事件發(fā)生,系統(tǒng)將再次進(jìn)入常規(guī)模式。
在休眠模式下,如果有外部事件發(fā)生,系統(tǒng)將回到常規(guī)模式。如果系統(tǒng)存在對(duì)應(yīng)用來(lái)說(shuō)是無(wú)效的外部事件,系統(tǒng)將保持在該模式;否則,系統(tǒng)將進(jìn)入睡眠模式,直到出現(xiàn)外部中斷,將使系統(tǒng)首先回到休眠模式,然后再回到常規(guī)模式。
對(duì)于四種功耗模式,常規(guī)模式的功耗最高,空閑模式和休眠模式次之,睡眠模式最低。由于降低功耗主要是通過(guò)關(guān)掉一些暫時(shí)不用的設(shè)備來(lái)實(shí)現(xiàn)的,并且高功耗模式到低功耗模式的切換還需要保存一些必要的數(shù)據(jù),因此,工作模式的功耗越低,要恢復(fù)到常規(guī)模式的時(shí)間也越長(zhǎng)。
二、嵌入式操作系統(tǒng)中電源管理機(jī)制分析
1.嵌入式操作系統(tǒng)體系結(jié)構(gòu)
嵌入式實(shí)時(shí)操作系統(tǒng)Delta OS是電子科技大學(xué)微機(jī)所經(jīng)過(guò)“八五”和“九五”項(xiàng)目研究的結(jié)果,其體系結(jié)構(gòu)如圖2所示。
任務(wù)管理主要實(shí)現(xiàn)任務(wù)的創(chuàng)建、刪除、掛起、解掛等功能。內(nèi)存管理可以根據(jù)任務(wù)不同的需要從存儲(chǔ)區(qū)中分配或釋放內(nèi)存塊。任務(wù)間通信模塊提供了信箱和互斥信號(hào)量機(jī)制,以實(shí)現(xiàn)任務(wù)間通信、同步和互斥以及臨界資源的管理。中斷管理完成中斷處理的前導(dǎo)和后續(xù)部分,方便用戶(hù)編寫(xiě)中斷處理程序。時(shí)鐘管理實(shí)現(xiàn)系統(tǒng)時(shí)間的維護(hù)、定時(shí)事件的處理、睡眠、有限等待任務(wù)的處理、任務(wù)時(shí)間片的計(jì)算以及定時(shí)管理功能。BSP(Board Support Package)為板級(jí)支持包,用來(lái)抽象具體的硬件設(shè)備。此外,系統(tǒng)中還包含有GUI、瀏覽器、文件系統(tǒng)和網(wǎng)絡(luò)等組件。
為了滿(mǎn)足普及計(jì)算終端的應(yīng)用,需要在DeltaOS中添加電源管理模塊,為應(yīng)用提供電源管理機(jī)制。
2.電源管理模塊
電源管理模塊的目的在于根據(jù)可編程電源管理的設(shè)備提供的電源管理機(jī)制,提供用來(lái)實(shí)現(xiàn)各種功耗模式的應(yīng)用編程接口。
如果嵌入式操作系統(tǒng)提供了實(shí)現(xiàn)各種功耗工作模式的應(yīng)用編程接口,就稱(chēng)該操作系統(tǒng)為具有電源管理功能的操作系統(tǒng),也稱(chēng)該操作系統(tǒng)具有電源管理機(jī)制。
電源管理模塊主要提供以下功能:查詢(xún)電源管理方面的信息,設(shè)備系統(tǒng)工作的功耗模式。對(duì)于電源管理方面的信息,主要包含系統(tǒng)當(dāng)前工作的功耗模式和終端設(shè)備所使用的電源的容量等信息,為系統(tǒng)進(jìn)行功耗管理提供服務(wù)。
如果系統(tǒng)由高功耗工作模式切換到低功耗工作模式,首先,發(fā)送表示目標(biāo)功耗模式的事件,讓系統(tǒng)能夠根據(jù)該事件對(duì)外圍設(shè)備的功耗進(jìn)行管理;然后,執(zhí)行關(guān)中斷,保存系統(tǒng)數(shù)據(jù),主要是保存寄存器的數(shù)據(jù),以進(jìn)行系統(tǒng)恢復(fù);其次,設(shè)備與目標(biāo)功耗模式對(duì)應(yīng)的硬件特性,讓系統(tǒng)進(jìn)入目標(biāo)功耗模式;最后,是開(kāi)中斷。其主要操作如圖3所示。
3.對(duì)外圍設(shè)備的功耗管理
外圍設(shè)備的功耗管理是根據(jù)系統(tǒng)在進(jìn)入特定功耗模式時(shí)所發(fā)出的事件進(jìn)入設(shè)備相應(yīng)的功耗模式來(lái)實(shí)現(xiàn)的。
系統(tǒng)維護(hù)一個(gè)外圍設(shè)備表,在設(shè)備進(jìn)行初始化的時(shí)候,通過(guò)系統(tǒng)提供的注冊(cè)函數(shù)把相關(guān)信息注冊(cè)到外圍設(shè)備表中。注冊(cè)信息主要包括設(shè)備的ID和用來(lái)對(duì)特定設(shè)備進(jìn)行功耗管理的處理函數(shù)。當(dāng)系統(tǒng)工作的功耗模式發(fā)生變化時(shí),將產(chǎn)生能夠表示目標(biāo)功耗模式的事件,然后系統(tǒng)把相應(yīng)事件傳送給外圍設(shè)備表中處理設(shè)備功耗模式變化的回調(diào)函數(shù),回調(diào)函數(shù)對(duì)應(yīng)的特定設(shè)備的功耗處理函數(shù)根據(jù)事件類(lèi)型,使設(shè)備工作于相應(yīng)的功耗模式,處理流程如圖5所示。
圖6中,說(shuō)明了LCD作為外部設(shè)備的工作功耗管理情況同系統(tǒng)功耗之間的關(guān)系。當(dāng)系統(tǒng)工作于常規(guī)模式或空閑模式時(shí),LCD正常顯示需要顯示的內(nèi)容;若系統(tǒng)工作于休眠模式和睡眠模式,則LCD處于黑屏狀態(tài),以降低系統(tǒng)功耗。在該種情況下,LCD的功耗管理同系統(tǒng)工作模式密切相關(guān),由系統(tǒng)工作的功耗模式來(lái)確定。
系統(tǒng)中采用回調(diào)函數(shù)的方法來(lái)管理外圍設(shè)備的功耗管理,把系統(tǒng)功耗模式的管理同外圍設(shè)備的功耗管理相分離,使系統(tǒng)顯得非常靈活,并易于擴(kuò)展,能夠滿(mǎn)足不同應(yīng)用的需要。
三、系統(tǒng)電源管理策略分析
1.idle任務(wù)
idle任務(wù)是整個(gè)多任務(wù)系統(tǒng)中優(yōu)先級(jí)最低的任務(wù),只有在其它應(yīng)用任務(wù)都被阻塞的情況下才會(huì)執(zhí)行。在通常情況下,idle任務(wù)本身不做什么具體的處理工作;但是,為了維護(hù)整個(gè)系統(tǒng)的運(yùn)轉(zhuǎn),idle任務(wù)必不可少。
在功耗管理中,idle任務(wù)則可以發(fā)揮重要作用。當(dāng)系統(tǒng)進(jìn)入idle任務(wù)時(shí),idle任務(wù)使系統(tǒng)進(jìn)入空閑功耗工作模式,并啟動(dòng)idle定時(shí)器。當(dāng)該定時(shí)器到期時(shí),系統(tǒng)將進(jìn)入常規(guī)模式,以進(jìn)行超時(shí)處理,把系統(tǒng)切換到休眠功耗工作模式。
2.功耗模式的自動(dòng)控制
系統(tǒng)在運(yùn)行過(guò)程中,能夠根據(jù)系統(tǒng)的工作狀態(tài),自動(dòng)進(jìn)行功耗管理,從而使系統(tǒng)工作于與系統(tǒng)狀態(tài)相適用的功耗模式。
當(dāng)系統(tǒng)中沒(méi)有活動(dòng)時(shí),idle任務(wù)得到執(zhí)行,系統(tǒng)自動(dòng)進(jìn)入空閑功耗工作模式;如果有外部事件發(fā)生,系統(tǒng)將回到常規(guī)模式。系統(tǒng)在空閑功耗模式的工作時(shí)間超過(guò)預(yù)先設(shè)定的值時(shí),系統(tǒng)自動(dòng)進(jìn)入休眠功耗工作模式;如果發(fā)生了需要系統(tǒng)應(yīng)用處理的外部事件,系統(tǒng)將自動(dòng)回到常規(guī)模式。在休眠功耗模式下,如果沒(méi)有發(fā)生需要系統(tǒng)處理的事件,系統(tǒng)則自動(dòng)進(jìn)入睡眠功耗工作模式。在睡眠模式下,若發(fā)生外部事件,系統(tǒng)將回到休眠模式;若該事件對(duì)系統(tǒng)來(lái)說(shuō)為有效事件,系統(tǒng)將進(jìn)入常規(guī)模式。
對(duì)于外部設(shè)備來(lái)說(shuō),當(dāng)系統(tǒng)進(jìn)入或退出某種功耗模式時(shí),根據(jù)系統(tǒng)維護(hù)的外圍設(shè)備表,執(zhí)行對(duì)應(yīng)于具體設(shè)備的功耗管理控制程序,從而使外圍設(shè)備工作于與系統(tǒng)狀態(tài)相適應(yīng)的功耗工作模式。
3.應(yīng)用對(duì)功耗模式的控制
為滿(mǎn)足系統(tǒng)功耗管理的靈活性,系統(tǒng)提供了相應(yīng)的機(jī)制來(lái)確保應(yīng)用對(duì)功耗模式的直接控制,主要包括以下三個(gè)方面的內(nèi)容:
*在設(shè)計(jì)應(yīng)用程序時(shí),可以根據(jù)需要,設(shè)備系統(tǒng)的功耗工作模式;
*可以指定進(jìn)入休眠模式的系統(tǒng)空閑時(shí)間,即空閑模式切換到休眠模式的系統(tǒng)空閑時(shí)間;
*可以使能或不使能某種特定的功耗模式。
4.進(jìn)一步的考慮
在同一個(gè)系統(tǒng)中,不同的應(yīng)用對(duì)系統(tǒng)資源的需求也不同。如計(jì)算器,該應(yīng)用不需要網(wǎng)絡(luò)設(shè)備,甚至也不要求系統(tǒng)的處理速度有多快。但對(duì)于網(wǎng)絡(luò)瀏覽器來(lái)說(shuō),需要的資源就相對(duì)要求高一些:不但需要網(wǎng)絡(luò)設(shè)備,還要求系統(tǒng)的處理速度比較快。
因此,如果能夠考慮不同應(yīng)用的具體需求,采用不同的功耗管理方案,將對(duì)系統(tǒng)的功耗管理產(chǎn)生重要作用。
為此,可以采用一個(gè)專(zhuān)門(mén)的任務(wù)-電源管理任務(wù),來(lái)根據(jù)應(yīng)用對(duì)資源的需求情況進(jìn)行相應(yīng)的功耗管理。啟動(dòng)應(yīng)用的時(shí)候,由應(yīng)用把需要的資源情況(對(duì)處理器要求,需要的外圍設(shè)備等)發(fā)送給電源管理任務(wù);由電源管理任務(wù)對(duì)處理器進(jìn)行降頻或升頻處理,把不需要的設(shè)備降低到最低功耗模式,把需要的設(shè)備恢復(fù)到正常工作功耗模式。
通過(guò)電源管理任務(wù)和應(yīng)用設(shè)計(jì)的資源需求考慮,能夠進(jìn)一步降低系統(tǒng)中不必要的功耗,使功耗能夠與系統(tǒng)的真實(shí)需要相一致。
結(jié)束語(yǔ)
本文根據(jù)硬件提供的電源管理機(jī)制,參考Intel和Microsoft公司制訂的高級(jí)電源管理規(guī)范,在嵌入式領(lǐng)域中提出了系統(tǒng)工作的四種功耗模式;常規(guī)模式、空閑模式、休眠模式和睡矚模式,并通過(guò)在嵌入式操作系統(tǒng)中使用電源管理模式,為應(yīng)用提供有效的電源管理機(jī)制,同時(shí)還分析了基于操作系統(tǒng)電源管理機(jī)制的電源管理策略,從而實(shí)現(xiàn)系統(tǒng)的低功耗目的。
本文對(duì)低功耗終端技術(shù)的分析研究是基于終端硬件機(jī)制和對(duì)應(yīng)的嵌入式操作系統(tǒng)來(lái)進(jìn)行的,局限于終端本身的考慮。如果能夠從分布式技術(shù)的觀點(diǎn)來(lái)考慮,對(duì)降低終端功耗也將有重要影響,如負(fù)載分布技術(shù)或采用移動(dòng)代理技術(shù)。對(duì)這些技術(shù)的研究將在后續(xù)的工作中進(jìn)行。
通過(guò)本文的研究工作,對(duì)設(shè)計(jì)具有電源管理特性的嵌入式操作系統(tǒng)和低功耗應(yīng)用以及開(kāi)發(fā)移動(dòng)設(shè)備都具有重要的指導(dǎo)意義。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論