<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Linux的動(dòng)態(tài)電源管理設計

基于Linux的動(dòng)態(tài)電源管理設計

作者: 時(shí)間:2012-07-12 來(lái)源:網(wǎng)絡(luò ) 收藏

為了在產(chǎn)品眾多、競爭激烈的市場(chǎng)上使產(chǎn)品與眾不同,手持設備的制造商們往往把電池壽命和作為手機、PDA、多媒體播放器、游戲機、其它便攜式消費類(lèi)設備等產(chǎn)品的關(guān)鍵賣(mài)點(diǎn)來(lái)考慮。用戶(hù)是從電池壽命這方面來(lái)看待的成效,其實(shí)它是多種因素共同作用的結果,這些因素包括 CPU 功能、系統軟件、中間件,以及使用戶(hù)可以在更長(cháng)的充電或更換電池的間隔時(shí)間內享用各自設備的策略。

  范圍

任何擁有筆記本電腦的人都會(huì )感覺(jué)到,他們的這種便攜式設備依靠電池運行時(shí),與依靠交流電(主電源)運行對比,行為表現不一樣,屏幕變暗了,處理器時(shí)鐘變慢了,并且系統只要有可能,就會(huì )轉入待機或睡眠狀態(tài)。

另外,PDA 的擁有者們還發(fā)現,在設備停用一段時(shí)間之后,屏幕會(huì )變暗,設備甚至進(jìn)入睡眠狀態(tài),而手機用戶(hù)會(huì )注意到,撥號之后,背光和按鍵照明光熄滅了。在肉眼能夠察覺(jué)的這些行為的背后,是若干軟硬件技術(shù)和策略在起作用。

明顯的行為如全速運行、待機和睡眠等,充分利用了 CPU 本身的功能來(lái)降低工作電壓和/或時(shí)鐘頻率,從而省電。大多數設備用戶(hù)覺(jué)察不到的是,實(shí)際的電源管理還可以是漸增的,并且可以每秒發(fā)生好幾百次,而不是整個(gè)系統狀態(tài)大規模變化。

本文引用地址:http://dyxdggzs.com/article/257365.htm

  任何動(dòng)態(tài)電源管理 () 戰略開(kāi)始都是調節便攜式設備中存在的一個(gè)或多個(gè)處理器內核的工作電壓和頻率——高度集成的、基于 PowerPC、ARM 和 x86 的系統通常配備一塊 DSP 或智能基帶處理器。實(shí)際上,Intel XScale 和 TI OMAP 等處理器系列提供了內核電壓和頻率的動(dòng)態(tài)調節。不過(guò),現代嵌入式處理器的用電效率非常高,以至于 CPU 并不總是主要的耗能器件,其它大能耗器件可能包括高性能存儲器、彩色顯示器和無(wú)線(xiàn)接口。因此,動(dòng)態(tài)電源管理系統如果只關(guān)注對處理器內核的電壓和頻率進(jìn)行調節的話(huà),那么它的用途也許很有限。

真正有用的電源管理方案將支持各種電壓和時(shí)鐘的快速調節,既可以與 CPU 內核的運行協(xié)同進(jìn)行,也可以獨立進(jìn)行。

  架構

兩種現有的電源管理方案是來(lái)自“白箱”PC 及筆記本電腦領(lǐng)域,第一種是傳統的“高級電源管理”(Advanced Power Management,簡(jiǎn)稱(chēng) APM)方案,仍用于許多基于 Linux 的便攜式設備中,而基于微軟操作系統的筆記本電腦和手持設備已停止采用這種方案了,第二種是“高級配置和電源接口”(Advanced Configuration and Power Interface,簡(jiǎn)稱(chēng) ACPI),這種現行標準得到了英特爾、東芝等公司的支持。對于 PC、筆記本電腦、服務(wù)器、甚至面向通信設備的刀片服務(wù)器等“商業(yè)成品”(commercial off-the-shelf,簡(jiǎn)稱(chēng) COTS)硬件,ACPI 等系統更受青睞,不過(guò)它們表現出對目前盛行的 x86/IA-32 BIOS 架構的強烈依賴(lài)。

  嵌入式系統通常沒(méi)有 BIOS(在 PC/AT 的意義上),并且通常無(wú)法奢侈地配備機器抽象,來(lái)把操作系統與低層器件和電源管理活動(dòng)隔離開(kāi)來(lái)。因此,在嵌入式 Linux 中,就像在其它針對電池供電應用的操作系統一樣,電源管理活動(dòng)需要對操作系統內核以及設備驅動(dòng)程序做特殊干預。不過(guò)請注意一件重要事情,雖然動(dòng)態(tài)電源管理的低層實(shí)現是駐留在操作系統內核,但電源管理戰略及策略可以源自中間件和用戶(hù)應用軟件代碼,實(shí)際也是如此。

  接口和 API

