1.9. 文档组织
ACPI 规范文档组织为以下四个部分:
规范的第一部分(第 1 章到第 3 章)介绍 ACPI 并提供执行概要。
第二部分(第 4 章和第 5 章)定义 ACPI 硬件和软件编程模型。
第三部分(第 6 章到第 17 章)规定 ACPI 实现细节;规范的这一部分主要面向开发人员。
第四部分(第 18 章和第 19 章)是技术参考材料:第 18 章是 ACPI 源语言(ASL)参考,本规范中的许多其他章节都引用了它。
附录包含设备类规范,描述特定设备类别的电源管理特性,以及设备类特定的 ACPI 接口。
1.9.1. ACPI 简介与概述
规范的前三个章节提供 ACPI 的执行概要。
第 1 章:简介
讨论本规范的目的和目标,概述 ACPI 兼容系统体系结构,规定 ACPI 兼容系统的最低要求,并提供相关规范的引用。
第 2 章:术语定义
定义本规范中使用的关键术语。特别是,本章定义了全局系统状态(机械关闭、软关闭、睡眠、工作和非易失性睡眠),以及设备电源状态定义:关闭(D3)、D3hot、D2、D1 和完全开启(D0)。还讨论了设备和处理器性能状态(P0、P1、…Pn)。
第 3 章:ACPI 概述
从规范涵盖的功能领域角度概述 ACPI 规范:系统电源管理、设备电源管理、处理器电源管理、即插即用、系统事件处理、电池管理和热管理。
1.9.2. 编程模型
第 4 章和第 5 章定义 ACPI 硬件和软件编程模型。规范的这一部分主要面向系统设计人员、开发人员和项目经理。
规范随后所有面向实现、参考和平台示例的章节(即本规范其余所有章节)都基于第 4 章和第 5 章中定义的模型。这两章是 ACPI 规范的核心。这两章之间有大量交叉引用。
第 4 章:ACPI 硬件规范
定义一组满足本规范目标的硬件接口。
第 5 章:ACPI 软件编程模型
定义一组满足本规范目标的软件接口。
1.9.3. 实现细节
规范的第三部分定义了在 ACPI 兼容平台上实际构建可工作组件所需的实现细节。规范的这一部分主要面向开发人员。
第 6 章:配置
定义用于配置设备和向设备分配资源、共享资源的保留即插即用对象,以及用于跟踪设备插入和移除的保留对象。还定义 ACPI 兼容资源描述符的格式。
第 7 章:电源和性能管理
定义保留的设备电源管理对象和保留的系统电源管理对象。
第 8 章:处理器配置与控制
定义当系统处于工作状态时,OS 如何管理处理器的功耗及其他控制。
第 9 章:ACPI 特定设备对象
列出需要支持某些设备特定 ACPI 控制的集成设备,以及可以提供的设备特定 ACPI 控制。大多数设备对象通过通用对象和控制方法进行控制,并具有通用设备 ID;本章讨论这些例外情况。
第 10 章:电源设备
定义保留的电池设备和交流适配器对象。
第 11 章:热管理
定义保留的热管理对象。
第 12 章:ACPI 嵌入式控制器接口规范
定义 ACPI 兼容 OS 与嵌入式控制器之间的接口。
第 13 章:ACPI 系统管理总线接口规范
定义 ACPI 兼容 OS 与系统管理总线(SMBus)主控制器之间的接口。
第 14 章:平台通信通道
解释 OSPM 与平台中的某个实体进行通信的通用机制,并定义一种新的地址空间类型。
第 15 章:系统地址映射接口
解释用于基于 ISA/EISA/PCI 总线系统的特殊 INT 15 调用。该调用向 OS 提供清晰的内存映射,指示主板上保留的地址范围和可用的地址范围。还描述了基于 UEFI 的内存地址映射报告接口。
第 16 章:唤醒与睡眠
详细定义系统工作状态与睡眠状态之间的转换及其与唤醒事件的关系。引用第 6、7 和 8 章中定义的保留对象。
第 17 章:非一致性内存访问(NUMA)架构平台
详细讨论 ACPI 定义的接口如何用于描述 NUMA 架构平台。引用第 5、6、8 和 9 章中定义的保留对象。
第 18 章:ACPI 平台错误接口
定义使 OSPM 能够处理由基于平台的错误检测硬件检测到的不同类型硬件错误事件的接口。
1.9.4. 技术参考
规范的第四部分包含面向开发人员的参考资料。
第 19 章:ACPI 源语言参考
定义了可用于编写 ACPI 控制方法的所有 ASL 语句的语法,并附带语法使用示例。
第 20 章:ACPI 机器语言规范
定义了 ACPI 虚拟机语言的语法。ASL 翻译器(编译器)输出 AML。
第 21 章:ACPI 数据表和表语言定义
描述了一种简单语言(表定义语言,即 TDL),可用于生成任何 ACPI 数据表。
附录 A:设备类规范
按设备类分别描述特定于设备的电源管理行为。
附录 B:视频扩展
包含视频设备类特定的 ACPI 接口
1.9.5. 修订号
对 ACPI 规范的更新可视为新修订版或勘误,如下所述:
当存在实质性的新内容或可能修改现有行为的变更时,会发布新修订版。新修订版使用主版本号.次版本号表示(例如 6.3)。在变更极其轻微的情况下,可能会采用主版本号.次版本号.修订号命名约定(例如 6.3.1)。
当对规范提出的更改或修复不包含任何重要新内容,也不修改现有行为时,会发布勘误。勘误通过在版本号末尾添加一个大写字母来标识,例如 6.2A。