ACPI 定义的设备

ACPI 5.0 规范定义了许多用于表示和控制典型平台功能的设备类型。 例如,ACPI 定义了电源按钮、睡眠按钮和系统指示灯。 对于基于 SoC 的平台,Windows 提供内置驱动程序来支持本文所述的 ACPI 定义设备。

有关详细信息,请参阅 ACPI 5.0 规范中的第 9 节“ACPI 定义的设备和特定于设备的对象”。

机盖设备

此设备描述并报告了 clamshell 设备机盖的状态。 有关详细信息,请参阅 ACPI 5.0 规范中的第 9.4 节“控制方法机盖设备”。 机盖设备实现使用 ACPI 5.0 规范中第 5.6.5 节“发出 GPIO 信号的 ACPI 事件”中所述的 GPIO 信号 ACPI 事件机制。

控制方法电池设备

此设备描述、配置和报告平台电池的状态。 有关详细信息,请参阅 ACPI 5.0 规范中的第 10.2 节“控制方法电池”。 SoC 平台上的控制方法电池实现使用发出 GPIO 信号的 ACPI 事件机制,该机制在 ACPI 5.0 规范中的 5.6.5 节“发出 GPIO 信号的 ACPI 事件”中进行了介绍。 对电池和充电硬件的访问是通过 GPIO 或 SPB OpRegions 运行的方法完成的,这些方法在 ACPI 5.0 规范的 5.5.2.4.4 和 5.5.2.4.5 节中进行了介绍。

有关 Windows 中的电池管理的详细信息,请参阅 Windows 电源和电池子系统要求

电池的特定于设备的方法 (_DSM)

为了支持平台对电池的被动热管理,Microsoft 定义了一种 _DSM 方法,用于向平台固件传达由电池的热区域设置的热限制。 有关详细信息,请参阅以下部分:

控制方法时间和警报设备

ACPI 5.0 定义了基于可选控制方法的时间和警报设备的操作和定义,该设备提供与硬件无关的抽象和更可靠的实时时钟 (RTC) 替代方法。 有关详细信息,请参阅 ACPI 5.0 规范中的第 9.15 节“PC/AT RTC/RTC/PLC 设备”和第 9.18 节“时间和警报设备”。 如果未实现标准 PC RTC,或将其用作支持时间和警报设备的 RTC 硬件,则必须设置 FADT 启动体系结构标志字段的“RTC 不存在”位。

支持 InstantGo 功能(以及连接待机电源模式)的平台需要时间和警报设备的时间功能。 这些功能在系统电源转换中维护日常信息,并跟踪时间,即使平台处于关闭状态也是如此。 预计当使用不同的固件接口查询平台时间时,平台上的时间将一致。 例如,获取时间的 UEFI 调用应返回与操作系统使用时间和警报设备获取的时间相同。

时间和警报设备必须从与 UEFI 时间服务相同的时间源驱动。

热区域

为了支持 ACPI 热管理,系统设计者在逻辑上将硬件平台分区为一个或多个称为热区域的物理区域。 传感器设备会跟踪每个热区域中的温度。 当热区域开始过热时,操作系统可以采取措施来冷却该区域中的设备。 这些操作可以归类为被动冷却或主动冷却。

Windows 中的热管理

Windows 热管理模型基于“热区域”ACPI 概念。 这是一个协作固件/操作系统/驱动程序模型,它通过明确定义的接口将传感器和冷却设备从中央热管理组件中抽象出来。 有关详细信息,请参阅 Windows 中的热管理

ACPI 热区域

定义热区域以添加执行以下操作的子对象:

  • 确定热区域中包含的设备:

    • _TZD,用以列出热区域中的非处理器设备。

    • _PSL,用以列出热区域中的处理器。

  • 指定必须采取措施时的温度阈值:

    • _PSV,用以指示操作系统启动被动冷却控制的温度。

    • _HOT,用以指示操作系统的休眠温度。

    • _CRT,用以指示操作系统的关断温度。

  • 描述热区被动冷却行为:

    • _TC1、_TC2,用于热响应能力。

    • _TSP,用于热区域被动冷却的适当温度采样间隔。

  • 报告热区域的温度:

    • _TMP,用于固件报告的温度,或

    • _HID 和 _CRS,用于加载温度传感器驱动程序并为其分配硬件资源。

  • (可选)接收其他温度阈值交叉的通知:

    • _NTT,用于指定要接收通知的其他阈值交叉点。

    • _DTI,用于接收其他阈值交叉点的通知。

  • (可选)描述热区域的主动冷却行为:

    • _ALx,用于列出热区域中的风扇。

    • _ACx,必须打开风扇 x 的温度。

有关 ACPI 热区域的详细信息,请参阅 ACPI 5.0 规范中的第 11 章“热管理”。

逻辑处理器空闲(作为热缓解措施)

平台可以向操作系统指示热区域中的处理器核心应处于空闲状态(而不是受到限制)。 这是通过在一个或多个热区域中包括处理器聚合器设备 (ACPI000C) 来完成的。 当超过热区域的 _PSV 时,Windows 将搁置多个核心。 该数是(1 - <区域被动限制>)* <热区域中的核心数>,或 _PUR 中报告的核心数,以较大者为准。 有关详细信息,请参阅 ACPI 5.0 规范中的第 8.5.1 节“逻辑处理器空闲”。

OEM 可以包含特定于设备的方法 (_DSM),以支持适用于 Windows 的 Microsoft 热扩展。 有关详细信息,请参阅 Microsoft 热量扩展的特定于设备的方法