8.4.7.1.3. 性能反馈
平台通过一组性能计数器和一个性能受限指示器来提供性能反馈。
8.4.7.1.3.1. 性能计数器
为了确定一段时间内实际提供的性能级别,OSPM 可以从参考性能计数器寄存器和已提供性能计数器寄存器中读取一组性能计数器。
OSPM 通过获取参考性能计数器和已提供性能计数器在给定时间段开始和结束时的快照,并按如下方式计算,来得出该时间段内已提供的性能:

已提供的性能应始终落在 [最低性能, 最高性能] 范围内(含边界)。OSPM 可以使用已提供性能计数器作为反馈机制,以细化其选择的期望性能状态。
当未启用自主选择时,存在一些约束,用于规定平台所提供的性能如何以及何时可以偏离 OSPM 期望性能。对应于 OSPM 设置某一期望性能:在此之后的任何时刻,适用于已提供性能的约束如下
如果平台能够以与提供期望性能相同或更低的能耗提供更高的性能,则已提供性能可以高于 OSPM 请求的期望性能。
如果平台具有离散性能状态,并且需要根据 OSPM 控制部分规定的算法将性能向下舍入到最近的受支持性能级别,则已提供性能可以高于或低于 OSPM 期望性能。
如果平台的效率优化导致已提供性能低于期望性能,则已提供性能可以低于 OSPM 期望性能。但是,已提供性能绝不应低于 OSPM 指定的性能降低容忍度。性能降低容忍度为平台在优化性能提供时可采取的激进程度提供了边界。平台不应执行任何会导致已提供性能低于 OSPM 指定的性能降低容忍度的优化。
参考性能计数器寄存器
Attribute: Read
Size: 32 or 64 bits
参考性能计数器寄存器在处理器处于活动状态的任何时候都以固定速率计数。它不受期望性能变化、处理器节流等因素影响。如果支持参考性能,则参考性能计数器按对应于参考性能级别的速率累积。否则,参考性能计数器按标称性能级别累积。
已提供性能计数器寄存器 :
Attribute: Read
Size: 32 or 64 bits
已提供性能计数器寄存器在处理器处于活动状态的任何时候都会递增,其速率与当前性能级别成比例,并会考虑期望性能的变化。当处理器工作在其参考性能级别时,已提供性能计数器必须以与参考性能计数器相同的速率递增。
计数器回绕时间 :
Optional Register or DWORD Attribute: Read
Size: 32 or 64 bits
Units: seconds
计数器回绕时间为平台提供了一种指定参考/已提供性能计数器回卷时间的方法。如果 OSPM 查询反馈计数器的间隔超过该时间段,则计数器可能发生回绕,而 OSPM 无法检测到它们已经回绕。
如果未实现(或为零),则假定性能计数器在平台的整个生命周期内都不会回绕。
8.4.7.1.3.2. 性能受限寄存器
Attribute: Read/Write
Size: >=2 bit(s)
如果由于不可预测事件,平台将已提供性能限制为低于最低性能或期望性能(或者,当期望性能高于保证性能时,低于保证性能),则平台将性能受限指示器设置为非零值。这表示给 OSPM:某个不可预测事件已经限制了处理器性能,因此已提供性能可能低于期望/最低性能。如果平台不支持发出性能受限事件信号,则允许该寄存器在读取时始终返回零。
表 8.24 性能受限寄存器状态位
| 位 | 名称 | 描述 |
|---|---|---|
| 0 | Desired_Excursion | 当已提供性能被限制为低于期望性能时置位(或者,当期望性能高于保证性能时,低于保证性能)。启用自主选择时,不使用此位。 |
| 1 | Minimum_Excursion | 当已提供性能被限制为低于最低性能时置位 |
| 2-n | 保留 | 保留 |
性能受限寄存器中的各位是粘滞的,并将保持非零,直到 OSPM 清除该位。平台仅应在最小偏离从 0 转换到 1 时发出 Notify,以避免在存在持续或反复发生的限制但 OSPM 尚未清除先前指示时重复产生事件。
注意
对性能受限寄存器的所有访问都必须由两个访问实体使用互锁操作进行。*
性能受限寄存器仅应用于报告短期、不可预测的事件(例如,PROCHOT 被断言)。如果平台能够识别限制处理器性能的长期、可预测事件,则应使用保证性能寄存器将此限制通知给 OSPM。对保证性能的更改频率不应超过每秒一次。如果平台无法在持续一段时间(大于一秒)内保证某个给定性能级别,则应保证较低的性能级别,并根据 OSPM 的请求以及当前运行条件允许的情况下,机会性地进入较高的性能级别。