Linux PC可選用的電源管理:DPM
談到PC的電源管理標準,不作二想的當然是ACPI,不過這樣的想法如今似乎需要一些補充,若將PC的定義更廣義延伸來看,那么可使用的電源管理機制、標準將不單只有ACPI,DPM(Dynamic Power Management,動態(tài)電源管理)則是另一個可評估的選擇,以下我們將對此逐一說明理由。
不是所有PC OS都支持ACPI
PC使用ACPI的電源管理機制已久,打從1996年發(fā)布首版標準以來已經(jīng)使用超過10年的時間,就連Apple在2005年決議將Mac OS X移植到x86平臺后,所使用的電源管理規(guī)范也一樣是ACPI,由此來看真的需要選用ACPI之外的省電標準嗎?
這樣的疑問,主要是以Windows、Mac OS X等操作系統(tǒng)所發(fā)出的觀點,但PC并不是只能執(zhí)行這兩種操作系統(tǒng),也包含Linux、FreeBSD以及其它適用于x86架構(gòu)的嵌入式操作系統(tǒng),這些操作系統(tǒng)就不見得依循ACPI規(guī)范。舉例來說,2003年國際信息大廠(注1)開始積極于商用市場推行Linux PC,當時的Linux在核心程序上對ACPI的支持尚未完備,因此預(yù)設(shè)的省電機制是更早期的APM,而非ACPI。
△圖說:DPM的架構(gòu)圖,圖中可見DPM可控管多項硬件,包括電源供應(yīng)器、系統(tǒng)頻率產(chǎn)生器、內(nèi)存控制器、處理器等。(資料來源:www.dynamicpower.sourceforge.net)
ACPI依舊要與BIOS互動
其次,ACPI訂立的初衷,是期望讓操作系統(tǒng)直接進行電源管理,言下之意是取代APM,APM是在BIOS的韌體層面來
不過,在后續(xù)的實際發(fā)展上似乎未能實現(xiàn)初衷,甚至有反其道的跡象,首版ACPI提出時是由Intel、Microsoft、Toshiba等三家業(yè)者所共同訂定,并沒有BIOS業(yè)者(如AMI、Phoenix等)的參與,就BIOS業(yè)者的角度來看,ACPI是稀釋其BIOS功效價值的標準,對ACPI自然是采抵抗姿態(tài),然之后ACPI標準進行改版(2000年的2.0版),開始有BIOS業(yè)者的參與制訂,由此可知:ACPI不僅沒有達到架空BIOS的目的,依舊對BIOS有程度上的依賴,甚而有更密切之跡。
就PC使用者而言,省電機制是完全交付給BIOS,還是完全交付給OS,或者兩相合作等,這些都不重要也不用去在意,但對運用PC架構(gòu)、PC技術(shù)的開發(fā)設(shè)計者而言就必須關(guān)注,OS與BIOS相依的結(jié)果將會影響設(shè)計。
舉例而言,截至目前為止Microsoft Windows所用的BIOS是傳統(tǒng)的BIOS,也就是以真實模式、16-bit指令執(zhí)行的BIOS程序,此是打從1981年IBM PC推出以來就有的不成文標準,相對的Apple將Mac OS X轉(zhuǎn)移到PC之后,所用的BIOS標準并非是傳統(tǒng)PC BIOS,而是Intel所力主的新PC韌體標準:EFI(Extensible Firmware Interface,可延伸式韌體接口),EFI是以保護模式、32-bit指令執(zhí)行的BIOS。
由此來看,Mac OS X無法使用傳統(tǒng)BIOS,Windows也無法支持先進的EFI,如此就更難使ACPI平順運作,即便ACPI已訂立一套自有的硬件抽象層,理論上可讓OS用更簡潔(去除繁瑣、復(fù)雜細節(jié))、更具結(jié)構(gòu)性的方式來與BIOS協(xié)同運作,然OS與BIOS間的程度上相依,就工程角度而言等于減損了BIOS的換替彈性。
△圖說:DPM的運作狀態(tài)轉(zhuǎn)移圖其中包含了閑置、中斷執(zhí)掌、工作排程、休眠等各種狀態(tài)。(資料來源:www.dynamicpower.sourceforge.net)
附帶一提的,除了傳統(tǒng)BIOS、EFI BIOS外,Transmeta公司的Crusoe、Effineon等處理器由于使用特有的CMS(Code Morphing Software)轉(zhuǎn)化機制,因此其使用的BIOS既不是傳統(tǒng)BIOS也不是EFI BIOS,如此與ACPI間的通透支持也同樣困難。
支援ACPI不利于移攜
說明到目前為止其實仍不會覺得問題嚴重,PC的主流OS僅一、二種,同樣的主流BIOS也僅來自于一、二家業(yè)者,很少有機會用到主流以外OS或BIOS,因此有無交換性、替換彈性似乎也無關(guān)緊要。且看來看去,影響最多的恐怕是Linux,Linux在ACPI方面的支持進度與完整性必是落后于Windows,數(shù)年前還是以APM為主。
同時Linux的優(yōu)勢在于平臺移攜性(Portable),小至手表、PDA,大到大型主機、超級計算機都可使用Linux,相對的Mac OS X除了從PowerPC轉(zhuǎn)往x86外,并沒有更多的跨平臺想法,所以轉(zhuǎn)移至x86后,可以更專致于擁抱x86硬件、EFI韌體,所以有否BIOS換用彈性對Mac OS X并不重要,然對Linux就相對重要,Linux在操作系統(tǒng)核心內(nèi)所支持的電源管理機制及標準,必須盡可能適用于不同的硬件,連帶的也要適用于不同的韌體才行,如此才能持續(xù)保有移攜性的優(yōu)勢。
所以,Linux確實比Windows、Mac OS X更需要一套真正不與韌體關(guān)連的電源機制,以便伴隨Linux移植至各硬件平臺時都仍能持續(xù)適用并發(fā)揮功效,若以此角度來審視則ACPI并不適合Linux,或至多只適合Linux PC。
ACPI不適合嵌入式系統(tǒng)
進一步的,也因為Linux具有高度移攜性,所以今日許多的嵌入式系統(tǒng)都以Linux為其操作系統(tǒng),此時的Linux成為嵌入式操作系統(tǒng),在此種運用下ACPI就更不適合Linux。
關(guān)于此,對嵌入式設(shè)計有概念者,即能很快了解個中的不適性,ACPI是針對一般性用途的操作系統(tǒng)所設(shè)計,即是用于數(shù)據(jù)處理之類的應(yīng)用,這類型的應(yīng)用講求同時執(zhí)行多個應(yīng)用程序,程序執(zhí)行的數(shù)目不定,運算資源、硬件資源的分配上著重在整體最大化效益,且未特別看重執(zhí)行的響應(yīng)速度。
相對的,嵌入式操作系統(tǒng)只執(zhí)行單一或少數(shù)的應(yīng)用程序,程序的執(zhí)行個數(shù)固定,運算資源、硬件資源講究重點式分配、優(yōu)先權(quán)式分配,并強調(diào)關(guān)鍵程序的執(zhí)行速度反應(yīng)??梢娨话阈杂猛镜牟僮飨到y(tǒng)與嵌入式操作系統(tǒng)(也多半是實時操作系統(tǒng))在特性與取向上近乎天南地北,倘若將ACPI用于嵌入式操作系統(tǒng),必會影響執(zhí)行運作的實時表現(xiàn)。
△圖說:就高層次的角度來看DPM的技術(shù)提案,其中政策管理器將用在操作系統(tǒng)核心與應(yīng)用程序,而政策則置于操作系統(tǒng)核心中的DPM功效部分。(資料來源:www.dynamicpower.sourceforge.net)
PC架構(gòu)的嵌入式應(yīng)用正在狂增
如此看來問題似乎更小,一方面不是Windows、Mac OS X等操作系統(tǒng)的問題,另一方面也不是Linux PC的問題,Linux PC大可與Windows、Mac OS X一樣只支持ACPI,此僅是屬于Linux在嵌入式應(yīng)用設(shè)計上的問題。
這樣的觀點并沒有錯,但若是從今日的各種發(fā)展趨勢來看,就會發(fā)現(xiàn)這樣的觀點并不完全。首先,現(xiàn)在有愈來愈多的嵌入式應(yīng)用是實行x86架構(gòu),例如POS收款機、ATM提款機、KIOSK信息亭等,其機內(nèi)的本體基礎(chǔ)都是x86、都是PC,但操作系統(tǒng)方面多半不是Windows或Mac OS X,而是Linux或其它的嵌入式系統(tǒng),此外如STB視訊機頂盒、PVR硬盤錄放機等也是如此。
再者,Microsoft也積極為PC嘗試各種新應(yīng)用出路,媒體中心(Media Center)即是此中的一項代表,媒體中心從某種角度看也等于是一種嵌入式應(yīng)用,擔任媒體中心角色的計算機置放在客廳中,與電視相連,只具備固定的幾項功效,只執(zhí)行固定的幾項應(yīng)用,如此幾與嵌入式設(shè)計無異。
不僅如此,PC架構(gòu)的服務(wù)器也有朝嵌入式發(fā)展的取向,伺服應(yīng)用機(Server Appliance)(注2)、NAS(Network Attached Storage)、刀鋒服務(wù)器(Blade Server)等即是此取向的代表,此類型的機器設(shè)備都具有一個共通點,那就是只執(zhí)行單一或固定的幾項應(yīng)用,并講究執(zhí)行響應(yīng)速度與服務(wù)效能。
如此看來,以PC架構(gòu)為基礎(chǔ)的嵌入式應(yīng)用正大幅增加,且用的都是嵌入式操作系統(tǒng),既為嵌入式應(yīng)用,雖然不是所有嵌入式應(yīng)用都有實時處理的需求,但仍有很大比重都需要實時性,包括視訊編譯碼、網(wǎng)絡(luò)協(xié)議傳輸?shù)?,如此也就需要更能支持與呼應(yīng)嵌入式實時處理的電源管理機制,而不是一般性數(shù)
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論