ACPI规范概览-2

Posted rayylee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACPI规范概览-2相关的知识,希望对你有一定的参考价值。

1. ACPI术语

本规范定义了一些术语,主要分为三部分,通用术语、全局系统状态(对用户可见)、设备状态(对用户不可见)。

通用术语General ACPI Terminology

术语含义
Advanced Configuration and Power Interface (ACPI)ACPI规范
ACPI Hardware支持OSPM特性的硬件
ACPI Namespace包含命名object的分层树桩结构,object可以是数据,控制方法等。namespace由DSDT生成
ACPI Machine Language (AML)控制方法和数据的伪代码
Advanced Programmable Interrupt Controller (APIC)intel的中断控制器,支持多处理器
ACPI Source Language (ASL)ASL编译结果为AML
BiosBasic Input/Output System,在这特指传统的x86 BIOS,不是一个通用概念
Boot Firmware描述boo阶段的firmware通用术语,
Control Method用来描述OS如何执行的简单硬件动作
Device通用术语,用来指代任何计算、输入输出、存储单元。例如CPU、GPU、BMC、TPM、NIC、HDD
Device Contextdevice存储的可变数据,如果device进出某个power状态,由OSPM负责保存恢复这些信息
Device Firmware仅有特定设备使用的firmware,通常由设备厂提供
Differentiated System Description Table (DSDT)OEM提供DSDT给OS来识别其配置信息
Firmwareany BIOS or firmware on a platform
Fixed ACPI Description Table (FADT)包含ACPI硬件寄存器块以及DSDT的物理地址
Fixed FeaturesACPI规范中定义的特性,限制硬件的行为
Fixed Feature EventsACPI规范汇总定义的事件
Fixed Feature Registers系统I/O空间中的一组硬件寄存器
Global System Status对用户可见的全系统状态,在ACPI规范中有G0~G3
Host Processor通常指运行用户程序的CPU
Host Processor Boot Firmwarehost processor运行的firmware
Host Processor Runtime Firmwarehost processor运行时程序
Intel Architecture-Personal Computer (IA-PC)intel架构PC机
Legacy平台固件决定电源管理策略。区别于OSPM系统的架构
Legacy BIOSx86 BIOS架构,正在被UEFI替代
Legacy Hardware计算机系统不支持ACPI or OSPM
Legacy OS不能感知电源管理功能的OS
Management FirmwareBMC使用的firmware
Namespace一块连续的地址空间
Non-Host Processor在一个平台中指代微控制或者协处理器
Platform一个平台由多个设备组成,这些设备组装在一起并协同工作以提供特定的计算功能,平台的示例包括笔记本电脑、台式机、服务器、网络交换机、刀片等,它们独立于操作系统、用户应用程序或用户数据。
Platform Boot Firmware平台所有boot firmware的集合。它们做一些平台基本的初始化,然后把控制权交给加载程序或OS。这之后,boot firmware就没有用处了
Platform Runtime Firmware平台所有runtime firmware的集合。OS请求特定功能时,通过firmware提供服务。
Root System Description Pointer (RSDP)必须向OS提供RSDP,它仅有目的是提供RSDT和XSDT的物理地址
Root System Description Table (RSDT)RSDT包含了一组其他系统描述表的物理地址
Secondary System Description Table (SSDT)后边分析
eXtended Root System Description Table (XSDT)后边分析

全局系统状态定义Global System State Definitions

全局系统状态(Gx 状态)适用于整个系统并且对用户可见。全局系统状态由六个主要标准定义:

  1. 应用软件是否运行?
  2. 从外部事件到应用程序响应的延迟是多少?
  3. 功耗是多少?
  4. 是否需要重启操作系统才能恢复工作状态?
  5. 拆机安全吗?
  6. 可以电子方式的进入和退出状态吗?

