- 积分
- 15
- 最后登录
- 2022-2-15
- 精华
- 0
- 阅读权限
- 10
- 主题
- 4
- UID
- 4725859
- 帖子
- 37
- PB币
- 246
- 威望
- 0
- 贡献
- 0
- 技术
- 0
- 活跃
- 134
- UID
- 4725859
- 帖子
- 37
- PB币
- 246
- 贡献
- 0
- 技术
- 0
- 活跃
- 134
|
版本1.4:26四月2016
版权©2016英特尔公司。保留所有权利。
*其他名称和品牌可能会声称为他人的财产。
本章提供了一个高水平的-高级配置和电源概述
接口(ACPI)。为了使它更容易理解ACPI,本节重点介绍广
关于ACPI的一般陈述和讨论的不是每一个可能的例外或细节
关于ACPI。的ACPI规范提供了更为详细的关于休息
内部运作的ACPI比这里讨论的是,是开发商推荐阅读
使用ACPI。
历史的ACPI
ACPI是通过英特尔,微软,东芝,惠普之间的合作开发,在中-90年代菲尼克斯。在ACPI的发展,操作系统(OS)
主要用于BIOS(基本输入/输出系统)电源管理接口
设备发现和配置。这种电源管理方法使用了操作系统的能力
调用系统BIOS本身的电源管理。BIOS也被用来发现
系统设备和负载驱动的基于探测输入/输出(I/O)和试图匹配
正确的驱动程序正确的设备(即即插即用)。设备的位置也可以
硬编码在BIOS因为平台本身是非-枚举。
这些解决方案是有问题的三个关键途径。一、操作系统应用程序的行为
可以通过BIOS的负面影响-配置电源管理设置,造成
在演示文稿或其他不方便的时间内睡觉的系统。二、权力
管理接口在每个系统上都是专有的。这需要开发人员学习
如何为每个单独的系统配置电源管理。最后,默认设置
对于各种设备也可能相互冲突,导致设备崩溃,行为
因地而异,或成为潜在。
ACPI的开发是为了解决这些问题和其他问题。
ACPI是什么?
ACPI首先可以理解为一种独立的电源管理和建筑-
在宿主操作系统中形成子系统的配置框架。这个框架
建立一个硬件登记设置定义了电源状态(睡眠、休眠、唤醒,等)。这个
硬件寄存器集可以容纳在专用硬件和通用操作
目的硬件。标准的ACPI框架的主要意图和硬件设置是登记
启用电源管理和系统配置不直接调用固件本身
从操作系统。ACPI是系统固件之间的接口层(BIOS)和
操作系统,如图1和图2所示,有一定的限制和规则。
从根本上说,接口定义了两种类型的这间共享的数据结构
系统固件和操作系统:数据表和定义块。这些数据结构的
固件和操作系统之间的主要通信机制。数据表存储
数据和消耗的设备驱动程序。定义块包括字节码
可由解释器执行的。
这一定义块的字节码是从ACPI源语言(ASL)编译代码。ASL
用于定义的ACPI对象和写控制方法的语言。翔升编译器
翻译成机器语言ASL(AML)的字节码。AML是语言
通过ACPI AML解释器处理,如图3所示。
AML解释器执行字节码和评估对象在定义块
允许字节码执行循环结构,条件评估,访问定义
地址空间,并执行应用程序所需的其他操作。AML解释器
已读/写访问定义的地址空间,包括系统内存,I / O,
配置,和更多。它通过定义入口点来访问这些地址空间
物体.对象可以有一个直接定义的值,或必须进行评估和
由AML解释器解释。
这个集合的可枚举对象是一个操作系统的构造称为ACPI命名空间。这个
命名空间是一个层次表示的ACPI设备上的系统。系统
总线是这些ACPI设备枚举的根。这是可枚举的其他设备
公共汽车,像PCI或USB设备,通常不在命名空间枚举。相反,他们的
自己的总线枚举设备并加载它们的驱动程序。然而,所有枚举的公共汽车
有一个编码技术使ACPI编码的公共汽车-具体地址
设备可以在ACPI找到,尽管通常不加载驱动程序接口
这些设备。一般来说,有一个_hid目标设备(硬件识别枚举对象)
和他们的司机载ACPI。有一个_adr对象设备的物理地址(
对象)通常没有列举的ACPI和一般没有自己的驱动程序加载
ACPI。_adr设备通常可以不涉及ACPI执行所有必要的功能,但
在设备驱动程序不能执行函数的情况下,或者驱动程序需要
交流系统固件,ACPI可以评估对象执行所需的功能。
例如,PCI不支持本地热插拔。然而,PCI可以使用ACPI
评估对象和定义方法,允许ACPI填写必要的功能
在进行热插拔PCI。
ACPI的另一个方面是一个运行时模型,处理任何ACPI中断事件
在系统运行过程中发生。ACPI继续评估对象作为必要的处理
这些事件。这个中断-基于运行时模型的更详细的讨论
运行时模型下面。
ACPI的初始化
最好的方式来了解ACPI的作品是按时间顺序。用户的瞬间
权力上的系统,系统固件完成它的设置,初始化和自我测试。
系统固件,然后使用在固件初始化过程中获得的信息来更新
有各种平台的配置和电源接口数据的ACPI表,
将控制传递到引导程序之前。扩展的根系统描述表
(xsdt)是由ACPI子系统使用第一个表,包含大部分的地址
对系统的其它的ACPI表。XSDT点了固定ACPI说明表
(第一项论证测试)以及其他主要的操作系统进程在初始化表。在操作系统
初始化的第一项论证测试将ACPI子系统的区分系统描述表
(这个),这是命名空间的开始,因为它是第一台包含
定义块。
ACPI子系统进行处理,从建筑的DSDT的命名空间
ACPI定义块。的xsdt也指向次级系统描述表
(ssdts)并将其添加到命名空间。ACPI数据表给操作系统的原始数据
关于系统硬件。
在操作系统已从ACPI表建立的命名空间,它开始穿越
所有的_hid设备遇到的命名空间和加载设备驱动程序
命名空间。
运行时模型
在系统启动并运行,ACPI与OS处理任何ACPI中断
发生的事件通过ACPI系统控制中断(SCI)处理程序。这个中断调用
在一个一般方法:固定ACPI事件事件和通用事件(电解质)。
SCI是复用的整个系统来管理ACPI中断事件。
固定ACPI事件事件已在ACPI规范预定义的意义。
这些固定的活动包括动作按下电源按钮或ACPI定时器溢出。
这些事件是由操作系统处理程序直接处理的。
电解质是ACPI是不是由ACPI规范预定义的事件。这些事件
通常通过评估控制方法来处理,这些控制方法是命名空间中的对象,并且可以
访问系统硬件。当ACPI子系统的控制方法与评价
AML解释器,GPE对象处理该事件根据操作系统的实现。
通常情况下,这可能涉及向设备发出通知,调用设备驱动程序到
执行一个函数。
我们讨论了一个通用的例子,这个运行时模型在下一节。热事件的例子
ACPI包括热模型允许系统控制系统温度
积极(通过执行动作,如打开一个风扇)或被动地减少的量
电源系统使用(通过执行像节流处理器的动作)。我们可以使用
比如一个通用的热事件,如图5所示说明ACPI运行
模型作品。
ACPI热区包括控制方法读取当前系统的温度和
旅游点。
1。当操作系统在命名空间中找到热区域时,它将加载热
区域驱动程序,计算热区,以获得当前的温度和
旅游点。
2。当一个系统组件加热到足以触发一个触发点,一个热区
GPE发生。
三.GPE的原因中断通过SCI的发生。当ACPI子系统
接收中断,它首先检查是否发生了任何固定事件。在这
例如,热带事件是GPE,所以没有固定的事件发生。4。ACPI子系统,然后寻找控制方法的命名空间
比赛中断的GPE数。一旦找到它,ACPI子系统
评估控制方法,然后可能访问硬件和/或通知
热区处理程序。
5。操作系统的热区处理程序,然后采取任何行动
必须处理事件,包括可能访问硬件。
ACPI是一个非常强大的接口的实现。热区的行程点可以通知
系统打开一个风扇,降低了设备的性能,读取温度,关闭了
系统,或任何这些和其他行动的结合,根据需要。
这个模型是整个系统来管理所有的ACPI事件
在系统运行过程中发生。
总结
ACPI可以最好地描述为一个概念和接口的实现框架
在主机操作系统中形成一个子系统。ACPI表、处理程序、翻译、命名空间,
事件和中断模型一起构成了这个实现ACPI创建ACPI
主机操作系统中的子系统。在这个意义上,ACPI是系统之间的接口
硬件/固件和操作系统和操作系统应用程序的配置和权力
管理。这给了各种操作系统一个标准化的方式来支持电源管理和
通过ACPI命名空间的配置。
ACPI命名空间是枚举,所有ACPI设备的分层表示
该系统是用于发现和系统的ACPI设备加载驱动程序。这个
命名空间可以通过实时评估对象和发送中断来动态的,所有的
同时限制操作系统调用本地系统固件代码。这使装置
制造商将自己的指令和事件的代码转化为设备。它也减少了
通过实施一个标准化的电源管理接口不兼容和不稳定。
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
-
1
查看全部评分
-
|