没有合适的资源?快使用搜索试试~ 我知道了~
ACPI in Linux
4星 · 超过85%的资源 需积分: 10 10 下载量 101 浏览量
2011-12-31
00:34:27
上传
评论
收藏 251KB PDF 举报
温馨提示
试读
14页
you can understand the ACPI for Linux. About ACPI technology , if you want to know the acpi blow 要想改变处理器的频率和电压,OS可以有两种方式:1, 直接写本地的MSR寄存 器(Model-Specific Registers),也可以访问一个I/O地址。 这二者的效率相差很大,访 问IO地址的方式要差很多,特别是它有可能trap到SMM状态。
资源推荐
资源详情
资源评论
ACPI in Linux ── 传闻与事实
Len Brown
Intel Open Source Technology Center
Translated by Albcamus <[email protected]>
概要:
主流的 Linux 发型版从几年前就开始提供 ACPI 支持了,但直到今天,Linux 社区
中还存在着很多对 ACPI 的误解。 本文给出并澄清了关于 ACPI in Linux 的几个最主要的传
闻。
1, 传闻: 在我的笔记本、PC 机、服务器上,打开 ACPI 支持没有什
么好处
当用户不再以传统模式引导,而以 ACPI 模式引导,他们注意到的第一件事就是,
电源按钮也被软件控制了。 在传统模式下,当按下电源按钮从而切断电源时,对计算机来
说这是个物理的状态改变(断电);而在 ACPI 模式下,按下电源按钮会给 OS 发送中断,从而
使 OS 能安全关机。 实际上,电源、休眠,和笔记本上盖合拢, 这些事件都被 ACPI 标准化
了, OS 可以把它们映射到自己的处理例程上。
除了把电源按钮的按下事件标准化之外, OS 怎样用软件方式切断电源, 也被
ACPI 标准化了。 所以,由软件引发的关机,在 Linux 系统关闭之后,还可以切断电源;而
在传统模式下,必须在 Linux 关闭后手工按电源按钮断电。
当在 ACPI 模式运行时, 用户会注意到电池的寿命延长了。 在今天的笔记本上,
要想延长电池寿命, 一个重要的手段就是电源管理。 当处理器空闲,Linux 内核的 IDLE 循
环例程,将利用 ACPI 的 「CPU 空闲的电源状态(CPU idle power states)」(C-states)来
省电。 当处理器部分空闲,Linux 的 cpufreq 子系统,将利用 ACPI 的「CPU 的性能状态
(performance states)」(P-states),降低 CPU 的电压和频率,以达到省电目的。
ACPI 和传统模式的其他区别,可能受到用户所在的平台(译按,platform,可能
专指 BIOS 实现)和 GUI 界面的影响,这些区别包括:电池低容量警报,发热控制(thermal
control),以及调用 suspend-to-disk 或 suspend-to-RAM 的能力等等。
使用 Intel 超线程处理器的用户可能注意到了,超线程只能在 ACPI 模式下使用,
不能在传统模式下使用。
今天的很多机器有多个处理器,这样的机器使用 IO-APIC 来把中断源递送到系统
中的各个处理器。 然后,有些机器并没有实现对传统的多处理器规范(Multi-Processor
Specification, MPS)的支持, 因此, 要想在这样的系统上配置 IO-APIC,就只能使用
ACPI。 如果不使用 ACPI, IO-APIC 就以 XT-PIC 的方式工作。
但是,如果我们想更深入的了解 ACPI 模式和传统模式的区别,就只能转向 ACPI
规范本身。 在 ACPI 规范之前,最重要的类似规范是 APM(Advanced Power Management,
高级电源管理)──除 APM 外,ACPI 还取代了 MPS(Multi-Processor Specification,多
处理器规范)和 PCI IRQ 路由规范(PIRQ)。
1.1 ACPI vs. 高级电源管理 APM
APM 和 ACPI 这两种规范是互相排斥的。 一个灵活的 OS 实现可以实现对二者的支
持, 但无法同时激活(enable)二者──因为它们互相排斥。
APM 1.0 发布于 1992 年, Microsoft Windows 3.1 提供了对它的支持。 APM 规
范的最后更新,也就是 1.2 版本,是 1996 年发布的。
ACPI 1.0 是从 1996 年开始开发的,Microsoft 的 Windows NT 第一个提供了对它
的支持。 在接下来的相当长时间中,Windows 更倾向于使用 ACPI,但它依然保留对 APM 的
支持,以便支持老的机器。 从 Windows Vista 开始,Microsoft 彻底完成了从 APM 到 ACPI
的转换:它不再提供对 APM 的支持了。
在从 APM 到 ACPI 的转换时期, 很多平台供应商删除了对 APM 的支持, 现在已经
没几家供应商还对 APM 提供支持了:转换时期已经结束了。
1.1.1 APM 概览
APM 规范的设计目标是:延长电池寿命; APM 试图对 OS 隐藏一切实现细节,而倾
向于在 APM BIOS 中实现。
APM 定义了系统中五种通用的电源状态: Full On, APM Enabled, APM Standby,
APM Suspend,和 Off。 Full On 状态没有电源管理, APM Eanbled 状态会禁用某些用不着
的设备, APM Standby 状态的设计目的是瞬间唤醒(wakeup)系统, APM Suspend 可以选择
挂起到 RAM(suspend-to-RAM),也可以选择挂起到磁盘(hibernate-to-disk)。
APM 也为设备定义了类似的电源状态: Device On, Device Power Managed,
Device Lower Power, 和 Device Off。 当处于 Device Off 状态时,计算机就无法得知设
备的上下文了。 但是,在 Device Off 时,应该由谁来负责保存和恢复设备呢, 是位于 OS
中的 APM 设备驱动程序, 还是 APM BIOS? 在这一点上 APM 规范有些含混不清。
APM 规范定义了 CPU 核心的控制状态: Full On, Slow Clock, 和 Off。 只要
中断到来,CPU 就会马上转入 Full On 状态。
支持 APM 的 OS,会有一个 APM 驱动程序,用来和 APM BIOS 通信。 当 APM 驱动程
序和 APM BIOS 建立起通信连结后,它们「一起合作来进行电源管理」,意思是,OS 调用
BIOS 例程来查询和修改 APM BIOS 的默认设置, OS 以至少每秒一次的频率轮寻 BIOS,看有
没有 APM BIOS 事件发生。
APM BIOS 可以向 APM 驱动程序发送事件。 举例来说,当检测到一段时间的 CPU
空闲后,APM BIOS 产生一个「System Standby Request Notification」,通知 OS:需要
suspend。 OS 接到通知后,必须在一定时间内调用「Set Power Function」函数,否则的
话,BIOS 就直接把系统 suspend 了。 当 resume 时,APM BIOS 产生一个「System Standby
Resume Notification」来通知 OS──对 OS 来说,此时是更新自己时钟的好时机。
OS 还可以禁止 APM 向自己发送 suspend/resume 请求。 取而代之,OS 自己决定什
么时候主动要求 APM 来执行这些操作。
OS 也可以在其 IDLE 例程中调用 APM BIOS,告诉它 CPU 现在空闲。这样,APM
BIOS 就可以降低 CPU 的频率和电压。
APM BIOS 知道机器的 AC/DC 电源状态, APM 驱动程序可以查询 BIOS 来获得当前
的电源状态,也可以对 AC/DC 的改变进行轮询。
APM BIOS 知道电池的状态, APM 驱动程序可以查询电池的配置和电量,也可以对
「Battery Low Notification」事件进行轮询。
APM 为了电源管理,保存了一个硬编码的设备列表,包括显示器、磁盘、并口、
串口、网络适配器、PCMCIA 插槽等。 OS 可以轮询它们的状态,激活/禁用 APM BIOS 对它们
的管理,以及对状态的改变进行轮询。
剩余13页未读,继续阅读
资源评论
- 普通网友2013-01-23不错啊,中文的,看英文的都看的蛋碎了
- dzhang12013-06-06还好 不过看完后 对ACPI还是不大明白
- datoucrop2012-11-28唯一中文的ACPI资料,哈哈!谢谢楼主分享!
ivan1007
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功