什么是ACPI
高级配置和电源管理接口,APCI是一套协议标准,软硬件都需要实现以配合使用。
大致作用:
ACPI在BIOS中负责管理计算机的电源状态和配置,支持系统休眠、唤醒等高级电源管理功能
APCI系统架构流程
由上面的结构可知:它的规范所设计主要是由上图红框,ACPI registers组成、ACPI BIOS、ACPI Tables三部分组成。首先需要硬件支持,并提供ACPI需要使用的寄存器,然后还需要一系列的表来规定划分模块和定义接口,最后接着bios需要支持ACPI,实现并提供相应的回调。
ACPI可以实现的功能包括:
1.系统电源管理(System power management)
2.设备电源管理(Device power management)
处理器电源管理(Processor power management)
3.设备和处理器性能管理(Device and processor performance management)
4.配置/即插即用(Configuration/Plug and Play)
5.系统事件(System Event)
6.电池管理(Battery management)
7.温度管理(Thermal management)
8.嵌入式控制器(Embedded Controller)
9.SMBus控制器(SMBus Controller)
ACPI定义的电源状态转化结构图
G0/G1/G2/G3表示整体的状态,S1/S2/S3/S4/S5表示睡眠状态, C1/C1…/Cn和P0/P1…Px就是Pstates(EIST)和CStates,D0/D1/D2/D3表示不同的设备电源状态。G/C/S等状态,后接的数字越大,系统耗能越少。
ACPI表
ACPI表是一组数据结构,每个结构体都有固定的表头格式,以及自己特有的格式,它们提供了有关系统硬件的信息,以便操作系统能够识别和管理硬件设备。这些表包括一些预定义的表,如DSDT(Differentiated System Description Table)、FADT(Fixed ACPI Description Table)和SSDT(Secondary System Description Table),以及其他可选的表。
-
DSDT(Differentiated System Description Table):这是最重要的ACPI表,它描述了系统的主要硬件配置,包括主板、CPU、内存、PCI设备等。操作系统启动时会首先解析DSDT表,以获取系统硬件信息。
-
FADT(Fixed ACPI Description Table):这是ACPI规范必需的表,它定义了ACPI系统的基本硬件特性,如电源状态、睡眠状态、唤醒设备等。FADT表用于指导操作系统如何管理系统电源。
-
SSDT(Secondary System Description Table):这是可选的表,用于描述某些特定的硬件设备,如温度传感器、风扇控制器、专用硬件设备等。如果系统中有这些特殊设备,则会包含对应的SSDT表。
-
MADT(Multiple APIC Description Table):这是可选表,用于描述高级可编程中断控制器(APIC)以及中断源。如果系统使用APIC,则会包含MADT表。
-
MCFG(PCI Express Memory Mapped Configuration Space Base Addres