Linux PC可选用的电源管理:DPM
谈到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可控管多项硬件,包括电源供应器、系统频率产生器、内存控制器、处理器等。(资料来源:www.dynamicpower.sourceforge.net)
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的运作状态转移图其中包含了闲置、中断执掌、工作排程、休眠等各种状态。(资料来源:www.dynamicpower.sourceforge.net)
附带一提的,除了传统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功效部分。(资料来源:www.dynamicpower.sourceforge.net)
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架构为基础的嵌入式应用正大幅增加,且用的都是嵌入式操作系统,既为嵌入式应用,虽然不是所有嵌入式应用都有实时处理的需求,但仍有很大比重都需要实时性,包括视讯编译码、网络协议传输等,如此也就需要更能支持与呼应嵌入式实时处理的电源管理机制,而不是一般性数
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论