尽管ACPI访问了软、硬件并且阐述了它们必须如何工作,但是ACPI既不是一个软件规 范,也不是一个硬件规范,而是一个由软、硬件元素组成的接口规范
Control Method——控制方法
一个控制方法是对OS如何执行一个简单硬件任务进行的定义。例如,OS调用控制方法 用来读取散热区的温度。控制方法采用AML来编写。ACPI兼容OS可以解释并执行AML。 ACPI兼容系统必须在ACPI表中提供最少的控制方法集。OS提供了明确定义的控制方法集, 这样,开发者在定义他们自己的控制方法时可以参考这些控制方法集。
Device——设备
平台中核心芯片集之外的硬件组件。这样的设备包含显卡适配器、IDE CD-ROM、IDE 硬盘控制器、COM端口等。在ACPI电源管理模式中,把总线也当作一个设备。
Device Context——设备上下文
设备保留的可变数据。当设备进入或离开某个状态时,这些数据通常会丢失。在此情况 下,OS软件负责保存和恢复这些信息。设备上下文参考是保存在设备外设中的少量信息。
Differentiated System Description Table (DSDT)——差异系统描述表
OEM必须为ACPI兼容OS提供一个DSDT。DSDT包含差异定义块,提供有关基础系统 的实现和配置信息。在系统启动时,OS总是将DSDT信息加载到ACPI名字空间中,并且不 再卸载它
System Control Interrupt (SCI)——系统控制中断
硬件使用此系统中断将ACPI事件通知给OS。SCI是一个低有效、电平类型的共享中断。
SCI的全称是System Control Interrupt.硬件用来将ACPI事件通知操作系统的一种系统中断. 如: L Event, E Event, Q event.
SCI需要硬件支持, 中断源是硬件, 如: GPIO/SMBUS/EC. GPIO触发L ,E Event;EC触发的全部都是Q Event
SCI的软件环境是要ACPIOS, SCI只能在ACPI OS下才能被触发.
触发SCI中断后, OSPM会调用ASL method (中断处理程序).
System Management Interrupt (SMI)——系统管理中断
在遗留系统中由中断事件产生的对OS透明的中断。相比之下,在ACPI系统中,中断事 件会产生一个共享的、OS可见的中断(边沿类型的中断将不会工作)。如果硬件平台想要 同时支持遗留操作系统和ACPI系统,那么在ACPI和遗留模式之间切换时,硬件平台必须重 新映射SMI和SCI中断事件。
SMI是不可屏蔽外部中断.优先级高于所有调试中断、NMI、可屏蔽中断和软中断.
触发SMI后, 处理器就会进入SMM mode.
SMI的中断处理程序是BIOS C代码, 执行环境是SMM.
处理器进入SMM mode后, 再触发的下一个SMI会被锁存(先放在内存中,处理当前的SMI), 直到退出SMM后才会被执行.
G0工作状态——系统分发用户模式代码(应用程序)并使其得以执行的一种计算机 状态。在此状态下,外部设备动态地改变自身的电源状态。用户可以通过用户接口 程序选择系统的各种性能/电源特征,使得软件可以根据用户的选择来优化性能或者 电池寿命。系统可以实时地对外部事件进行响应。在此状态下拆卸机器并不安全。
● S5软关机状态——除了OS不保存任何上下文外,S5状态类似于S4状态。当系统在软 关机状态下被唤醒时,需要一个完整的启动过程。软件使用不同的状态值来区分S5 状态和S4状态之间的差别。这样,BIOS的初始启动操作就可以确定启动是否需要从 保存的内存映像中唤醒
1.处理器电源状态定义
处理器电源状态定义如下。 C-state
● C0处理器电源状态——处理器在此状态时执行指令。
● C1处理器电源状态——此处理器电源状态有最短的延时。在此状态下的硬件延时必 须足够短,使得操作软件在决定是否使用它时,不会考虑此状态的延时因素。除了 将处理器置于不执行指令条件外,此状态没有其他软件可见的效果。
● C2处理器电源状态——处理器在C2状态比在C1状态节省了更多的电量。通过ACPI 系统固件提供了比较长的硬件延时。操作软件可以使用此信息来确定什么时候应该 使用C1状态来代替C2状态。除了将处理器置于不执行指令条件外,此状态没有其他 软件可见的效果。
● C3处理器电源状态——处理器在C3状态比在C1、C2状态节省了更多的电量。通过 ACPI系统固件提供了最坏的硬件延时。操作软件可以使用此信息来确定什么时候应 该使用C2状态来代替C3状态。当处理器在C3状态时,处理器缓存维护着状态,但是 忽略任何窥探。操作软件负责确保缓存的一致性。
P-state
设备和处理器性能状态(Px状态)是设备或者处理器在执行状态下(处理器在C0状 态,设备在S0状态)的电量消耗和能力状态。
2.8 ACPI寄存器模型 通过如下6个地址空间之一访问ACPI硬件。
● 系统I/O
● 系统内存
● PCI配置空间
● 嵌入式控制器
● 系统管理总线(SMBus)
● 固定硬件功能
ACPI定义了寄存器块。一个ACPI兼容系统在启动时会在内存中创建一个FADT系统描 述表,此表包含了提供给OSPM使用的一系列指向不同固定硬件寄存器块的指针。这些寄存 器中的位包含了为给定寄存器块定义的属性。ACPI定义的寄存器类型如下。 ● 状态/使能寄存器(针对事件) ● 控制寄存器 如果一个寄存器块的类型是状态/使能类型,那么它将包含一个具有状态位的寄存器和 一个对应的具有使能位的寄存器。状态位和使能位有一个需要遵循的准确实现定义(除非 另外说明),如图2-3所示。