理想狀況下,電源管理系統對于軟件堆棧的盡可能多的層次而言,幾乎是完全透明的。實(shí)際上,這正是 Transmeta 公司在其 Crusoe 架構中遵循的路線(xiàn),并且已經(jīng)成為現有的各種基于 BIOS 的電源管理方案的目標。不過(guò),擁有手持設備制造經(jīng)驗的開(kāi)發(fā)人員將證明這一事實(shí):整個(gè)系統的各個(gè)部分都需要某種程度的直接參與,如下所述:

內核接口 在針對 Linux 的 架構中,內核中的 子系統負責維持系統的電源狀態(tài),并把 DPM 系統的各個(gè)電源得到管理的元件聯(lián)系在一起。DPM 子系統通過(guò)多個(gè) API 直接與設備驅動(dòng)程序通信,這些 API 把驅動(dòng)程序從完全運行狀態(tài)轉為各種電源得到管理的狀態(tài)。策略管理器(或應用軟件自身)通過(guò)多個(gè) API 向 DPM 子系統提供指導,這些 API 定義各種策略,并在定義好的運行點(diǎn)之間轉移整個(gè)系統。

驅動(dòng)程序接口 啟用了 DPM 的設備驅動(dòng)程序比默認驅動(dòng)程序具有更多“狀態(tài)”:由外部事件通過(guò)各種狀態(tài)來(lái)驅動(dòng)它們,或通過(guò)來(lái)自?xún)群?DPM 子系統的回調來(lái)驅動(dòng)它們,從而反映并遵循運行策略。驅動(dòng)程序 API 還允許驅動(dòng)程序登記它們連接和管理的各個(gè)設備的基本運行特征,從而實(shí)現更精細的策略決策。

用戶(hù)程序 API 用戶(hù)程序(應用軟件)分為三類(lèi):

·可感知電源管理的應用軟件
·可感知電源管理的“包裝器”中的傳統應用軟件
·不帶電源管理的傳統應用軟件

可感知電源管理的應用軟件能夠充分利用來(lái)自策略管理器的 API,從而建立各自的基礎約束,并強制電源管理策略發(fā)生變化,以便匹配各自的執行要求。不直接帶有電源管理功能的傳統應用軟件可以“包裝”到代碼或補丁中,從而實(shí)現相當的效果,它們還可以按照默認行為來(lái)運行,這取決于更寬范圍的默認策略管理。

嵌入式 Linux DPM 下的實(shí)際機制包括各種 API,比如 dpm_set_os()(內核)、assert_constraint()、remove_constraint() 和 set_operating_state()(內核和驅動(dòng)程序)、set_policy() 和 set_task_state()(經(jīng)由系統調用的用戶(hù)級接口),以及 /proc 接口。

  借助 DPM 實(shí)現節能

獨特的節能機會(huì )

DPM 的定義性特征是電源管理的迅速、高頻率性質(zhì)。傳統的臺式機/筆記本電腦范例的運行速度是以數百毫秒或數秒計,與此不同的是,DPM 使各設備的管理速度只受限于改變供電電壓 (T芕) 或 CPU 時(shí)鐘 (T頗) 所需的時(shí)間。

在流視頻的各幀之間實(shí)現節能,是對 DPM 的這一性質(zhì)的最好寫(xiě)照。高質(zhì)量的流視頻的運行頻率是 24 幀/秒,在各幀之間留了 41.66 毫秒的可用時(shí)間,用于渲染下一幀和進(jìn)行其它活動(dòng)。即使是在運行頻率為 40-60MHz 的低功率 CPU 內核心上,41.66 毫秒也代表“很長(cháng)的時(shí)間”,并為電源管理帶來(lái)了充足的機會(huì )。

當一幀視頻呈現給用戶(hù)之后,活動(dòng)按以下方式繼續進(jìn)行:

·CPU 請求/索取下一幀壓縮視頻,它來(lái)自本地存儲系統或流文件緩沖器——CPU 活動(dòng)量很低;

·壓縮圖像(經(jīng)由 DMA 或共享內存)被傳輸至編解碼器(DSP 或其它專(zhuān)用硬件),進(jìn)行解壓/渲染——CPU 活動(dòng)量中等,編解碼器活動(dòng)量高;

·當圖像準備就緒,即解壓完畢時(shí),CPU 調用視頻接口驅動(dòng)程序——CPU 利用率高,最終的顯示器利用率高;

·在圖像處理的整個(gè)過(guò)程中,顯示器背光都要消耗能量。充分利用視覺(jué)暫留或針對圖像本身的伽瑪調節,該參數也可以降低到一個(gè)更適度的消耗級別。

  對視頻幀處理的各個(gè)階段期間的能量需求進(jìn)行總結,得圖 2 所示的波形,“線(xiàn)上方的”面積代表潛在的節能。

時(shí)鐘頻率調節與電壓調節的益處對比


CPU 時(shí)鐘頻率調節是嵌入式器件的一種常用省電方式。在給定電壓下,與較低的時(shí)鐘速度相比,較高的時(shí)鐘速度需要更多的電量才能把邏輯電平推到飽和(克服電容)。而且,時(shí)鐘頻率調節比較容易實(shí)現,至少在 CPU內核內部是這樣。然而,電壓調節帶來(lái)的益處要大得多——能耗與時(shí)鐘頻率成正比,而幾乎是系統電壓的立方!

DPM 本身并不對時(shí)鐘頻率和電壓之間的關(guān)聯(lián)做假設。理論上,兩項參數均可以獨立而連續地改變。

實(shí)際上,在給定時(shí)鐘頻率下,存在最低可行電壓(最低供電電壓)——更低的電壓無(wú)法在要求的周期時(shí)間內把邏輯電平推到飽和,而更高的電壓只會(huì )消耗更多的電。為了簡(jiǎn)化電源管理算法,DPM 等方案也不去嘗試連續改變時(shí)鐘和電壓,而是由設計人員在時(shí)鐘/電壓連續統計上挑選出一系列合理的運行點(diǎn),并且 DPM 逐點(diǎn)驅動(dòng) CPU 和其它電源得到管理的系統器件。

  開(kāi)發(fā)和部署電源管理面臨的挑戰

面向嵌入式 Linux 的 DPM 是一種正在發(fā)展的技術(shù)。由于全球開(kāi)放源代碼領(lǐng)域的開(kāi)發(fā)人員所做的貢獻,它的核心技術(shù)正在進(jìn)步,但實(shí)際應用仍然必須清除一系列“路障”。

在所有器件子系統中協(xié)調 DPM

CPU 時(shí)鐘和電壓引來(lái)了一套非常靈活的電源管理參數,這些參數針對設備中的主要耗電器件之一。其它器件(背光、射頻等等)也帶來(lái)了電源管理機會(huì ),但有可能導致非常不同的運行點(diǎn)類(lèi)型和數量。不過(guò),系統中的各種節點(diǎn)完全獨立的情況非常少。CPU 連接到總線(xiàn)、橋路、內存,并直接連接到其它外設,而改變一種器件的時(shí)鐘和電壓可能會(huì )限制它與鄰近器件的電連接和邏輯連接。解決此類(lèi)不兼容問(wèn)題的選擇方案包括:

· 把 CPU 內核和外設編組成塊,這些塊共享運行點(diǎn)特性

· 選擇互為倍數的運行點(diǎn)時(shí)鐘速率

· 運用電壓變換器/緩沖器或開(kāi)路集電極電路來(lái)縮小電壓差異

克服電壓及頻率調節等待時(shí)間

為了支持 DPM 等積極的節能范例,系統硬件的響應速度必須能夠至少象 DPM 策略指導的狀態(tài)變化的發(fā)生速度一樣快。也就是說(shuō),如果 DPM 系統需要在給定時(shí)間內從一個(gè)運行點(diǎn)過(guò)渡到另一個(gè)運行點(diǎn),電源電路的時(shí)鐘設定必須能夠與這些變化一同發(fā)生。

