Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

用於可攜式裝置動態電源管理的嵌入式Linux技術

上網時間: 2003年08月26日     打印版  Bookmark and Share  字型大小:  

關鍵字:DPM  Architecture  Kernel  Interface  API 

任何擁有筆記型電腦的人都會發現,當依賴電池供電時,可攜式裝置的行為與使用交流主電源供電時不同,包括顯示螢幕變暗、處理器的時脈變慢、系統只要有可能就會轉入待機或睡眠狀態。PDA用戶也發現,在停止使用一段時間後顯示螢幕將變暗,裝置甚至進入睡眠狀態。行動電話用戶也已經注意到,背景光和按鍵照明在完成撥號之後會熄滅。事實上,這些可見行為的背後是軟硬體技術和省電機制在發揮作用。

全速執行、待機和睡眠等行為都是利用CPU的固有能力,透過降低工作電壓或時脈頻率來節省功耗。除了全面改變系統狀態外,大多數用戶察覺不到的是,實際的電源管理也能夠逐漸地改變系統狀態,這種情況在一秒之內可以產生數百次。

任何動態電源管理策略的基礎都是調整可攜式裝置中一個或多個處理器核心的工作電壓和頻率,此外,在高整合度的PowerPC、ARM和基於x86的系統中經常包含一個DSP或智慧基頻處理器。的確,諸如英特爾的StrongARM和XScale處理器、TI的OMAP處理器系列以及IBM最近發佈的PowerPC 405LP和Transmeta Crusoe等CPU都提供核心電壓和頻率的動態調節功能。不過,現代的嵌入式處理器具有非常高的電源效率,以至於CPU並不總是最主要的耗能元件,其它高耗能的元件包括高性能記憶體、彩色顯示器和射頻介面等。因此,如果動態電源管理系統只能調節處理器核心的電壓和頻率,那麼它的用途將有限。

一個真正有用的動態電源管理方案應該可以採用與CPU核心執行相協調或相獨立的方式,支援對一系列電壓和時脈的快速調節。

DPM架構

兩個現有的電源管理方案分別來自於PC和筆記型電腦領域:一個是傳統的高級電源管理(APM)方案,它目前仍然使用在許多基於Linux的可攜設備中,但在基於微軟作業系統的筆記型電腦和手持設備中已經被逐步淘汰;另一個是高級配置和電源介面(ACPI)方案,它是英特爾、東芝和其他一些公司支援的現行標準。在PC、筆記型電腦、伺服器、甚至刀片式通訊設備等商業硬體中,類似ACPI的系統是人們的首選,但它強烈依賴於流行的x86/IA-32 BIOS架構。

嵌入式系統通常沒有類似於PC中的BIOS,而且通常不具備那麼高的機器抽象等級,能夠把作業系統與低層次的設備和電源管理活動隔離開來。與其它瞄準電池供電應用的作業系統類似,在嵌入式Linux中,電源管理活動需要對作業系統核心和設備驅動程式進行特殊的干預。不過,需要重點強調的是,雖然低層次的動態電源管理是駐留在作業系統核心中,但電源管理策略和機制是來源於中介軟體和用戶應用程式碼。

介面和API

理想的電源管理系統應盡可能對更多軟體堆疊層達到幾乎完全透明的程度。事實上,這是Transmeta公司在其Crusoe架構中所遵循的路線,而且已經成為基於BIOS的現有電源管理方案追求的目標。然而,具備手持設備設計經驗的開發人員証實,系統內部各部份之間需要某種程度的直接合作,具體描述如下:圖1:電源管理和嵌入式Linux軟體堆疊。

核心介面

在針對Linux的DPM架構中,核心中的DPM子系統負責維持整個系統的電源狀態,並把DPM系統的不同電源管理模組聯繫在一起。如果核心的任何其它部份需要與DPM直接對話(儘管這種情況相對較少),那麼最好把DPM看成是為驅動程式、中介軟體和應用程式提供服務的元素。

驅動程式介面

支援DPM功能的設備驅動程式比默認的驅動程式更了解系統狀態:它們在外部事件的驅使下透過設定不同的狀態來反映或遵循那些作業機制,或者透過來自核心DPM子系統的調用來反映或遵循那些作業機制。為了實現更精確的機制決策,驅動程式API也允許驅動程式註冊與它們介面或由它們管理的那些設備的基礎作業特徵。

