APM vs ACPI
Written by Marvin Dickens
firstname.lastname@example.org on 21-December-2002.
On Fri, 2002-12-20 at 23:14, Brett I. Holcomb wrote:
> What is the difference in APM vs ACPI for power management? Are they two
> exclusive methods of controling shutdown, etc. or is ACPI an advanced
> version of APM? When I build a kernel can I specify both or do I choose
Well, here is the difference between the two (At least as I understand
APM is a a BIOS-based scheme of system power management. It provides CPU
and device power management and uses device activity timeouts to
determine when to transition devices to low power states.
However, APM falls short:
1.) Every BIOS has its own power management scheme. There is no
consistancy between manufacturers. Each BIOS developer must refine and
maintain their own APM BIOS code and functionality.
2.) The reason for a suspend is never known.
3.) The BIOS is unaware what the user is doing. Ultimately, the BIOS
makes a mess of everything.
4.) The BIOS knows nothing about USB devices, add-in cards and IEEE 1394
ACPI was developed to overcome the deficiencies in APM. ACPI (Advanced
Configuration and Power Interface) is an open industry specification.
ACPI evolves the existing collection of power management BIOS code,
Advanced Power Management (APM) application programming interfaces
(APIs, PNPBIOS APIs, Multiprocessor Specification (MPS) tables and so on
into a well-defined power management and configuration interface
specification. The specification enables new power management technology
to evolve independently in operating systems and hardware while ensuring
that they continue to work together.
Unlike APM, ACPI allows the Operating System (instead of the BIOS) to
control Power Management (OSPM). The support code provided by the BIOS
is not written in the native assembly language of the platform but in
AML (ACPI Machine Language). The BIOS does not determine the policies or
time-outs for power management or resource management.
There are 4 device states under APM: Enabled, Standby, Suspend and Off.
ACPI's device states are extended, with 4 major global states: Working
(S0), Sleeping (S1-S3), Soft-Off (S4), and Mechanical-Off (S5). Sleeping
is further broken down into 3 substates.The ACPI BIOS tables define what
these states mean for individual devices, and the operating system
determines when to move a device, or even the entire system, from one
state to another.
The ACPI-compatible OS mainly acts as a swap manager that swap the
computer to different state based on the information collected. A
transition from one state to another is first started with the OSPM
system code which instructs the OS kernel for the specific state
transition. After the kernel receives the instruction, it asks the
appropriate device driver to perform the operation. Response from the
operation will be passed back to the OSPM from the kernel. This process
will proceed in hierarchical order until all devices and components
reach a specified state.
There is more, but the above info is probably enough...............