statedescription
G0 Working计算机处于运行态。 在这种状态下,外围设备的电源状态可以动态变化。 用户可以通过一些 UI 选择系统的各种性能/功率特性,以使软件针对性能或电池寿命进行优化。 系统实时响应外部事件。 在这种状态下拆卸机器是不安全的。
G1 Sleeping计算机消耗少量电力的状态,没有运行程序,从最终用户的角度来看,系统似乎处于OFF状态,例如显示处于关闭的)。无需重启即可恢复工作操作系统,但是需要一定的延迟,系统大部分的上下文由硬件保存,其余由系统软件保存。 这是在这种状态下拆卸机器是不安全的。
G2/S5 Soft Off计算机消耗最少电量的状态。 没有用户模式或系统模式代码运行。 此状态需要较大的延迟才能返回工作状态。 系统的上下文不会被硬件保存。 必须重新启动系统才能返回工作状态。 不安全在这种状态下拆卸机器。
G3 Mechanical Off通过机械方式进入和离开的计算机状态。 意味着没有电流通过电路,并且可以在不损坏硬件或危及服务人员的情况下对其进行操作。 必须重新启动操作系统才能返回工作状态。 不保留硬件上下文。 除实时时钟外,功耗为零。
S4 Non-Volatile Sleep一种特殊的全局系统状态,允许在主板断电时保存和恢复系统上下文(相对较慢)。如果系统已被命令进入 S4,操作系统会将所有系统上下文写入非易失性存储介质上的文件并留下适当的上下文标记。

设备电源状态定义Device Power State Definitions

设备电源状态是指特定设备的状态,通常它们对用户不可见,因为即使即使系统整体处于工作状态,某些设备也可能处于关闭状态。设备状态适用于任何总线上的任何设备。 它们通常根据四个主要标准来定义:

  1. 设备的功耗。
  2. 设备保留了多少上下文。 操作系统负责恢复任何丢失的设备上下文(这可以通过复位设备来完成)。
  3. 设备驱动程序必须执行的操作才能将设备恢复到完全开启状态。
  4. 将设备恢复到完全开启状态需要多长时间

statedescription
D0 (Fully-On)该状态有最高级别的功耗。设备完全激活并且反应灵敏,并能持续记住所有相关上下文。
D1该状态由每个设备类定义。许多设备类没有定义D1。通常D1比D2能保留更多的上下文。
D2该状态由每个设备类定义。许多设备类没有定义D2。一般D2的总线功能会关闭。
D3hot该状态由每个设备类定义。设备能够保持被OS枚举的能力。
D3off设备完全断电。所有的设备信息都丢失了,因此当设备上电时,OS需要重新初始化。恢复时间最长。

睡眠和软关机状态定义Sleeping and Soft-off State Definitions

G stateS state
G0S0
G1S1、S2、S3、S4
G2S5
S statedescription
S1低唤醒延迟状态。系统状态没有丢失,硬件维持着所有系统上下文。
S2低唤醒延迟状态,与S1类似。但是CPU和系统cache的上下文丢失了。唤醒后,CPU从复位向量开始执行。
S3低唤醒延迟状态。除了系统内存DDR,所有系统上下文都丢失了。唤醒后,CPU从复位向量开始执行。
S4ACPI支持的最低功耗和最长唤醒状态。所有设备都关闭,DDR关闭,平台上下文保存到外部硬盘。
S5off平台仅有BMC上电,SoC下电。唤醒需要一个完整的boot流程。

处理器电源状态定义Processor Power State Definitions

处理器电源状态(Cx)是G0下面的细分状态,考虑功耗与温度状态。

C statedescription
C0CPU运行态,执行指令。
C1最低的唤醒延迟。也就是WFI状态。除了不执行指令,OS观察不到其他影响。
C2C2比C1更节省功耗。OS决定是否用C2替换C1。除了不执行指令,OS观察不到其他影响。
C3C2比C1、C2更节省功耗。OS决定是否用C2替换C1。CPU cache不丢失,但是不考虑snoop。OS负责cache一致性。

设备和处理器性能状态定义Device and Processor Performance State Definitions

设备和CPU的性能状态(Px),考虑功耗和性能。

P statedescription
P0最大功耗,最大性能
P1比P0的性能和功耗小。
Pnn取决于具体的设计。Pn是最小的性能和功耗。

2. ACPI 概念

ACPI 覆盖范围

ACPI规范涵盖的功能领域如下:

