11.2. 冷却偏好
健壮的 OSPM 实现会提供一种机制,使最终用户能够向 OSPM 传达其对性能或节能的偏好(或偏好程度)。允许最终用户选择此偏好对于移动系统用户尤为关键,因为在这类场景中,最大化电池一次充电的系统运行时间通常比实现最高系统性能具有更高优先级。例如,如果用户在安静环境中使用其 PC 记笔记,例如图书馆或公司会议中,她可能希望系统更强调被动冷却,以便系统安静运行,即使这会以牺牲系统性能为代价。
用户偏向性能对应于主动冷却模式,而用户偏向节能或安静则对应于被动冷却模式。ACPI 定义了一个向平台传达冷却模式的接口。主动冷却可以在 OSPM 热策略最少干预的情况下执行。例如,平台通过热区参数指示,越过某个热跳变点需要打开风扇。被动冷却则要求 OSPM 热策略操控可降低性能的设备接口,以降低热区温度。
仅当热条件需要时,才会激活任一冷却模式。当热区处于最佳温度水平、不需要任何冷却时,这两种模式都会使系统在所有风扇关闭的情况下以其最大潜力运行。
支持设置冷却策略接口的热区允许用户切换系统冷却模式的侧重点。有关更多信息,请参见 _SCP (设置冷却策略)。

图 11.4 主动和被动阈值
如“主动和被动阈值”所示,平台必须传达每个阈值的数值,以指示 OSPM 在期望的目标温度下启动冷却策略。平台可以通过分配不同的阈值来强调主动或被动冷却模式。通常,如果 _ACx 设置得低于 _PSV,则系统强调主动冷却。反之,如果 _PSV 设置得低于 _ACx,则系统强调被动冷却。
例如,一个包含处理器和一个单速风扇的热区,可以使用 _PSV 指示 OSPM 将启用被动冷却的温度值,并使用 _AC0 指示将打开风扇的温度。如果 _PSV 的值小于 _AC0,则系统将偏向被动冷却(例如,CPU 时钟节流)。另一方面,如果 _AC0 小于 _PSV,则系统将偏向主动冷却(换句话说,使用风扇)。有关更多详细信息,请参见下图。

图 11.5 冷却偏好
左侧示例会在 OSPM 检测到温度升高到 50° 以上时启用主动冷却(例如,打开风扇)。如果由于某种原因风扇未能降低系统温度,那么在 75° 时,OSPM 将启动被动冷却(例如,CPU 节流),同时仍保持风扇运行。如果温度继续攀升,当温度达到 90°C 时,OSPM 将迅速关闭系统。右侧示例类似,但交换了 _AC0 和 _PSV 阈值,以强调被动冷却。
ACPI 热模型在热区设计方面提供了灵活性。需要较简单热实现的 OEM 可以考虑仅使用单一阈值(例如 _CRT)。复杂的热实现可以通过多个主动冷却阈值和设备来建模,或者通过使用附加热区来建模。
11.2.1. 评估热设备列表
Notify(thermal_zone, 0x82) 语句用于通知 OSPM 热区设备列表已发生变化。此热事件指示 OSPM 重新评估 _ALx、_PSL 和 _TZD 对象。
例如,支持处理器动态插入的系统可能会发出此通知,以告知 OSPM 在插入或移除处理器后 _PSL 的变化。OSPM 将重新评估所有热设备列表并相应调整其策略。
请注意,此通知可以与 Notify(thermal_zone, 0x81) 语句一起使用,以通知 OSPM 同时重新评估所有设备列表和所有阈值。
另外,设备可以在其设备作用域中包含 _TZM (热区成员) 对象,以向 OSPM 传达其热区关联。有关更多信息,请参见下面的 _TZM (热区成员)。
11.2.2. 评估设备热关系信息
Notify(thermal_zone, 0x83) 语句用于通知 OSPM 热关系信息已发生变化。此热事件指示 OSPM 重新评估 _TRT 和 _ART 对象。当主动冷却使空气流经设备封装时,与仅应用被动冷却控制相比,设备之间的热影响可能会发生变化。类似地,当各种风扇参与对平台进行主动冷却时,或者当用户偏好发生变化时,主动冷却关系也可能发生变化。
11.2.3. 风扇设备通知
类型为 0x80 的 Notify 事件将导致 OSPM 评估 _FST 对象,以评估风扇的当前速度。