# ACPI和电源管理

高级配置和电源接口（ACPI）规范是业界采用的开放标准，用于操作系统对I/O设备和资源的系统级配置和管理，包括电源管理。 最初由Intel，Microsoft和Toshiba于1996年提出，后来惠普和Phoenix共同加入了规范工作。 最新的ACPI规范版本5已于2011年发布。 随着行业的广泛采用，有必要支持许多操作系统和处理器体系结构。 为此，标准机构在2013年同意将未来的发展与统一可扩展固件接口（UEFI）论坛合并，该论坛是领先技术公司的联盟，包括最初的ACPI参与者和主要行业参与者，如AMD，Apple，Dell ，IBM和Lenovo。 最近所有的计算机和便携式计算设备都具有ACPI支持。

## ACPI 电源状态

对于用户，计算机系统显示为“开”或“关”。 但是，系统可以支持ACPI规范中定义的多种电源状态。 ACPI符合性表明系统支持定义的电源管理状态，但是这种符合性并不能保证实现最节能的设计。 此外，系统可以具有电源管理功能和调整功能，而无需遵守ACPI。 根据ACPI规范，计算机系统的设备以一致的方式公开给操作系统。 这样，对于系统级电源管理，ACPI定义单个设备的功耗状态（称为设备状态）以及整个计算机系统（称为全局状态或系统睡眠状态）。 操作系统和设备可以查询和设置这些状态。 重要的系统总线（例如外围组件互连（PCI）总线）可能会利用这些状态。

## 全局状态

ACPI规范为符合ACPI的计算机系统定义了四个可能的全局“ Gx”状态和六个可能的睡眠“ Sx”状态（表6-3）。 但是，某些系统或设备可能无法处于所有状态。

Table 6-3. ACPI 全局状态

| 状态 | Gx | Sx | Description                                                                                            |
| -- | -- | -- | ------------------------------------------------------------------------------------------------------ |
| 活跃 | G0 | S0 | 该系统完全可用。 CPU处于活动状态。 设备可能处于活动状态，也可能不处于活动状态，并且可能进入低功耗状态。 S0有一个子集，称为“离开模式”，其中监视器已关闭，但后台任务正在运行。            |
| 沉睡 | G1 | S1 | 系统似乎已关闭。 降低了功耗。 所有处理器高速缓存均被刷新，并且CPU停止执行指令。 维持CPU和RAM的电源。 不必要的设备可能已关闭电源。 这种状态很少使用。                      |
| 沉睡 | G1 | S2 | 系统似乎已关闭。 CPU上电 高速缓存被刷新到RAM。 与S1类似，也很少使用S2状态。                                                           |
| 沉睡 | G1 | S3 | 通常称为待机，睡眠或Suspend-to-RAM（STR）。 系统似乎已关闭。 系统上下文保存在系统DRAM上。 所有电源都关闭了非关键电路，但保留了RAM电源。 过渡到S0所需的时间分别长于S2和S1。 |
| 休眠 | G1 | S4 | 称为休眠或磁盘挂起（STD）。 系统似乎已关闭。 降低功耗                                                                          |

到最低水平。 系统上下文保存在磁盘上，以保留OS，应用程序和打开的文档的状态。 主存储器的内容保存到非易失性存储器（例如硬盘驱动器）中，并且除了恢复逻辑外，系统都已断电。| | 软关机 | G2 | S5 | 系统似乎已关闭。 系统上下文未维护。 某些组件可能仍保持供电，因此 计算机可能会从键盘，鼠标，LAN或USB设备的输入中唤醒。 如果工作上下文存储在非易失性存储器中，则可以将其恢复。 除重新启动所需的逻辑外，所有电源均已关闭。 需要完全引导才能重新启动。| | 硬关机 | G3 | -- | 系统完全关闭，不消耗电源。 需要完全重新引导才能使系统返回到活动状态。|

## 设备状态

所有设备硬件的电源功能都不相同。 例如， LAN适配器将具有唤醒系统的功能； 当系统处于待机模式时，音频硬件可能允许流式传输，依此类推。 某些设备可以细分为具有独立电源控制的功能单元。 此外，某些设备（例如键盘，鼠标，调制解调器和LAN适配器）具有在设备本身处于睡眠状态时将系统从睡眠状态唤醒的功能。 这些设备的硬件必须汲取较小的渗漏电流，并配备检测外部唤醒事件的能力，因此有可能实现这种功能。 ACPI规范定义了设备相关的D状态，如表6-4所示。

| Dx | Subset of Dx | Description                                                                 |
| -- | ------------ | --------------------------------------------------------------------------- |
| D0 | ---          | 完全打开并运行                                                                     |
| D1 | ---          | 中间电源状态。 定义因设备而异                                                             |
| D2 | Hot          | 设备已关闭并且对总线无响应，但是系统开启。 设备仍连接到电源。 D3 Hot具有辅助电源，可启用更高的电源状态。 从D0到D3的过渡意味着D3 Hot |
| D3 | ---          | 设备无电-设备和系统均关闭。 该设备可能会消耗trick流功率，但是需要唤醒事件才能将设备和系统移回D0和/或S0状态                 |

ACPI定义了状态D0到D3，并将D3细分为D3热和D3冷。 某些设备或操作系统无法区分D3是热还是冷，并且将D3视为没有设备电源。 但是，Windows 8明确跟踪D3热和D3冷。 D1和D2状态是可选的，但如果使用得当，它们将在设备空闲时提供更好的清洁度。
