8.4.7.1.2. 性能控制
在 CPPC 下,OSPM 具有若干性能设置,它可以结合使用这些设置来控制/影响平台的性能。这些控制输入在下图中进行了概述。

图 8.11 OSPM 性能控制
OSPM 可以在平台支持的连续取值范围内选择任意性能值。在内部,平台可以实现少量离散性能状态,并且可能无法在 OSPM 所希望的确切性能级别下运行。如果不存在与 OSPM 所期望性能级别相匹配的平台内部状态,平台应按如下方式对期望性能进行舍入:
如果 OSPM 选择了大于或等于保证性能的期望性能级别,则平台可以向上或向下舍入。舍入结果不得低于保证性能。
如果 OSPM 选择了低于保证性能的期望性能级别,并且最大性能级别不低于保证性能,则平台必须向上舍入。
如果 OSPM 选择的期望性能级别和最大性能级别都低于保证性能,则如果向上舍入不会违反最大性能级别,平台必须向上舍入。否则,向下舍入。如果 OSPM 选择将最大性能级别设置为低于保证性能,则 OSPM 必须容忍平台向下舍入。这种方法倾向于性能,除非性能由于平台或 OSPM 约束而受到限制。
启用自主选择时,OSPM 通过向最小性能和最大性能寄存器写入适当的约束值来限制处理器的性能选择。将最小值和最大值设置为相同的值会有效禁用自主选择。
注意:当处理器位于同一依赖域内时,只有在硬件协调允许的情况下,最大性能才可能实际受到限制。
8.4.7.1.2.1. 最大性能寄存器
Optional Attribute: Read/Write
Size: 8-32 bits
最大性能寄存器传达平台允许运行的最大性能级别。最大性能可以设置为 [最低性能, 最高性能] 范围内的任意性能值(包含端点)。
写入最大性能寄存器的值传达了一个限制最大性能的请求,其目的是提高能效或进行热控制,平台会尽可能据此限制其性能。然而,如果由于内部封装优化而有必要,平台可能会超过所请求的限制。例如,具有相互依赖关系的多个逻辑处理器之间的硬件协调。
OSPM 出于热控制目的使用该寄存器来限制性能时,必须理解具有相互依赖关系的多个逻辑处理器。即,必须向一个域内的所有处理器写入相同的值,才能达到期望结果。
平台必须要么同时实现最小性能和最大性能寄存器,要么两个寄存器都不实现。如果两个寄存器都未实现且自主选择被禁用,则平台必须始终提供期望性能。
8.4.7.1.2.2. 最小性能寄存器
Optional Attribute: Read/Write
Size: 8-32 bits
最小性能寄存器允许 OSPM 传达平台允许运行的最小性能级别。最小性能可以设置为 [最低性能, 最高性能] 范围内的任意性能值(包含端点),但必须设置为小于或等于最大性能寄存器所指定值的数值。
在存在物理约束时,例如热突发,平台可能无法按照通过最小性能寄存器设置的值成功维持最小性能。在这种情况下,平台向处理器设备对象发出类型为 0x84 的 Notify 事件,并设置性能受限寄存器中的 Minimum_Excursion 位。
平台必须要么同时实现最小性能和最大性能寄存器,要么两个寄存器都不实现。如果两个寄存器都未实现且自主选择被禁用,则平台必须始终提供期望性能。
8.4.7.1.2.3. 期望性能寄存器
Optional Attribute (depending on Autonomous Selection support): Read/Write
Size: 8-32 bits
当自主选择被禁用时,期望性能寄存器是必需的,并传达 OSPM 正在向平台请求的性能级别。期望性能可以设置为 [最小性能, 最大性能] 范围内的任意性能值(包含端点)。期望性能可以具有两种含义之一,这取决于期望性能高于还是低于保证性能级别。
低于保证性能级别时,期望性能表示平台必须提供的平均性能级别,但受限于性能降低容差。
高于保证性能级别时,平台必须提供保证性能级别。如果当前运行条件允许,平台应尝试提供最高达到期望性能级别的性能,但并非必须这样做
启用自主选择时,OSPM 无需评估处理器工作负载的性能需求,也无需通过期望寄存器向平台传达相应的性能交付请求。如果存在期望性能寄存器,OSPM 可以通过写入非零值向平台提供显式性能需求提示。在这种情况下,交付的性能不受性能降低容差寄存器限制,不过,OSPM 可以通过向能效偏好寄存器写入适当的值来影响所交付的性能。向期望性能寄存器写入零值,或者期望性能寄存器不存在,会导致平台自主选择适合当前工作负载的性能级别。
注意
仅当 OPSM 在平台范围的 _OSC 能力中指示支持 CPPC2,且自主选择启用字段被编码为值为 1 的 Integer 时,期望性能寄存器才是可选的。*
8.4.7.1.2.4. 性能降低容差寄存器
Optional Attribute: Read/Write
Size: 8-32 bits
性能降低容差寄存器由 OSPM 用于传达低于期望性能的可容忍偏差。它由 OSPM 表示为性能标度上的绝对值。性能容差必须小于或等于期望性能。如果平台支持时间窗口寄存器,则性能降低容差传达的是在时间窗口上按平均值可交付的最小性能值。如果未实现该寄存器,平台必须假定性能降低容差 = 期望性能。
启用自主选择时,写入性能降低容差寄存器的值将被忽略。
8.4.7.1.2.5. 时间窗口寄存器
Optional Attribute: Read/Write
Size: 8-32 bits
Units: milliseconds
当未启用自主选择时,OSPM 可以向时间窗口寄存器写入一个值,以指示平台必须在其上提供期望性能级别(受性能降低容差约束)的时间窗口。OSPM 在选择新的期望性能时设置该时间窗口。该时间窗口表示 OSPM 对平台所交付性能进行评估的最短持续时间(有关 OSPM 如何计算交付性能的详细信息,请参见性能计数器“性能计数器”)。如果 OSPM 在小于指定时间窗口的区间上评估交付性能,则它对平台所交付的性能不抱有任何期望。对于任何等于或大于该时间窗口的评估区间,平台必须在指定的容差范围内提供 OSPM 的期望性能。
如果 OSPM 指定的时间窗口为零,或者平台不支持时间窗口寄存器,则无论评估区间的持续时间如何,平台都必须在性能降低容忍度的范围内提供性能。
当启用自主选择时,写入时间窗口寄存器的值会被忽略。读取时间窗口寄存器会指示对平台性能计数器进行连续两次读取之间的最小时间长度(以毫秒为单位)。如果不支持时间窗口寄存器,则对平台性能计数器进行连续读取之间没有最小时间要求。