functiondescription
System power management系统电源管理。ACPI定了一套计算机作为一个整体进出睡眠状态的机制,以及任何设备唤醒计算机的通用方法。
Device power management设备电源管理。ACPI表描述了主板设备、电源状态、电源控制面、控制方法。允许OS跟进应用使用情况将设备配成不同的电源状态。
Processor power management处理器电源管理。当OS空闲但是没有睡眠时,执行ACPI描述的命令将CPU进入低功耗状态。
Device and processor performance management设备和处理器性能管理。
Configuration / Plug and Play配置/即插即用。ACPI指定用于枚举和配置主板设备的信息,这些信息是分层排列。
System Events系统事件。ACPI提供了事件机制,例如热事件、电源管理事件、热插拔事件等。
Battery management电池管理。OS需要smart battery subsystem interface或者control method battery interface。控制电池的行为比如调整电池不足电池警告的临界点。
Thermal management热管理。ACPI提供了一个简单可拓展的模型,允许OEM定义热区、热指示器、冷却热区的方法。
Embedded Controller嵌入式控制器。ACPI定义了OS总线和嵌入式控制器之间的标准硬件软件通信接口。这使得OS驱动程序能够与控制器通信进而使用这些资源。
SMBus ControllerSMbus控制器。ACPI定义了OS与SMbus之间的硬件软件接口。

OSPM的使命是优化平台并进行系统的电源/性能/热管理。任何符合符合ACPI的平台,其硬件/固件/non-OS软件禁止独立于OSPM进行上述功能的操作。独立于OSPM进行操作这些功能将会破坏OSPM/ACPI的目的并可能导致系统功能的破坏。有两个例外:1、OSPM的延迟不足以补救不利的热条件。在这种情况下,平台可能会执行故障热控制机制降低系统的性能,平台同时会通知OSPM。2、平台包含主动冷却设备,在这种情况下基于硬件的主动冷却设备不会影响OSPM。

电源状态

一般情况,计算机在工作和睡眠状态切换。在工作状态下,用户程序会不断的分发执行,单个设备可以在不同的Dx状态,CPU可以在不同的Cx状态。任何设备可以被系统关闭,因为它们可以快速的唤醒。工作状态的不同子状态在运算速度、功耗、热量、噪音之间取得平衡。

当计算机处于空闲状态或用户按下电源按钮时,操作系统会将计算机置于其中之一睡眠 (Sx) 状态。在睡眠状态下不会发生用户可见的计算行为。睡眠子状态只能关闭一部分系统功耗,但是如果用户按下电源开关,OS就会把系统上下文保存到NVS文件系统。支持legay BIOS的计算机在加载支持ACPI的OS之后会转换为工作工作。

  1. 电源按钮
    在旧系统中,电源按钮通常会强制机器进入软关闭或机械关闭,或者在笔记本电脑上,强制它进入某种睡眠状态。没有考虑到用户策略(例如用户希望机器“在不到 1 秒的时间内打开”,所有上下文都与用户“关闭”机器时一样),或应用程序功能(如保存用户文件)。
    在 OSPM 系统中,有两个开关。一个开关是将系统转换到机械关闭状态。出于法律原因(例如,在某些欧洲国家)需要一种机制立即下电计算机。另一个是“主”电源按钮,它所做的只是向系统发送请求。系统对此请求的处理取决于来自用户偏好、用户功能请求和应用程序数据的策略问题。

  2. 不同平台电源管理特性

  • mobile PC
    移动PC具有强大的电源管理功能,OSPM允许增强的节能技术以及一些用户自定义策略。
  • Desktop PCs
    Ordinary “Green PC”:生产电脑,电源管理功能较少,通常不需要睡眠状态。Home PC:家庭娱乐电脑,需要热控制功能。
  • Multiprocessor and Server PCs
    服务器通常需要最大的节能,日件模式:服务器的保持在工作状态,尽可能地把未使用设备置于低功耗状态。夜间模式:服务器看起来像Home PC,它们睡得尽可能深,并能唤醒在指定的时间响应业务请求。

系统电源管理System Power Management

基于用户偏好设置以及APP使用情况,OS知道系统和设备的情况,OSPM动态的将系统整体和设备是低功耗状态。

