ACPI or Advanced Configuration and Power Interface is an open industry standard for power management in desktop computers, notebooks and servers. Additionally, it provides interfaces for hardware detection, device configuration and power management. Hewlett-Packard, Intel, Microsoft, Phoenix Technologies and Toshiba develops and provides interfaces for hardware detection, device configuration and power management of ACPI. ACPI was introduced in the late 90s by Intel and Microsoft. However, the there were bugs in the BIOS, so a standardization has been made now.
How ACPI or Advanced Configuration and Power Interface works
By pressing the power button, the system turns off as a single event so that the operating system can detect what is going on and it arranges itself to perform an orderly shutdown of the machine without risk to the hardware. This order in hardware level and operating system level is done by ACPI.
Basics of ACPI
ACPI is mainly known for its energy-saving mode that has replaced the Advanced Power Management (APM) . The control of the ACPI power management is that, unlike the older APM standard, complete with the operating system.†ACPI distinguishes between the operating states of the system (S-States), the processor (C-and P-states) and other components (D-States).†Microsoft Windows 98 SE is the first operating system with support for ACPI, Other than MS OS,† HP-UX, Linux supports ACPI now.
- ACPI S0
S0 represents the normal state of a running computer.
- ACPI S1 – S2 – S3
In S1 and S3, the computer wakes up when an active non specific hardware key is pressed, for example by pressing a Key of keyboard.
- ACPI S3 is Suspend to RAM
- ACPI S4 is Suspend to Disk
- ACPI S5 is stutdown for MS OS.
- ACPI C0 to C6 identify the operating and sleep states of the processor or a processor core.
This diagram is a property of Microsoft Technet
Operating systems use these tables to obtain information about the hardware installed:
- RSDP (Root System Description Pointer, Pointer Root System Description)
- RSDT (Root System Description Table, Table Description Root System)
- DSDT (Differentiated System Description Table, Table differentiated system description)
This are a part of the ACPI specification and provides information about configuring of the base system :
- XSDT (Extended System Description Table)
- FADT (Fixed ACPI Description Table)
- FACS (Firmware ACPI Control Structure)
- SBST (Smart Battery Table)
- ECDT (Embedded Controller Boot Resources Table)
- MADT (Multiple APIC Description Table)
- TBARS (System Resource Affinity Table)
- SLIT (System Locality Distance Information Table)
- SLIC (Software Licensing Description Table)
- SSDT (Secondary System Descriptor Table)
The ACPI specification is large and complex with more than 600 pages containing multiple components, tables, declarative, imperative bytecode and specific hardware components. This could cause problems as it runs in an environment with all the privileges, which could cause the operating system that implements ACPI functions could become unstable and insecure.