Advanced Configuration And Power Interface
What Is Advanced Configuration and Power Interface?
Advanced Configuration and Power Interface (ACPI) is an open industry standard that defines hardware abstraction interfaces between a computing platform's firmware, its hardware components, and the operating system. Through these interfaces, the operating system gains control over device discovery, hardware configuration, and power management policy, functions that were previously handled by platform-specific BIOS firmware. First published in 1996 by Intel, Microsoft, and Toshiba, ACPI has undergone continuous revision and is now maintained by the UEFI Forum; the current release is ACPI Specification 6.6, published in 2025.
ACPI is the central mechanism in what is called Operating System-directed configuration and Power Management (OSPM). OSPM shifts responsibility for power policy from firmware to the operating system, which has visibility into application workloads, user activity, and thermal state and can therefore make more informed decisions about when to throttle processors, spin down storage, or suspend unused peripherals.
Power State Hierarchy
ACPI defines a structured hierarchy of power states covering the entire system, individual processors, and individual devices. Global states (G0 through G3) describe the overall system condition, from fully operational (G0) to mechanically off (G3). Within G0, processor performance states (P-states) allow the operating system to request different combinations of clock frequency and supply voltage, trading compute throughput for power consumption. Sleep states (S1 through S5) define progressively deeper levels of system suspension, with S3 (Suspend to RAM) preserving memory contents while powering down most other components, and S4 (Suspend to Disk) writing memory to nonvolatile storage before removing all power. Device power states (D0 through D3) apply the same graduated structure to individual peripherals, allowing a USB controller or network adapter to enter a low-power mode independently of the rest of the platform.
ACPI Tables and the Namespace
The firmware communicates platform-specific hardware topology to the operating system through a set of data structures called ACPI tables, stored in memory at system startup. The Differentiated System Description Table (DSDT) and Secondary System Description Tables (SSDTs) contain AML (ACPI Machine Language) bytecode that describes device objects, their methods for entering and leaving power states, and their interrupt and bus resource assignments. The operating system's ACPI interpreter evaluates this bytecode to populate a namespace, a hierarchical tree of named objects representing the platform's hardware. This design means that a single operating system build can manage power and configuration across many different hardware platforms without requiring platform-specific kernel modules, as long as each platform's firmware correctly implements the ACPI tables. The ACPI specification maintained by the UEFI Forum documents the complete table formats and namespace semantics.
Device Configuration and Plug-and-Play
Beyond power management, ACPI provides the mechanism by which the operating system discovers non-enumerable devices that cannot self-identify on standard buses such as PCI or USB. Devices on the system board, embedded controllers, and platform-specific peripherals are described in the ACPI namespace with their resource requirements: memory address ranges, I/O ports, interrupt lines, and DMA channels. The operating system reads these descriptions at boot time to allocate resources without conflict. ACPI also supports dynamic device insertion and removal on platforms that implement appropriate hardware notification methods, enabling hot-plug capabilities for embedded devices. Linux kernel documentation on ACPI illustrates how a production operating system implements ACPI enumeration, namespace interpretation, and power state transitions.
Applications
Advanced Configuration and Power Interface has applications in a wide range of disciplines, including:
- Laptop and mobile computing, managing battery life through coordinated processor and peripheral power states
- Server power management, enabling data centers to reduce energy consumption during low utilization periods
- Embedded systems and IoT devices, controlling sleep and wake cycles to extend battery-powered operation
- Thermal management, coordinating fan control and processor throttling in response to temperature sensor data
- Operating system development, providing a hardware-independent interface for device enumeration and resource allocation