換句話(huà)說(shuō),改變電壓所花的時(shí)間必須少于運行點(diǎn)之間的過(guò)渡時(shí)間 ( T芕 T芆P )。為了實(shí)現上述的幀間方案,T芕 必須在 5 毫秒范圍內 (200 Hz)。一些直流到直流電源內部運行速度約為 200Hz,在有負載情況下只能交付大約 200 毫秒 (5Hz) 內的電壓變化,結果降低了 基于 DPM 的系統的可用解析度和效用。

  實(shí)時(shí)影響

直到最近,CPU 電壓和頻率調節仍給實(shí)時(shí)性能帶來(lái)了嚴峻挑戰。兩種參數中任何一種發(fā)生變化都造成了不穩定,“重新鎖定”鎖相環(huán)路和其它動(dòng)態(tài)時(shí)鐘機制需要時(shí)間,這些都造成了很長(cháng)的等待時(shí)間(有時(shí)是許多毫秒),在此期間 CPU 既不能執行計算操作,又不能響應外部事件(中斷)。

TI OMAP 和 Intel XScale 等先進(jìn)嵌入式處理器能夠在等待時(shí)間以幾微秒計的情況下調節頻率,并在等待時(shí)間以數十微秒計的情況下響應變化的電壓,不會(huì )中斷系統運行,從而實(shí)現了更積極、更精細的策略。

對實(shí)時(shí)性能的一個(gè)更普遍的挑戰是深度睡眠方式期間對中斷的響應。大多數片上外設可以設定為在收到中斷時(shí)“喚醒”系統,不過(guò)開(kāi)發(fā)人員必須仔細規定各項策略,來(lái)啟用(選擇性的)基于器件的喚醒,并考慮整個(gè)系統的等待時(shí)間和存儲類(lèi)別,從而確保及時(shí)執行中斷處理程序和用戶(hù)空間對事件的響應(優(yōu)先等待時(shí)間)。

  參考平臺的功能

雖然許多 CPU 核心和 SoC(單片系統)的確能夠響應頻繁的時(shí)鐘變化和電壓變化,但它們所在的參考板通常不能做到這點(diǎn)。事實(shí)上,許多 CPU 參考及評估板無(wú)法足夠快地為 DPM 調節時(shí)鐘和電壓,而且很多板根本不允許對這些參數做任何實(shí)時(shí)調節!在這些情況下,開(kāi)發(fā)人員必須等待對各自生產(chǎn)硬件的訪(fǎng)問(wèn),以便衡量各種電源管理方案的益處。

  嵌入式 Linux 的采用、DPM 和差異化

理想情況下,設備用戶(hù)既不需要了解也不必關(guān)心他們購買(mǎi)的手持設備中的底層操作系統。不過(guò),運營(yíng)商供應的“售后市場(chǎng)”軟件正在給予設備制造商的首選操作系統更多的可見(jiàn)度,并正在一個(gè)以前不存在品牌的領(lǐng)域創(chuàng )造品牌。盡管品牌創(chuàng )建一直是微軟公司的一項重點(diǎn),但 Windows 系列在手機市場(chǎng)等大批量服務(wù)交付市場(chǎng)的普及落在了 Symbian、Brew 的后面,并且現在也落后于多種基于嵌入式 Linux 的新型設計。

設備制造商轉向 Linux 的原因之一是有機會(huì )充分利用基于各種標準的電源管理,而不是目前的專(zhuān)有方案。正在發(fā)展的動(dòng)態(tài)電源管理功能,伴隨著(zhù) ARM 公司的 IEM 等電源剖析技術(shù),正在向手機制造商和其他智能設備 OEM 們提供威力強大的新型工具,來(lái)增強產(chǎn)品的差異化,實(shí)現更快的產(chǎn)品上市時(shí)間,并滿(mǎn)足最終用戶(hù)和運營(yíng)商的技術(shù)要求。

linux相關(guān)文章:linux教程


鎖相環(huán)相關(guān)文章:鎖相環(huán)原理


關(guān)鍵詞: 嵌入式Linux DPM 電源管理

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>