Advanced Configuration and Power Interface

The Advanced Configuration and Power Interface ( ACPI) is an open industry standard for power management in desktop computers, notebooks and servers. He will take the lead developed by the company Hewlett -Packard, Intel, Microsoft, Phoenix Technologies and Toshiba, and provides interfaces for hardware detection, device configuration and power management are available.

In particular, he is known by the various power saving modes ACPI S1 to S5, which have replaced the Advanced Power Management ( APM).

Basics

The control over the power management is, unlike the older APM standard, complete with the operating system, which has a better overview of the current power demand and the savings in a computer than the hardware- oriented BIOS. With ACPI, the BIOS of the computer is responsible only for the details of the communication with the hardware, the control lies with the operating system. Compared with APM further options are offered for energy efficiency.

ACPI 1.0 was released in 1996. With version 2.0, 2000, support for 64 -bit architectures was added in July. Version 3.0 September 2, 2004, to include support for PCI Express and Serial ATA supplemented and extended SMP capabilities and taken on the basis of practical experience with implementations at some points clearer. The latest version 4.0 was released on 16 June 2009. New features include, among others, support for USB 3.0.

From Intel ACPI there is a reference implementation with name acpica (ACPI Component Architecture ), which is used in a slightly modified form, among others in the Linux kernel and the BSD derivatives. The acpica implemented operating system independent parts of the ACPI software, here especially the AML interpreter that parses the hardware provided by the ACPI tables.

ACPI does not work on older hardware. For full ACPI support both the motherboard with its chipset, BIOS and timer as well as the operating system and in some cases, the CPU must be ACPI -compliant. Furthermore, a power supply according to ATX 2.01 or later is required.

The hardware can on the System Control Interrupt ( SCI) signal certain events to the OS. These can include, for example, switching from battery to mains power supply or to wake up from power saving mode includes.

Energy management - energy saving modes for ACPI standard

The opportunities to save energy by using ACPI, are manifold.

The entire computer can be in one of four states that are in the ACPI specification " G0 " called up " G3". " G0 " - "Working" corresponds to the " active" state, you can work in the computer, and " G3" - "Mechanical off", that is " switched off mechanically ," is a computer with the plug is pulled. Therebetween is the sleep state "G1 " are turned off in large parts of the machine, but from where it can still be returned in a short time in the active state, and the " soft off " state, " G2", the one computer to ATX standby voltage.

Within G1, the system may vary " deep " sleep (S1 to S4). In the low sleep states system context is retained in the fast -volatile memory so that the system is usable quickly. Before entering the S4 state of the system context is written to a hard drive and restored when waking up from there.

The ACPI standard enables the following modes:

Individual devices in the system can be in the states D0 ( on ) to D3 (off). How much energy is saved in the two intervening states and whether they are ever for a device is available, at the discretion of the hardware manufacturer.

Processors can be located within the G0 state in different sub-states. C0 is the " working state ". Each ACPI -compatible processor controlled beyond the C1 state, is activated when the processor is idle. In this case, the processor, the hlt instruction is transmitted. Once an interrupt is present, he wakes up again. Especially mobile processors not know about it, the stronger Saving Modes C2, C3 or higher, where the awakening takes progressively longer ( at C3 usually already so much that it is not worth einzusteuern this condition, since the way back to C0 too much time needed ). In the C- states it is first just to idle processors. In addition, many modern CPUs can throttle stages at low workload in C0 clock and core voltage. Of these, "Performance States " (P -States), there can be any number. The operating system must decide how strong it throttles the processor at low workload, without a return to the highest level clock " P0 " inappropriate lasts long.

System description tables, AML, ASL

BIOS and chipset are a number of tables are available that describe or provide routines that can call the operating system, the system and its components. They are partly deposited in the form of a special bytecodes, the ACPI Machine Language (AML ). You can be compiled with a compiler and a disassembler between this machine-readable form and the human-readable ACPI Source Language (ASL ). The required software tools available from Intel or Microsoft for free download, so it is for people with ASL skills possible faulty tables to repair especially the DSDT ( Differentiated System Description Table) itself.

Faulty tables out particularly under alternative operating system such as Linux or xBSD problems because some motherboard manufacturers test their tables only under Microsoft Windows. The Microsoft ACPI implementation is known to follow in some places non-character true to the standard, so that any problems do not notice the manufacturers. The two most common errors are that the tables assume that the motherboard will run in any case only on Microsoft Windows or in certain functions do not return a value (implicit return). The ACPI implementations of free operating systems will need to work around these errors.

The following tables exist, among other things:

  • RSDP ( Root System Description Pointer)
  • RSDT ( Root System Description Table)
  • DSDT ( Differentiated System Description Table)
  • 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)
  • SRAT (System Resource Affinity Table)
  • SLIT (System Locality Distance Information Table)

Table descriptions

The system description tables are a hierarchical structure composed of a plurality of sub-tables.

RSDP ( Root System Description Pointer)

This table contains a pointer to another table and is stored on the main board in either of the EBDA (Extended BIOS data area ) or in the memory area of E0000h to FFFFFh. The ACPI driver of the operating system searches the memory for the "magic" string " RSD PTR " and thus obtain the addresses of the RSDP and the other tables. For computers with EFI the RSDP is in EFI and searching the memory is not necessary.

RSDT ( Root System Description Table)

The RSDT contains one or more references to other tables that contain information about practices - according to certain standards - the play included a role in the system. As always, the reference to the Fixed ACPI Description Table ( FADT ) is in the ACPI system, for example provided.

DSDT ( Differentiated System Description Table)

DSDT describes implemented system functions such as power management, Plug and Play and cooling in so-called definition block. Definition block in addition to control information in AML (ACPI Machine Language ) coded control functions. The registered for ACPI functions in the DSDT definition block form the basis for the functioning of the ACPI functions in the system. The DSDT Differentiated Definition Block is loaded during system boot and remains in memory.

XSDT ( Extended System Description Table)

This table contains references to additional descriptions of the configuration and system implementation.

FADT (Fixed ACPI Description Table)

This table contains static, system-related information about power management, as well as pointers to the Firmware ACPI Control Structure (FACS ) and the Differentiated System Description Table ( DSDT ).

FACS (Firmware ACPI Control Structure)

The FACS stores registered by the BIOS system-specific data for ACPI. These data are the basis for communication of the operating system and firmware.

SBST ( Smart Battery Table)

An ACPI table that is used by platforms with Smart Battery subsystems. The table defines power limits that cause the system to change in certain states of sleep and to make the user 's attention.

ECDT ( Embedded Controller Boot Resources Table)

SRAT (System Resource Affinity Table)

This table is read from NUMA - aware operating systems, to assign local threads (Activity carrier ) also local store can. The memory access time is therefore minimized, the system performance increases. A possible "Node Interleaving " function, which can be found in some AMD Opteron BIOS settings, is standard on NUMA - enabled operating systems shut down, DIRECTORS course at.

SLIT (System Locality Distance Information Table)

This table gives the distance of the nodes to each other. This is required to allocate the requested memory to the next (ie fastest ) node if the local memory is too small.

Criticism

ACPI is criticized for being particularly complicated. For operating systems other than Windows, it is difficult to implement in an orderly manner. Why Intel is working for use in mobile devices to an alternative called "Simple Firmware Interface " (SFI ), but recommends that if a hardware both provides to always use ACPI.

Because of errors in the ACPI implementation of many hardware components, the operating system must correct this undocumented behavior with different methods. The Linux operating system is located opposite the BIOS as Windows, to get the better tested Windows mode.

There is a " ACPI Machine Language " compiler from Intel and Microsoft. The manufacturers prefer the Microsoft implementation, because they better works with Windows. Hardware defects due to incorrect power saving measures are eager to avoid the manufacturer.

Bill Gates thought in 1999, whether he should be ACPI designed so that other operating systems have problems with its implementation:

" One thing I find myself wondering about is Whether we shouldn't try and make the " ACPI "extensions somehow Windows specific. It Seems unfortunate if we do this work and get our partners to do the work and the result is did Linux works great without having to do the work. Maybe there is no way to avoid this problem- but it does not bother me. Maybe We Could define the APIs so thatthey can work well with NT and not the others even if They Are open. Or maybe We Could patent something related to this. "

"I wonder if we should not try to make the ACPI extensions somehow Windows specific. It is not very convenient if we and our partners do the work and Linux works so wonderful to have contributed nothing. Maybe you can not avoid it, but it bother me. Maybe we could define the APIs so that they work well with NT and not the others, although they are open. Or maybe we could patent something in this context. "

29051
de