以文本方式查看主題

-  曙海教育集團論壇  (http://www.scb-ycwb.com/bbs/index.asp)
--  Linux應用開發  (http://www.scb-ycwb.com/bbs/list.asp?boardid=32)
----  用于便攜式設備動態電源管理的嵌入式Linux技術  (http://www.scb-ycwb.com/bbs/dispbbs.asp?boardid=32&id=1688)

--  作者:wangxinxin
--  發布時間:2010-11-23 13:53:26
--  用于便攜式設備動態電源管理的嵌入式Linux技術

任何擁有筆記本電腦的人都會察覺,當依靠電池供電時,其便攜設備的行為與使用交流主電源供電時不同——顯示屏變暗、處理器的時鐘變慢、系統只要有可能就會轉入待機或睡眠狀態。PDA用戶也發現,在停止使用一段時間后顯示屏將變暗,設備甚至進入睡眠狀態。蜂窩電話用戶也已經注意到,背景光和按鍵照明在完成撥號之后會熄滅。事實上,這些可見行為的背后是軟硬件技術和節電機制在發揮作用。

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

任何動態電源管理策略的基礎都是調整便攜式設備中一個或多個處理器內核的工作電壓和頻率,此外,在高集成度的PowerPC、ARM和基于x86的系統中經常包含一個DSP或智能基帶處理器。的確,諸如英特爾的StrongARM和XScale處理器、TI的OMAP處理器系列以及IBM最近發布的PowerPC 405LP和Transmeta Crusoe等CPU都提供內核電壓和頻率的動態調節功能。不過,現代的嵌入式處理器具有非常高的電源效率,以至于CPU并不總是最主要的耗能器件,其它高耗能的器件包括高性能存儲器、彩色顯示器和射頻接口等。因此,如果動態電源管理系統只能調節處理器內核的電壓和頻率,那么它的用途將有限。

一個真正有用的動態電源管理方案應該可以采用與CPU內核運行相協調或相獨立的方式,???持對一系列電壓和時鐘的快速調節。

DPM架構圖1:電源管理和嵌入式Linux軟件堆棧。

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

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

接口和API

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

內核接口

在面向Linux的DPM架構中,內核中的DPM子系統負責維持整個系統的電源狀態,并把DPM系統的不同電源管理模塊聯系在一起。如果內核的任何其它部分需要與DPM直接對話(盡管這種情況相對較少),那么最好把DPM看成是為驅動程序、中間件和應用程序提供服務的元素。

驅動程序接口

???持DPM功能的設備驅動程序比默認的驅動程序更了解系統狀態:它們在外部事件的驅使下通過設定不同的狀態來反映或遵循那些操作機制,或者通過來自內核DPM子系統的調用來反映或遵循那些操作機制。為了實現更精確的機制決策,驅動程序API也允許驅動程序注冊與它們接口或由它們管理的那些設備的基礎操作特征。

應用程序API

應用程序可以分為三類:


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


*在電源管理知會“包裹器”中的傳統應用程序


*不帶有電源管理的傳統應用程序

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

在嵌入式Linux圖2:時鐘變換過程的延時。 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的原因之一是可以利用標準的電源管理技術替代專有技術,這樣既能達到更快的上市時間,同時又能滿足終端用戶和運營商的技術需求。


主站蜘蛛池模板: 美女裸体a级毛片| 宝宝你里面好烫很软不想出来| 欧美人与动欧交视频| 欧美孕交videosfree黑| 欧美最猛黑人xxxx黑人猛交98| 男女一边摸一边做刺激的视频| 老头天天吃我奶躁我的视频| 香港aa三级久久三级不卡| 亚洲综合在线另类色区奇米| 99精品国产一区二区三区2021| 丰满少妇弄高潮了www| 久草电影在线播放| 亚洲国产日韩在线一区| 人人澡人人澡人人看| 午夜免费小视频| 国产a∨精品一区二区三区不卡| 国产成人精品免费视频大全可播放的| 在我跨下的英语老师景老师| 天天av天天翘天天综合网| 天天狠天天透天干天天怕∴| 天天综合天天色| 国产麻豆一精品一av一免费| 国内精品伊人久久久久影院对白| 国内精品久久久久久久久齐齐| 国产麻豆精品精东影业av网站| 天天摸天天碰天天爽天天弄| 女人张开腿让男人桶个爽| 天堂а√在线中文在线| 国产精品无码无卡在线播放| 国产精品久久久| 国产国语对白露脸| 国产仑乱无码内谢| 四名学生毛还没长齐在线视频| 动漫美女羞羞漫画| 人人澡人人澡人人看添av| 亚洲欧美日韩精品在线| 亚洲激情小视频| 亚洲av日韩综合一区久热| 久草福利资源站| 丰满老熟妇好大bbbbb| 三男挺进一女爽爽爽视频|