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