微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > Linux PC可选用的电源管理:DPM

Linux PC可选用的电源管理:DPM

时间:09-21 来源:互联网 点击:
谈到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功效部分。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top