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