First off, I think a little introduction is needed as to what ACPI is.
ACPI (Advanced Configuration and Power Interface) is a power management specification that allows the operating system to control the amount of power distributed to the computer's devices. Devices not in use can be turned off, reducing unnecessary power expenditure. ACPI defines a new interface to the system board, and enables the OnNow design initiative for instantly available PCs.
ACPI is actually a substitute for APM (Advanced Power Management) at the hardware-software level. Unlike APM, which deals with the power management directly through the BIOS, ACPI, instead exposes the tables present in the various installed hardware devices in the system to the operating system. ACPI, in effect, hands off control of power management to the operating system. ACPI is merely a standard implemented by hardware vendors to provide standardized interfaces that are ACPI compliant. In this manor, much of the work done for power management is thus performed by the operating system instead of the BIOS. ACPI was developed by Intel, Toshiba, Phoenix, Compaq and Microsoft to establish common interfaces for the hardware devices in a system to allow various operating systems direct control over the power management of the entire system, devices and operating system alike.
Some advantages are:
- Moving power management functionality into the OS makes it available on every machine on which the OS is installed. The level of functionality varies from machine to machine, but users and applications will see the same power interface on all ACPI compliant machines.
- Power management is not restricted to the BIOS and hardware levels. With ACPI and a suitable model, applications can tune themselves and conserve power.
- There is much less state information for the BIOS to retain and manage because the OS manages it. This leads to a simpler implementation at the BIOS level.
- Power management algorithms are unified in the OS, yielding much better integration between the OS and the hardware.
- The OS can deal with power management of devices dynamically, as the interface provides dynamic registering or loading and unloading of devices.
Some disadvantages are:
- Problems will arise when an ACPI BIOS puts an _ADR device into a deeper sleep state than its bus is expecting. It is important to remember that any buses (including PCI) do not expect devices to disappear from the bus when they are powered down. If a subsequent enumeration of that bus takes place, the bus driver will believe that the powered-down devices have been removed from the system. In Windows 2000, this may result in an "Unsafe Surprise Removal" dialog box. For Windows 98, no dialog box will appear; the disappearance of an IDE device will result in an IDE error bluescreen.
