两个编程模型

ACPI的硬件模型有下面两种:

·固定硬件编程模型

·通用硬件编程模型

固定硬件编程模型使用ACPI中定义的寄存器来访问ACPI的功能。使用这个编程模型仅限于操作系统几乎不能运行,或者从性能来看操作系统不应运行。例如,C2/C3电源控制或电源管理计时器等重视性能的功能。硬件的事件通过System Control Interrupt(SCI)种类的中断获知,启动操作系统的驱动程序。通用硬件编程模型是让各厂商能够灵活安装硬件的模型。各厂商可以使用ACPI Machine Language(AML)将硬件固有的处理安装到BIOS中。操作系统可以通过分析BIOS提供的AML代码,来理解寄存器的地址和访问方法等。AML是二进制码,通过编译ACPI Source Language(ASL)来生成。操作系统分析AML,将AML中所写的内容按照解释器(interpreter)来执行。硬件的事件与固定硬件编程模型同样是通过SCI获知,而通用硬件编程模型则执行AML中的控制方法。通用硬件编程模型用于设备电源管理和设备热插拔等。