1.6. ACPI 规范与 ACPI 的结构
本规范定义了 ACPI 硬件接口、ACPI 软件接口和 ACPI 数据结构。本规范还定义了这些接口的语义。
下面的图 1.1 展示了 OSPM/ACPI 的软件和硬件组件,以及它们彼此之间的关系。本规范描述了组件之间的接口、ACPI 系统描述表的内容,以及其他 ACPI 组件的相关语义。请注意,描述特定平台硬件的 ACPI 系统描述表是 ACPI 实现的核心,而 ACPI 系统固件的主要作用是提供 ACPI 表(而不是本机指令 API)。
ACPI 不是软件规范;它也不是硬件规范,尽管它同时涉及软件和硬件以及它们必须如何行为。相反,ACPI 是一个由软件和硬件元素共同构成的接口规范。

图 1.1 OSPM/ACPI 全局系统
ACPI 有三个运行时组件:
ACPI 系统描述表
描述硬件接口。有些描述会限制可构建的内容(例如,某些控制器嵌入在固定的寄存器块中,表中会指定该寄存器块的地址)。大多数描述允许以任意方式构建硬件,并且可以描述使硬件工作的任意操作序列。包含“定义块”的 ACPI 表可以使用一种伪代码类型的语言,其解释由操作系统执行。也就是说,OSPM 包含并使用一个解释器,该解释器执行编码为伪代码语言、并存储在包含“定义块”的 ACPI 表中的过程。该伪代码语言称为 ACPI 机器语言(AML),是一种紧凑、标记化、抽象类型的机器语言。
ACPI 寄存器
由 ACPI 系统描述表描述的、硬件接口中受约束的部分(至少在位置上如此)。
ACPI 平台固件
指与 ACPI 规范兼容的固件部分。通常,这是启动机器的代码(类似于传统 BIOS 的做法),并实现睡眠、唤醒以及某些重启操作的接口。与传统 BIOS 相比,它被调用的频率很低。ACPI 描述表也由 ACPI 平台固件提供。