谈到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提出时是由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的功耗。