ACPI基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是ACPI
作为标准中最广为认可的部分,电源管理经历了较多的改进。
早先,Advanced Power Management模型(APM)将电源管理几乎完全分配给BIOS控制,这大大的限制了操作系统在控制电能消耗方面的功能。
当前,ACPI的电源管理特性以前只适用从便携式计算机(例如膝上型计算机)到桌面型电脑、工作站和服务器。例如,系统可能会进入极低功率消耗状态。这些就是可利用在多数桌面型电脑上的“睡眠”和“休眠”设置。睡眠和休眠状态可以通过移动鼠标,按键盘按键,从另外一台电脑接收一条信息(如果连接到了一个局域网)或者重大系统错误来唤醒系统。
现在,如果ACPI在BIOS和其他系统硬件中被实现,它就可以由操作系统所调用(触发)。
ACPI可以实现的功能包括:
·系统电源管理(System power management)
·设备电源管理(Device power management)
·处理器电源管理(Processor power management)
·设备和处理器性能管理(Device and processor performance management)
·配置/即插即用(Configuration/Plug and Play)
·系统事件(System Event)
·电池管理(Battery management)
·温度管理(Thermal management)
·嵌入式控制器(Embedded Controller)
·SMBus控制器(SMBus Controller)
Windows98是支持ACPI的第一个微软的操作系统。FreeBSD v5.0是支持ACPI的第一个UNIX操作系统Linux、NetBSD和OpenBSD都至少有一些支持ACPI。
ACPI术语
·高级配置电源管理接口(Advanced Configuration and Power Interface(ACPI))
按照在本文中的定义,ACPI是一种描述硬件接口的方法,要足够抽象以允许灵活创新的硬件实现,并且足够具体以允许shrink-wrap OS code使用这个硬件接口
·ACPI硬件(ACPI Hardware)
它是一种电脑硬件,具有支持OSPM所必备的特性,而且还具有特定的接口,这些接口的特性是由ACPI规范所指定的描述表(Description Tables)所描述的。
·ACPI命名空间(ACPI Namespace)
一个树状层次机构,在受操作系统控制的内存里面,这段内存里面包含命名对象(named objects)等。这些对象(objects)可以是数据对象,控制方法对象,总线/设备包对象等。操作系统通过从驻留在ACPI BIOS中的ACPI Tables载入载出(loading and/or unloading)定义块(definition blocks),来动态改变命名空间(namespace)的内容。在ACPI Namespace中的所有信息都来自Differentiated System Description Table(DSDT),DSDT 里面包含了Differentiated Definition Block还有一个或者多个其他的定义块(definition blocks)。
·ACPI机器语言(ACPI Machine Language(AML))是一种由ACPI兼容的OS支持的虚拟机的伪代码(Pseudo-code),里面写有ACPI控制方法和控制对象。
·高级可编程中断控制器(Advanced Programmable Interrupt Controller(APIC))
一个中断控制器架构,通常多见于Intel32位架构(Intel Architecture-based32-bit)的PC系统。APIC架构支持多处理器中断管理(中断均匀的分布在所有处理器),多I /O子系统支持,与8259A兼容,并且支持处理器内部中断(Inter-Processor Interrupt,IPI)。这个架构由直属于处理器的本地APICs(Local APICs)和在(南桥)芯片中的I /O APIC组成。
·ACPI源语言(ACPI Source Language(ASL))
一种和AML等同的编程语言。ASL编译以后就是AML镜像(AML images)。
·控制方法(Control Method)
控制方法定义OS如何执行一个简单的硬件任务。例如,OS 调用控制方法(Control Method)去读取一个高温区的温度。控制方法是用一种叫做AML的编码语言写的,AML可以被兼容ACPI的OS所解释并执行。ACPI兼容的系统必须在ACPI table中提供一组最小的控制方法。OS提供一组well-defined的控制方法,以使ACPI table开发者能够在他们的控制方法中引用。OEM厂商可以通过,要么Including control methods in the BIOS that test configurations and respond as needed,要么为芯片组的
不同修订版包含一组不同的控制方法,来使一个BIOS能够同时支持芯片组的不同修订版。
·中央处理器或者处理器(Central Processing Unit (CPU)or Processor)
·定义块(Definition Block)
Definition Blockl以数据和控制方法(编码成AML)的形式包含关于硬件实现和配置详细信息。OEM厂商可以在ACPI Tables中提供一个或者多个Definition Blocks。有一个definition block是必须被提供:那就是Differentiated Definition Block,它描述了基本的系统。在装载Differentiated Definition Block之后,紧接着OS会把Differentiated Definition Block的内容插入到ACPI Namespace。OS可以动态的从the active ACPI Namespace插入和删除的其他definition blocks,可以包含指向Differentiated Definition Block的引用。
·设备(Device)
·设备上下文(Device Context)
设备中包含的变化的数据;通常是易失性(volatile)数据。当进入或者离开特定的状态(states)的时候,设备应该忘记这些信息,在这种情况下OS软件负责保存并恢复这些信