设备电源管理Device Power Management

  1. 设备电源管理模型
  • 分布式设备电源状态
    对于系统上的每个硬件设备,OS上有一个电源策略所有者(Power Policy Owner)负责不断的决策设备的最佳电源状态。策略通常是为一类设备定义,根据需要结合应用程序活动、用户场景和其他操作状态来决策。

  • 分层设备电源状态控制
    当设备下电时,设备驱动程序按照设备、总线、平台的层次顺序执行,唤醒时则相反的顺序。

  • OS协调
    ACPI定义了信息和行为要求,OSPM能够通知Power Policy Owner有关支持的状态和唤醒能力,并协调各级别的驱动程序来控制功耗。OSPM在这个角色中负责确保设备电源管理与系统电源管理相协调,例如进入睡眠状态、空闲状态。

  1. 电源管理标准
    为每个 I/O 互连定义标准,对于独立硬件供应商 (IHV) 不必花费额外的时间编写软件来管理他们的硬件,对于与操作系统供应商,I/O 互连标准允许将电源管理代码集中在每个 I/O 互连的驱动程序。最后,I/O 互连驱动的电源管理允许操作系统跟踪给定 I/O 互连上所有设备的状态。当所有设备都处于给定状态(例如,D3 - 关闭)时,操作系统可以将整个 I/O 互连置于适合该状态的电源模式(例如,D3 - 关闭)。
    I/O 互连级电源管理规范为许多总线编写,包括: PCI、 PCI Express、 CardBus、 USB、 IEEE 1394

  2. 设备电源状态
    为了统一术语并在设备之间提供一致的行为,对设备的电源状态使用了标准定义。通常,这些状态是根据以下标准定义的:
    1、功耗-设备使用的功率。
    2、设备上下文-设备的上下文有多少被硬件保留。
    3、设备驱动程序-设备驱动程序必须做恢复设备完全打开。
    4、恢复延迟-恢复设备完全打开所需的时间。
    更具体地说,每一类设备(例如,调制解调器、网络适配器、硬盘等)的电源管理规范更精确地定义了该类的电源状态和电源策略。

  3. 设备电源状态定义
    设备电源状态定义是与设备无关的,但是同一个总线上的设备类别必须支持一些一致的电源特性集。这些特定类别的电源特性也必须标准化:
    1、设备电源状态特性的标准定义(目标功耗级别、状态变化延迟和上下文丢失)。2、设备最小功率能力。3、设备功能特征。4、设备唤醒策略。设备类电源管理规范为每一类设备定义了这些电源状态特征。

参见附录A:设备类规格

控制设备电源

详细参考第7章节。

处理器电源管理

在工作状态下,为了进一步节省功耗,操作系统会在空闲时将 CPU 置于低功耗状态(C1、C2 和 C3)。 在这些低功耗状态下,CPU 不运行任何指令,并在中断时唤醒,例如 OS 调度程序的定时器中断。 OS会通过PM QoS来评估CPU在哪个低功耗状态下最合适(功耗和延迟不同)。

详细参考Processor Configuration and Control章节。

设备和处理器性能状态

性能状态允许 OSPM 在性能和节能之间进行权衡。性能状态转换发生在活动/执行的设备状态,必须注意确保性能状态转换不会对系统造成不利影响。调节设备和处理器使其性能与对应的功耗相匹配。

详细参考Processor Configuration and Control章节。

配置/即插即用

除了电源管理之外,ACPI接口还提供控制方法和信息来让OSPM配置主板资源。ACPI 定义块,包括区分系统描述表 (DSDT) 和辅助系统描述表 (SSDT)。

电池管理

管理低电量、电池警告等跳变点、获取电池容量、剩余电量、计算剩余用时、低电量级别(告警、低电量、严重低电量)

热管理

ACPI使用thermal zone来表示一块温度区域。通常整个PC是一个大的thermal zone,但是OEM也可以划分为多个逻辑thermal zone,更精细化的管理。

主动和被动降温模型。Passive cooling,OS通过降低系统性能减少热量的方式降低温度。Active cooling,OS通过散热设备加快散热降低温度。

灵活的平台架构支持

ACPI 提供了另一种平台接口模型,该模型消除了非PC架构的 ACPI 硬件要求。这提供了一定的灵活性,方便在低功耗硬件设计方面进行创新和差异化,同时支持多个OS。

缩写对照表

缩写全拼
AMLACPI machine language
ASLACPI Source Language
XSDTextended root system description table
FADTfixed ACPI description table
DSDTdifferentiated system description table
OSPMOS power management

没有太多时间整理后续章节,通过前几章也能初步进行了解,根据需要看后续英文文档

以上是关于ACPI规范概览-2的主要内容,如果未能解决你的问题,请参考以下文章

ACPI规范概览-2

ACPI规范概览-1

ACPI规范概览-1

ACPI规范概览-1

电脑睡眠状态(ACPI规范定义了七个状态,使用powercfg -a进行查看)

[4G+5G专题-145]: 规范-5G NR协议规范快速概览