什么是ACPI?
ACPI的全称是Advanced Configuration and PowerInterface。它是由早期的APM发展和改进起来的,其主要作用是为操作系统提供一套标准的电源管理接口。
ACPI关键概念:
经常听起别人谈到什么Gx State, Cx State, Sx State的, 听得我不知所云,后来看了ACPI的spec后,才有所了解, 先把图搞下来:
- Power Management State(电源管理状态)
为了方便电源管理,ACPI Specification 中定义了四种关键的电源管理状态:
- Global State (Gx State) 全局态,这个属于是top-level 的状态
- G0 --Working State 工作态(S0)
- G1 --Sleeping State 睡眠态(S1-S4)
- G2 --Soft-off State (S5)
- G3 --Mechanical -off State
- System Sleeping State(Sx) 系统睡眠态, S1-S4主要是由恢复到运行态的时间来区分的
- S0 --对应G0,运行态
- S1 --系统时钟停止,处理器停止
- S2 --系统 Cache清除,处理器停止
- S3 --Suspend to RAM
- S4 --Suspend to Disk
- S5 --Soft-off
- CPU Power State(Cx)
- C0 -- 工作态,全速运行
- C1 -- CPU停止工作
- C2 -- 低功耗,高延时
- C3 -- 更低功耗,更高延时
- Device State(Dx)
- D0 -- Full Power 全速
- D1 -- 中间态
- D2 -- 比D1能耗低,延时高
- D3 -- Off
- ASL & AML Language
ASL是一种解释性的语言,由它可以编译成支持ACPI的OS认识的AML语言。
- ACPI Control Method (ACPI控制方法)
类似于C语言中的函数,AML的函数叫做Method. 跟据ACPI的规范,BIOS提供了一些标准的Method给OS调用。例如_PTS, _WAK等等。