4.2. 固定硬件编程模型
由于将传统硬件迁移到固定类别需要进行变更,ACPI 对固定硬件所规定的特性进行了限制。固定硬件特性由以下标准定义:
对性能敏感的特性
驱动程序在唤醒期间所需的特性
能够实现灾难性 OS 软件故障恢复的特性
ACPI 为固定硬件定义了基于寄存器的接口。CPU 时钟控制和电源管理定时器被定义为固定硬件,以减少访问此硬件对性能的影响,从而更快地缓解热状态或延长电池寿命。例如,如果允许该逻辑驻留在 PCI 配置空间中,则需要调用多层驱动程序来访问该地址空间。这会耗费很长时间,并且要么会对系统功耗产生不利影响(当尝试进入低功耗状态时),要么会影响事件的准确性(当尝试获取时间戳值时)。
OSPM 对固定硬件的访问使 OSPM 能够在无需加载整个 OS 的情况下控制唤醒过程。例如,如果需要访问 PCI 配置空间,则将加载总线枚举器以及该枚举器所使用的所有驱动程序。将这些接口定义在固定硬件中,并位于 OSPM 无需任何其他驱动程序协助即可通信的地址上,可使 OSPM 在决定是继续加载整个 OS 还是将其重新置回睡眠状态之前收集信息。
如果 OS 的某些元素发生故障,则 OSPM 可能仍能够访问那些不需要驱动程序支持的地址空间。在这种情况下,OSPM 将尝试响应固定电源按钮请求,使系统过渡到 G2 状态。在 OSPM 事件处理程序已无法再响应电源按钮事件的情况下,电源按钮覆盖特性提供了一种后备机制,以无条件地将系统过渡到软关机状态。