Optimizing Software Applications for Power: Part 3 (of 13)

Part 3: Hardware-Software Interface

ACPI describes itself as neither a software specification nor a hardware specification. Rather, it is an interface specification addressing both components and how they should interact with one another.[1]

As such, several elements serve to bridge the gap between hardware features and software management control. ACPI system description tables describe the hardware interface available for management by the software layer on the system. This includes information like register block addresses and sequences of operations needed to manipulate hardware function in particular ways. ACPI Machine Language (AML) is used to compactly represent control methods and objects within the virtual machine, while ACPI Source Language (ASL) is used as a high-level programming language. ASL is compiled into an AML image for execution.

ACPI registers are a standardized hardware component of the power management scheme. They are referred to in detail by the ACPI system description tables. ACPI system firmware is the portion of the BIOS that implements such ACPI interfaces as sleep, wake, and restart. In general, the role of ACPI system firmware is small compared to the legacy APM power management scheme.

References:
[1] Advanced Configuration and Power Interface Specification, Revision 4.0a, April 5, 2010.
For more complete information about compiler optimizations, see our Optimization Notice.