應用程式API

應用程式可以分為三類:


*電源管理知會型(PM-aware)應用程式


*在電源管理知會‘包裹器’中的傳統應用程式


*不具有電源管理的傳統應用程式圖2:時脈變換過程的延遲。

電源管理知會型應用程式能夠利用機制管理器提供的API,設立其基本的約束條件,並強迫電源管理機制產生與其執行需求相匹配的變化。不直接具有電源管理能力的傳統應用程式能夠被‘包裹’在程式碼或補丁中,以達到較高的效率,但它們也能夠根據更大範圍的默認機制管理,按默認的行為執行。

在嵌入式Linux DPM下的實際機制包括以下API,如dpm_set_os()(核心)、assert_constraint()、remove_constraint()和set_operating_state()(核心和驅動程式)、set_policy()和set_task_state()(經系統的用戶級調用)以及/proc介面。

對即時性能的影響

迄今為止,調整CPU電壓和頻率對系統的即時性能而言依然是一個重大挑戰。任何參數的改變都將導致系統不穩定,重新鎖定鎖相環和其它動態時脈機制也需要相應的時間,這兩個因素將使系統的響應出現長延遲(有時達到數十毫秒),在此期間,CPU既不能執行運算作業,也不能對外部事件(中斷)做出響應。

TI的OMAP、英特爾的Xscale和IBM的PowerLP等嵌入式處理器能夠在十幾毫秒的延遲內調整頻率,在數十毫秒的延遲內改變電壓,而且所有這些動作都不會中斷系統的作業,因而允許實現更大膽和更精確的節電機制。例如,在處理MPEG視訊訊框或IP語音包的過程中可以降低電壓和頻率。

即時性能面臨的一個更普遍的挑戰是,如何在睡眠模式期間對中斷做出響應。雖然透過編程,大多數晶片上周邊元件在收到中斷之後都可以喚醒系統,但開發者必須謹慎地定義用於喚醒設備的機制,並把整個系統的延遲和記憶體類別考慮在內,以確保處理中斷的執行時間和用戶空間對事件的響應(優先延遲)。

向嵌入式Linux發展的趨勢

理想情況下,用戶既無需知道也無需關心支撐其手持設備的底層作業系統。現在,設備製造商對作業系統有了更多的選擇餘地。雖然微軟一直非常重視品牌,但Windows系列作業系統進入手持設備市場(如行動電話)的規模卻落後於Symbian和Brew,也落後於嵌入式Linux。設備製造商轉向Linux的原因之一是可以利用標準的電源管理技術替代專有技術,這樣既能達到更快的上市時間,同時又能滿足終端用戶和廠商的技術需求。

幾個關鍵概念

作業點:在任何特定的時間點,系統都執行在一個特定的作業點下,該作業點由包括核心CPU電壓、CPU和匯流排頻率以及周邊設備狀態的參數來描述。DPM系統可以定義為,在程式執行和事件產生過程時,把系統從一個作業點轉移到另一個作業點的一系列規則和程式。

例如,板上LCD控制器需要使用一個儲存在片外SDRAM中的訊框緩衝器。當LCD控制器工作時,作業點需要指定足夠高的記憶體匯流排頻率來滿足顯示器刷新速率(由畫素時脈頻率決定)的需要。在LCD不工作的情況下(例如當PDA僅作為MP3播放器使用時),降低SDRAM匯流排頻率可以節省整個系統的功耗。

機制:通常,機制定義了電源管理系統及其元件的行為。在DPM架構中,機制被稱為數據結構,為了精確地控制動態系統的狀態,需要規定元件狀態和設備狀態的轉換,以確保與總體電源管理策略相一致的可靠作業。

機制管理器:它是啟動機制的用戶程式或Linux後台程式(中介軟體)。機制管理器執行用戶定義的或專用的電源管理策略。它們可以作為核心的一部份執行或在用戶空間中執行。機制管理器可以非常主動,如即時地響應應用系統對電源╱性能的需求;也可以比較被動,如對於電池電源的變化,可以在更長的時間裡改變機制。

作者:Bill Weinberg


技術專家


MontaVista軟體公司




投票數:   加入我的最愛
我來評論 - 用於可攜式裝置動態電源管理的嵌入式Li...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首