![](https://csdnimg.cn/release/download_crawler_static/2859716/bg6.jpg)
GPE Block Device 和 GPE 事件:GPE Block Device 是平台设计者可按照
FADT(Fixed ACPI Descriptor Table) 描述表中响应 GPE 的寄存器组,GPE 的
输入脚。作为 GPE 设备描述块中的地址存在于 FADT 中,每个 GPE Block Device
可以容纳 128 个 GPE 事件,ACPI 层上提供两个通用目标寄存器组--GPE0_BLK
和 GPE1_BLK,(也就是说可以响应 256 个 GPE 事件)每个寄存器组中包含两
个等长度的寄存器 GPEx_STS,GPEx_EN,他们的系统地址(硬件地址)都保存在
FADT 中,作为 GPE Blocks 的行为(或者是操作)描述部分存在于 ACPI 名字
空间中;用于指示当前的设备的事件,例如设备插入/拔除事件发生的时候,相
关的状态位(GPEx_STS 中的位,这个是在硬件设计的时候相关设备的事 件信号
会连接到这些状态位)会被外部的事件所置位,生成 SCI,让 OSPM 层运行相关
的控制程方法通知 ACPI 层;GPEx_EN 表示每个事件的使能位,一般说来在南桥
(ICH4)中有这几个寄存器,它们的硬件地址保存在 FADT 中。
GPE 事件就是通过 GPE 寄存器组引发 SCI 中断后,通告 OSPM 层有关设备的事
件,例如下面介绍 Hot-Plug 的时候会详细或者简略地介绍到总线枚举,设备检
查,设备唤醒,设备弹出几个事件。
ACPI Source Language(ASL):ASL 语言是 ACPI 层用于描述特定的 ACPI 对象
的 ACPI 专用语言,并且包括了 ACPI 对象的控制方法(Control method),OEM
厂商和 BIOS 设计者在 BIOS 中使用 ASL 定义所有的设备为 ACPI 对象,并且
可以生成 ASL 格式的专门的控制方法,1-1 例就是关于 ASL 的例子:
ASL 的语法规参看 ACPI Specification Revision 2.0
AML 和 AML 分析器:AML 是 ACPI 控制方法的虚拟机器语言,AML 执行过程也
就是 ACPI 核心驱动层,ACPI 控制方法使用 AML 来进行编写,但是通常而言对
编写者来说是写成 ASL 的方式,通过 AML 翻译器进行翻译,AML 翻译器不但具
备 ASL 的翻译的功能,而且可以执行 AML 方法,当用 ASL 编写的 DSDT 表被
载入到名字空间的时候,将会被 AML 翻译器翻译成执行时候可以辨别的机器码,