Opentopia Directory Encyclopedia Tools

Advanced Configuration and Power Interface

Encyclopedia : A : AD : ADV : Advanced Configuration and Power Interface


The Advanced Configuration and Power Interface (ACPI) specification is an open industry standard first released in December 1996 developed by HP, Intel, Microsoft, Phoenix and Toshiba that defines common interfaces for hardware recognition, motherboard and device configuration and power management. According to its specification[link], "ACPI is the key element in Operating System-directed configuration and Power Management (OSPM)".

The most widely recognized element of the standard is power management, of which there have been two major improvements. First, it puts the operating system (OS) in control of power management. Conversely, the previously existing APM model assigns power management control to the BIOS, with limited intervention from the OS. In ACPI, the BIOS provides the OS with methods for directly controlling the dirty details of the hardware so it has nearly complete control over the power savings.

The other important feature of ACPI is in bringing power management features previously only available in portable computers to desktop computers and servers. Extremely low consumption states, i.e. in which only memory, or not even memory is powered, but from which ordinary interrupts (real time clock, keyboard, modem, etc.) can quickly wake the system, are today available in portables only. The standard should therefore make these features available for a wider range of systems.

The standard supports keys on a normal keyboard for suspending or powering off the computer. Some vendors (e.g. ASUS and Compaq) have extended this feature and use it for other keys, especially so-called Power management keys.

ACPI cannot be applied to older hardware; for it to work, the operating system, the motherboard chipset, and for some functions even the CPU need to be designed for it.

ACPI uses its own ACPI Machine Language (or AML) for implementing power event handlers, rather than the native assembly language of the host system.

The first version of Microsoft Windows to support ACPI was Windows 98. Linux, FreeBSD, NetBSD and OpenBSD all have at least some support for ACPI, though problems tend to arise from buggy implementations, especially those which Microsoft platforms and the Microsoft compiler support (though the implementation is not standards-compliant). Some people misinterpret this as the Microsoft tools being able to work around the bugs, when in fact the Microsoft tools simply allow the bugs to go unchecked and handle them in a non-standards-conforming way.

States

Global states

The ACPI specification defines the following seven states (so-called global states) an ACPI-compliant computer system can be in:

Furthermore, a state Legacy is defined as the state when an operating system runs which does not support ACPI. In this state, the hardware and power is not managed via ACPI, effectively disabling ACPI.

(Reference: ACPI specification 3.0a as linked to under External links, section 7.3.4)

Device states

The device states D0-D3 are device-dependent:

Processor states

The CPU power states C0-C3 are defined as follows:

Performance states

While a device or processor is operating (D0 and C0, respectively), it can be in one of several power-performance states. These states are implementation-dependent, but P0 is always the highest-performance state, with P1 to Pn being successively lower-performance states, up to an implementation-specific limit of n no greater than 16.

P-states in Intel processors are called SpeedStep, and in AMD processors, Cool'n'Quiet.

Critique

ACPI is a complex specification (over 500 pages long) that contains multiple components, including declarative tables, an imperative byte-code, and specific hardware components. Concerns have been repeatedly raised [link] that an implementation of ACPI has to run complex, untrusted and potentially buggy bytecode with full privileges, thus potentially making any system that implements ACPI unstable and/or insecure.

See also

External links

This article was originally based on material from the Free On-line Dictionary of Computing, which is [Foldoc licenselicensed] under the GFDL.

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: