本文将记录下APCI的相关概念。

什么是ACPI?

Advanced Configuration and Power Interface (ACPI) provides an open standard that operating systems can use to discover and configure computer hardware components, to perform power management by (for example) putting unused components to sleep, and to perform status monitoring.

可以将ACPI理解为一套接口,由Firmware定义,os来调用,这样可以隐藏hardware中detail的信息。主要提供ACPI table给os。


The primary intention of the standard ACPI framework and the hardware register set is to enable power management and system configuration without directly calling firmware natively from the OS.

为什么要有ACPI?

Before the development of ACPI, operating systems (OS) primarily used BIOS (Basic Input/Output System) interfaces for power management and device discovery and configuration. This power management approach used the OS’s ability to call the system BIOS natively for power management. The BIOS was also used to discover system devices and load drivers based on probing input/output (I/O) and attempting to match the correct driver to the correct device (plug and play). The location of devices could also be hard coded within the BIOS because the platform itself was non­-enumerable.

These solutions were problematic in three key ways. First, the behavior of OS applications could be negatively affected by the BIOS­ configured power management settings, causing systems to go to sleep during presentations or other inconvenient times. Second, the power management interface was proprietary on each system. This required developers to learn how to configure power management for each individual system. Finally, the default settings for various devices could also conflict with each other, causing devices to crash, behave erratically, or become undiscoverable.

ACPI was developed to solve these problems and others.

Overview


ACPI is an interface specification comprised of both software and hardware elements.

ACPI的组成


Data tables store raw data and are consumed by device drivers. Definition blocks consist of byte code that is executable by an interpreter.


Functions implemented by ACPI include:

  • System/Device/Processor power management
  • Device/Processor performance management
  • Configuration / Plug and Play
  • System event
  • Battery management
  • Thermal management

资料

ACPI比较复杂,若想精通,只能去读Spec。

下面我mark下ACPI的相关资料吧。


参考资料:

  1. wikiwand
  2. ACPI-Introduction
  3. UEFI and ACPI BIOS