Windows 98/SE/Me/2000/XP都支持两种形式的电源管理,它们分别是APM(Advanced Power Management,高级电源管理)和ACPI(Advanced Configuration and Power Interface高级配置电源界面)。

APM存在先天不足

目前APM 1.2是最新的APM标准,是一种基于BIOS的系统电源管理方案,它提供了CPU和设备电源管理并通过设备活动超时设定来决定何时将设备转换到低耗能状态。不幸的是,APM具有许多不足之处,下面一一列出:

(1)每种BIOS都有它自己的电源管理方案,这就使得计算机与计算机之间缺乏一致性,每个BIOS开发者必须精制和维护他们自己的APM BIOS代码和功能。

(2)系统进入挂起的原因永远也无法知晓。用户是否按了进入睡眠按钮,还是BIOS认为系统进入了空闲状态,或者电池电压过低,这些信息都无法知道,但是Windows必须知道挂起的原因,即使系统没有进入空闲状态。

(3)BIOS无法觉察到用户在干什么, 只有通过监视中断和I/O端口来猜测用户的活动。有时,BIOS会使系统处于完全混乱的状态,当系统没有空闲时将系统挂起或者当系统处于空闲状态时,却不进入挂起状态。

(4)早期版本的BIOS APM(1.0和1.1)不提供任何系统性能信息,唯一决定机器是否支持睡眠状态的方法就是尝试将系统转入睡眠模式。如果BIOS不支持睡眠模式,那将导致死机。BIOS APM 1.2解决了这个缺陷。

(5)BIOS对USB设备,加插的电脑配件卡和IEEE 1394设备全然不知,这就会导致当以上设备没有进入空闲状态,而BIOS却认为系统已经进入空闲状态。

ACPI针对APM的缺陷而诞生

由于APM具有以上不足,ACPI应运而生,ACPI就是为了解决APM的缺陷而面世的。ACPI(Advanced Configuration and Power Interface,高级配置和电源界面)是一个由COMPAQ、Intel、Microsoft、Phoenix和Toshiba共同开发的开放的工业规范。ACPI建立了工业标准接口,这样操作系统在膝上型电脑、桌上型电脑及服务器上就可以直接配置和电源管理。

ACPI将现有的电源管理BIOS代码、APM应用编程接口、PNP BIOS应用编程接口、多处理器规范表格等集合成一种新的电源管理和配置接口规范。该规范的好处就是,如果能确保新的电源管理技术能与操作系统及硬件协调工作的话,那就可以独立用操作系统和硬件来发展新的电源管理技术。ACPI允许操作系统(而不是BIOS)控制电源管理,这一点与APM不相同。

ACPI标准定义了硬件寄存器、BIOS接口(包含配置表格、控制方法以及主板设备列举和配置)、系统和设备的电源状态和ACPI热模型。BIOS提供的支持代码不是用汇编语言而是用AML(ACPI Machine Language,ACPI机器语言)编写的。BIOS不能决定用于电源管理或资源管理的策略或超时。

最后要指出的是系统中的所有设备可以互相进行通讯来了解彼此的使用情况,而且都受操作系统的控制,操作系统对正在运行的系统的状态了如指掌,所以操作系统处于执行电源管理的最佳位置。

综上所述,ACPI比APM有着很多的优势,所以推荐大家使用ACPI来对系统进行管理。