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