by May 6, 2003 0 comments

ACPI or Advanced Configuration and Power Interface is an important development in power-management technology. It is aimed at providing a standard way of controlling the power management and plug-n-play functions of computer hardware. Spearheaded by Intel’s Instantly Available Technology initiative and Microsoft’s OnNow design feature, the ACPI specification allows configuration of motherboard devices and power management in notebooks, laptops, desktops and servers and is created as a replacement for PnPBIOS and

It is an advancement over APM (Advanced Power Management), a system in which the BIOS handles the power management without the knowledge of the OS. APM works based on the values entered in the BIOS regarding the ‘idle’ values of the screen and hard-drive exceeding which the BIOS turns off the screen or the hard-drive. 

As each BIOS has its own interface, the power-management policy had to be re-implemented for each platform, using

This, however, makes it prone to bugs. Also, APM-driven power management brings the computer to a state where all activities, including communication connections are totally dropped.

Power management controlled by BIOS also makes it difficult to justify the computer to go into suspend mode. A suspend request can be anything–the response of the user pushing a sleep button, or the BIOS sensing that the system is idle, or the battery running out of power. So even if the computer is not really idle, the BIOS would attempt to put the system in a low-power state. This proves to be disruptive for many users. 

How ACPI works
With ACPI, the OS is in control of the timing of the power management. Then, the BIOS takes over and conducts the actual power management. This is a more intelligent way to do things. ACPI uses OSPM (OS-directed configuration and Power Management) to enumerate and configure motherboard devices and manage their power. 

OSPM needs platform-specific information, which is provided by the ACPI system firmware. The ACPI system firmware describes the system’s characteristics by placing data into tables in the main memory. The most important of these tables is the DSDT (Differentiated System Description Table) because this is where the system’s devices are described. These tables are written in ASL (ACPI Source Language) and compiled into AML (ACPI Machine Language) for inclusion in the BIOS. 
ACPI specifies four base power levels, with three substates (S1—S3) for the sleeping state. 

ACPI States
S0/Working: The CPU is fully up and running, with devices are powering up and down as required.
S1: The CPU is stopped; RAM is refreshed; the system is running in a low power mode. 
S2: The CPU has no power; RAM is refreshed; the system is in a lower power mode than S1.
S3: The CPU has no power; RAM is in slow refresh; the power supply is generally in a reduced power mode. 
S4/Soft Off: The hardware is completely off and system memory has been saved to disk. 
S5/Off : The hardware is completely off, the OS has shut down; nothing has been saved.

The ACPI BIOS tables define what these states mean for individual devices, and the OS determines when to move a device, or even the entire system, from one state to another. A BIOS-based ACPI routine is then activated, which performs the low-level hardware handshaking required to change the device’s power state.

ACPI is intended to be OS-independent and the AML interpreter is written as an OS-independent module. This module exposes an interface that the OS uses, and also requires basic OS-dependent functionality to be implemented for each OS.

ACPI support
The BIOS, the processor and the OS all have to support ACPI. Win 95 and Win NT systems do not support ACPI. ACPI in Windows first appeared with Win 98 and then with Win 2000 upwards systems. To check for ACPI support in your Windows installation, you can see if you have the option to ‘Standby’ in the ShutDown menu. If your BIOS does not support ACPI, you can get a BIOS update to enable ACPI support from the BIOS vendor. Another way to check for ACPI-support in your Windows instalationl is by going to the Device Manager (StartMenu>Settings> ControlPanel>System> Hardware>Device Manager) and looking for Microsoft ACPI-Compliant System under System Devices.

Although ACPI is meant to be OS-independent, ACPI support in Linux-based systems is still in its early stages. It has been offered most recently by Mandrake Linux 9.1 ‘Bamboo.’

An open specification, ACPI is co-developed by Compaq, Intel, Microsoft, Phoenix and Toshiba. ACPI1.0 was released in December 1996. The ACPI 2.0 Specification (revised to 2.0b in October 2002) is available for download from the ACPI website

Shruti Pareek

No Comments so far

Jump into a conversation

No Comments Yet!

You can be the one to start a conversation.