10.4. 功率计
以下各节描述功率计量对象。这些对象可以定义在一个功率计设备之下,该设备使用 ACPI000D 硬件标识符 (_HID) 进行声明。
表 10.14 功率计对象
| 对象 | 描述 |
|---|---|
| _GAI | 获取功率计使用的平均间隔。 |
| _GHL | 获取由功率计强制实施的硬件功耗限制。 |
| _PAI | 设置功率计使用的功率平均间隔。 |
| _PMC | 返回功率计能力。 |
| _PMD | 返回一个设备列表,这些设备的功耗由功率计测量。 |
| _PMM | 返回由功率计测得的功耗。 |
| _PTP | 设置功率计设备跳变点。 |
| _SHL | 设置由功率计强制实施的硬件功耗限制。 |
10.4.1. _PMC(功率计能力)
此对象返回功率计的能力。除非功率计的固件或 BMC 硬件发生变化,否则此信息保持不变;当发生此类变化时,平台必须发送 Notify(power_meter, 0x80),以便 OSPM 重新求值 _PMC。
参数:
无
返回值:
一个具有以下格式的 Package:
Package {
Supported Capabilities // Integer (DWORD)
Measurement Unit // Integer (DWORD)
Measurement Type // Integer (DWORD)
Measurement Accuracy // Integer (DWORD)
Measurement Sampling Time // Integer (DWORD)
Minimum Averaging Interval // Integer (DWORD)
Maximum Averaging Interval // Integer (DWORD)
Hysteresis Margin // Integer (DWORD)
Hardware Limit Is Configurable // Boolean (DWORD)
Min Configurable Hardware Limit // Integer (DWORD)
Max Configurable Hardware Limit // Integer (DWORD)
Model Number // String
Serial Number // String
OEM Information // String
}
表 10.15 PMC 方法结果代码
| 元素 | 对象类型 | 说明 |
|---|---|---|
| 支持的功能 | 整数(DWORD) | 表示功能标志的位掩码:位 [0] - 表示功率计支持测量。位 [1] - 表示功率计支持跳闸点。位 [2] - 表示功率计支持硬件强制限制。位 [3 ]- 表示功率计支持在硬件限制被强制执行时的通知。位 [7:4] - 保留。位 [8] - 表示功率计仅在放电时报告数据。这适用于电池型设备的功率计。位 [9:31] 保留 |
| 测量单位 | 整数(DWORD) | 功率计用于报告测量值以及配置跳闸点和硬件强制限制的单位。0x00000000 - 表示测量值以 [mW] 报告。 |
| 测量类型 | 整数(DWORD) | 功率计正在测量的类型。功率计可以测量输入功率或输出功率,但不能同时测量两者。0x00000000 - 表示功率计正在测量输入功率。0x00000001 - 表示功率计正在测量输出功率。 |
| 测量精度 | 整数(DWORD) | 功率计设备的精度,单位为千分之一百分比。(0% - 100.000%)例如,值 80000 表示 80% 的精度。 |
| 测量采样时间 | 整数(DWORD) | 功率计设备的采样时间,单位为毫秒。这是测量值发生变化的最短时间。换言之,如果 OSPM 在一个测量采样时间内连续读取 2 次,_PMM 将返回相同的读数。若信息不可用,则返回 0xFFFFFFFF。 |
| 最小平均间隔 | 整数(DWORD) | 这是功率计固件能够对其中的测量值进行平均处理的最短时间长度(以毫秒为单位)。 |
| 最大平均间隔 | 整数(DWORD) | 这是功率计固件能够对其中的测量值进行平均处理的最长时间长度(以毫秒为单位)。 |
| 滞后余量 | 整数(DWORD) | BMC 用于滞后的余量,单位为 [测量单位 / 测量采样时间]。这表示围绕跳闸点和硬件限制通知构建的余量。该余量可防止当读数在某个跳闸点或硬件限制附近波动时,向 OSPM 发出不必要的通知。若信息不可用,则返回 0xFFFFFFFF。 |
| 硬件限制是否可配置 | 整数(DWORD) | 该布尔值表示 OSPM 是否可以配置硬件强制限制:0x00000000(全零)- 表示该限制为只读。0xFFFFFFFF(全一)- 表示该限制可写。 |
| 最小可配置硬件限制 | 整数(DWORD) | 可以配置到硬件强制限制中的最小值,以测量单位所指定的单位表示。 |
| 最大可配置硬件限制 | 整数(DWORD) | 可以配置到硬件强制限制中的最大值,以测量单位所指定的单位表示。 |
| 型号 | 字符串(ASCIIZ) | OEM 专用的功率计型号。此元素为可选项;如果不支持,应使用空字符串(空字符)。 |
| 序列号 | 字符串(ASCIIZ) | OEM 专用的功率计序列号。此元素为可选项;如果不支持,应使用空字符串(空字符)。 |
| OEM 信息 | 字符串(ASCIIZ) | UI 用于显示的关于功率计设备的 OEM 专用信息。此元素为可选项;如果不支持,应使用 NULL 字符串。 |
10.4.2. _PTP(功率跳闸点)
此对象设置功率计设备的上限和下限跳闸点。这两个跳闸点定义了一个滞后范围,在该范围内,OSPM 可以容忍而无需通过 _PMM 重新读取当前测量值。当功率计读数超出该范围时,应发送 Notify(power_meter, 0x81) 以通知 OSPM,此时 OSPM 应重新评估 _PMM,并在最新读数周围重新设置一对跳闸点。如果在调用 _PTP 时,功率计测得的最新值超出了由跳闸点定义的范围,则返回一个结果代码。
参数:(2)
Arg0(整数):上限跳闸点
Arg1(整数):下限跳闸点
返回值:
返回一个包含操作状态的整数:
0x00000000 - 成功
0x00000001 - 因最新测量值超出范围而无法设置跳闸点
0x00000002 - 因硬件超时而无法设置跳闸点
0x00000003 - 因未知硬件错误而无法设置跳闸点
0x00000004 - 0xFFFFFFFF - 保留
10.4.3. _PMM(功率计测量)
此对象返回来自功率计设备的最新测量读数。返回值表示实际功率(即,值中包含功率因数)。在大多数情况下,这是一种由固件在一个平均间隔内计算得到的滚动平均值。对于该间隔可配置的系统,_PAI 对象应位于功率计设备下(见第 10.4.4 节)。
参数
无
返回值
返回一个整数,表示来自功率计设备的最新测量读数。该值应采用功率计功能中指定的单位(通常为毫瓦),并且在功率计测量交流电时要求为 RMS 值。如果在获取表计读数时发生错误,或该值不可用,则返回所有位均置位的整数。
10.4.4. _PAI(功率平均间隔)
此对象设置功率计使用的平均间隔。平均间隔是功率计在对瞬时测量样本求平均以生成由 _PMM 返回的平均功率测量值之前所取样的总时间。如果平台独立于 OSPM 更改了平均间隔,平台必须发出 Notify(power_meter, 0x84) 以向 OSPM 指示该更改。收到通知后,OSPM 会评估 _GAI 对象以读取新的平均间隔。
参数:(1)
Arg0 - 一个整数,表示 OSPM 选择的期望功率平均间隔值,单位为毫秒。该值需要位于 _PMC 指定的最小和最大平均间隔之间。否则,将返回失败结果代码。
返回值:
返回一个包含操作状态的整数:
0x00000000 - 成功
0x00000001 - 因超出范围而无法设置功率平均间隔
0x00000002 - 因硬件超时而无法设置功率平均间隔
0x00000003 - 因未知硬件错误而无法设置功率平均间隔
0x00000004 - 0xFFFFFFFF - 保留
10.4.5. _GAI(获取平均间隔)
此对象获取功率计使用的平均间隔。平均间隔是功率计在对瞬时测量样本求平均以生成由 _PMM 返回的平均功率测量值之前所取样的总时间。如果平台独立于 OSPM 更改了平均间隔,平台必须发出 Notify(power_meter, 0x84) 以向 OSPM 指示该更改。收到通知后,OSPM 会评估 _GAI 对象以读取新的平均间隔。
参数:
无
返回值:
返回一个整数,表示当前配置的功率平均间隔,单位为毫秒。如果在获取平均间隔时发生错误,或该值不可用,则返回所有位均置位的整数。
10.4.6. _SHL(设置硬件限制)
此对象设置由功率计强制执行的硬件限制。如果受支持,该限制将由平台硬件上的电路尽最大努力强制执行。该值通常也可通过其他带外管理机制进行配置。当执行发生时,平台应向 OSPM 发送 Notify(power_meter, 0x83)。
参数:(1)
Arg0 - 一个整数值,表示 OSPM 选择的该功率计所需硬件强制限制值,单位为 _PMC 中指定的单位。该值需要位于 _PMC 指定的最小和最大硬件限制之间。否则,将返回失败结果代码。
返回值:
返回一个包含操作状态的整数:
- 0x00000000 - 成功 - 0x00000001 - 因超出范围而无法设置硬件限制 - 0x00000002 - 因硬件超时而无法设置硬件限制 - 0x00000003 - 因未知硬件错误而无法设置硬件限制 - 0x00000004 - 0xFFFFFFFF - 保留
10.4.7. _GHL(获取硬件限制)
此对象获取由功率计强制执行的硬件限制。该限制可以由 OSPM 或平台通过某种带外机制进行更改。当该值被更改时,应发送 Notify(power_meter, 0x82) 以通知 OSPM 重新读取硬件限制。如果在获取硬件限制时发生错误,或该值不可用,则返回所有位均置位的整数。
参数:
无
返回值:
返回一个整数,表示功率计当前配置的硬件强制限制,单位为 _PMC 中指定的单位。
10.4.8. _PMD(功率计量设备)
此对象求值为一个设备名称包。每个名称对应于 ACPI 命名空间中由功率计设备测量的一个设备。功率计报告的测量值大致对应于所返回所有设备的总功耗。
如果存在此控制方法,则该包中至少需要包含 1 个设备。在支持功率计量的系统上,应始终存在一个测量整个系统功耗的系统功率计,并且其 _PMD 应只包含 \_SB 作为唯一条目。
参数:
无
返回值:
一个可变长度的包,由被功率计测量的设备引用组成:
Package { Power Meter[0] // 名称路径 Power Meter[1] // 名称路径 ... Power Meter[n] // 名称路径 }