<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          ——
          作者: 時(shí)間:2007-02-28 來(lái)源:eepw 收藏
          為了在產(chǎn)品眾多、競(jìng)爭(zhēng)激烈的市場(chǎng)上使產(chǎn)品與眾不同,手持設(shè)備的制造商們往往把電池壽命和管理作為手機(jī)、PDA、多媒體播放器、游戲機(jī)、其它便攜式消費(fèi)類設(shè)備等產(chǎn)品的關(guān)鍵賣點(diǎn)來(lái)考慮。用戶是從電池壽命這方面來(lái)看待管理的成效,其實(shí)它是多種因素共同作用的結(jié)果,這些因素包括 CPU 功能、系統(tǒng)軟件、中間件,以及使用戶可以在更長(zhǎng)的充電或更換電池的間隔時(shí)間內(nèi)享用各自設(shè)備的策略。 
            管理范圍 
            任何擁有筆記本電腦的人都會(huì)感覺(jué)到,他們的這種便攜式設(shè)備依靠電池運(yùn)行時(shí),與依靠交流電(主電源)運(yùn)行對(duì)比,行為表現(xiàn)不一樣,屏幕變暗了,處理器時(shí)鐘變慢了,并且系統(tǒng)只要有可能,就會(huì)轉(zhuǎn)入待機(jī)或睡眠狀態(tài)。 
            另外,PDA 的擁有者們還發(fā)現(xiàn),在設(shè)備停用一段時(shí)間之后,屏幕會(huì)變暗,設(shè)備甚至進(jìn)入睡眠狀態(tài),而手機(jī)用戶會(huì)注意到,撥號(hào)之后,背光和按鍵照明光熄滅了。在肉眼能夠察覺(jué)的這些行為的背后,是若干軟硬件技術(shù)和策略在起作用。 


           


            明顯的行為如全速運(yùn)行、待機(jī)和睡眠等,充分利用了 CPU 本身的功能來(lái)降低工作電壓和/或時(shí)鐘頻率,從而省電。大多數(shù)設(shè)備用戶覺(jué)察不到的是,實(shí)際的電源管理還可以是漸增的,并且可以每秒發(fā)生好幾百次,而不是整個(gè)系統(tǒng)狀態(tài)大規(guī)模變化。 
            任何動(dòng)態(tài)電源管理 (DPM) 戰(zhàn)略開(kāi)始都是調(diào)節(jié)便攜式設(shè)備中存在的一個(gè)或多個(gè)處理器內(nèi)核的工作電壓和頻率——高度集成的、基于 PowerPC、ARM 和 x86 的系統(tǒng)通常配備一塊 DSP 或智能基帶處理器。實(shí)際上,Intel XScale 和 TI OMAP 等處理器系列提供了內(nèi)核電壓和頻率的動(dòng)態(tài)調(diào)節(jié)。不過(guò),現(xiàn)代嵌入式處理器的用電效率非常高,以至于 CPU 并不總是主要的耗能器件,其它大能耗器件可能包括高性能存儲(chǔ)器、彩色顯示器和無(wú)線接口。因此,動(dòng)態(tài)電源管理系統(tǒng)如果只關(guān)注對(duì)處理器內(nèi)核的電壓和頻率進(jìn)行調(diào)節(jié)的話,那么它的用途也許很有限。 
            真正有用的電源管理方案將支持各種電壓和時(shí)鐘的快速調(diào)節(jié),既可以與 CPU 內(nèi)核的運(yùn)行協(xié)同進(jìn)行,也可以獨(dú)立進(jìn)行。 
            架構(gòu) 
            兩種現(xiàn)有的電源管理方案是來(lái)自“白箱”PC 及筆記本電腦領(lǐng)域,第一種是傳統(tǒng)的“高級(jí)電源管理”(Advanced Power Management,簡(jiǎn)稱 APM)方案,仍用于許多基于 Linux 的便攜式設(shè)備中,而基于微軟操作系統(tǒng)的筆記本電腦和手持設(shè)備已停止采用這種方案了,第二種是“高級(jí)配置和電源接口”(Advanced Configuration and Power Interface,簡(jiǎn)稱 ACPI),這種現(xiàn)行標(biāo)準(zhǔn)得到了英特爾、東芝等公司的支持。對(duì)于 PC、筆記本電腦、服務(wù)器、甚至面向通信設(shè)備的刀片服務(wù)器等“商業(yè)成品”(commercial off-the-shelf,簡(jiǎn)稱 COTS)硬件,ACPI 等系統(tǒng)更受青睞,不過(guò)它們表現(xiàn)出對(duì)目前盛行的 x86/IA-32 BIOS 架構(gòu)的強(qiáng)烈依賴。 

           

            嵌入式系統(tǒng)通常沒(méi)有 BIOS(在 PC/AT 的意義上),并且通常無(wú)法奢侈地配備機(jī)器抽象,來(lái)把操作系統(tǒng)與低層器件和電源管理活動(dòng)隔離開(kāi)來(lái)。因此,在嵌入式 Linux 中,就像在其它針對(duì)電池供電應(yīng)用的操作系統(tǒng)一樣,電源管理活動(dòng)需要對(duì)操作系統(tǒng)內(nèi)核以及設(shè)備驅(qū)動(dòng)程序做特殊干預(yù)。不過(guò)請(qǐng)注意一件重要事情,雖然動(dòng)態(tài)電源管理的低層實(shí)現(xiàn)是駐留在操作系統(tǒng)內(nèi)核,但電源管理戰(zhàn)略及策略可以源自中間件和用戶應(yīng)用軟件代碼,實(shí)際也是如此。 
            接口和 API 
            理想狀況下,電源管理系統(tǒng)對(duì)于軟件堆棧的盡可能多的層次而言,幾乎是完全透明的。實(shí)際上,這正是 Transmeta 公司在其 Crusoe 架構(gòu)中遵循的路線,并且已經(jīng)成為現(xiàn)有的各種基于 BIOS 的電源管理方案的目標(biāo)。不過(guò),擁有手持設(shè)備制造經(jīng)驗(yàn)的開(kāi)發(fā)人員將證明這一事實(shí):整個(gè)系統(tǒng)的各個(gè)部分都需要某種程度的直接參與,如下所述: 
            內(nèi)核接口 在針對(duì) Linux 的 DPM 架構(gòu)中,內(nèi)核中的 DPM 子系統(tǒng)負(fù)責(zé)維持系統(tǒng)的電源狀態(tài),并把 DPM 系統(tǒng)的各個(gè)電源得到管理的元件聯(lián)系在一起。DPM 子系統(tǒng)通過(guò)多個(gè) API 直接與設(shè)備驅(qū)動(dòng)程序通信,這些 API 把驅(qū)動(dòng)程序從完全運(yùn)行狀態(tài)轉(zhuǎn)為各種電源得到管理的狀態(tài)。策略管理器(或應(yīng)用軟件自身)通過(guò)多個(gè) API 向 DPM 子系統(tǒng)提供指導(dǎo),這些 API 定義各種策略,并在定義好的運(yùn)行點(diǎn)之間轉(zhuǎn)移整個(gè)系統(tǒng)。 
            驅(qū)動(dòng)程序接口 啟用了 DPM 的設(shè)備驅(qū)動(dòng)程序比默認(rèn)驅(qū)動(dòng)程序具有更多“狀態(tài)”:由外部事件通過(guò)各種狀態(tài)來(lái)驅(qū)動(dòng)它們,或通過(guò)來(lái)自內(nèi)核 DPM 子系統(tǒng)的回調(diào)來(lái)驅(qū)動(dòng)它們,從而反映并遵循運(yùn)行策略。驅(qū)動(dòng)程序 API 還允許驅(qū)動(dòng)程序登記它們連接和管理的各個(gè)設(shè)備的基本運(yùn)行特征,從而實(shí)現(xiàn)更精細(xì)的策略決策。 
            用戶程序 API 用戶程序(應(yīng)用軟件)分為三類: 
            


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();