background image

14-12 Vol. 3B

POWER AND THERMAL MANAGEMENT

EN_Excursion_Minimum (bit 1, RW) — When set (1), an HWP Interrupt will be generated whenever the 
HWP hardware is unable to meet the IA32_HWP_REQUEST.Minimum_Performance setting. The default value is 
0 (Interrupt generation is disabled). 

Bits 63:2, and bit 1 are reserved and must be zero.

14.4.7 

Recommendations for OS use of HWP Controls

Common Cases of Using HWP

The default HWP control field values are expected to be suitable for many applications. The OS can enable autono-
mous HWP for these common cases by

Setting IA32_HWP_REQUEST.Desired Performance = 0 (hardware autonomous selection determines the 
performance target). Set IA32_HWP_REQUEST.Activity Window = 0 (enable HW dynamic selection of window 
size).

To maximize HWP benefit for the common cases, the OS should set 

IA32_HWP_REQUEST.Minimum_Performance = IA32_HWP_CAPABILITIES.Lowest_Performance and 

IA32_HWP_REQUEST.Maximum_Performance = IA32_HWP_CAPABILITIES.Highest_Performance. 

Setting IA32_HWP_REQUEST.Minimum_Performance = IA32_HWP_REQUEST.Maximum_Performance is function-
ally equivalent to using of the IA32_PERF_CTL interface and is therefore not recommended (bypassing HWP).

Calibrating HWP for Application-Specific HWP Optimization

In some applications, the OS may have Quality of Service requirements that may not be met by the default values. 
The OS can characterize HWP by: 

keeping IA32_HWP_REQUEST.Minimum_Performance = IA32_HWP_REQUEST.Maximum_Performance to 
prevent non-linearity in the characterization process,

utilizing the range values enumerated from the IA32_HWP_CAPABILITIES MSR to program 
IA32_HWP_REQUEST while executing workloads of interest and observing the power and performance result.

The power and performance result of characterization is also influenced by the IA32_HWP_REQUEST.Energy 
Performance Preference field, which must also be characterized. 
Characterization can be used to set IA32_HWP_REQUEST.Minimum_Performance to achieve the required QOS in 
terms of performance. If IA32_HWP_REQUEST.Minimum_Performance is set higher than 
IA32_HWP_CAPABILITIES.Guaranteed Performance then notification of excursions to Minimum Performance may 
be continuous.
If autonomous selection does not deliver the required workload performance, the OS should assess the current 
delivered effective frequency and for the duration of the specific performance requirement set 
IA32_HWP_REQUEST.Desired_Performance ≠ 0 and adjust IA32_HWP_REQUEST.Energy_Performance_Preference 
as necessary to achieve the required workload performance. The MSR_PPERF.PCNT value can be used to better 
comprehend the potential performance result from adjustments to IA32_HWP_REQUEST.Desired_Performance. 
The OS should set IA32_HWP_REQUEST.Desired_Performance = 0 to re-enable autonomous selection. 

Tuning for Maximum Performance or Lowest Power Consumption

Maximum performance will be delivered by setting IA32_HWP_REQUEST.Minimum_Performance = 
IA32_HWP_REQUEST.Maximum_Performance = IA32_HWP_CAPABILITIES.Highest_Performance and setting 
IA32_HWP_REQUEST.Energy_Performance_Preference = 0 (performance preference).
Lowest power will be achieved by setting IA32_HWP_REQUEST.Minimum_Performance = 
IA32_HWP_REQUEST.Maximum_Performance = IA32_HWP_CAPABILITIES.Lowest_Performance and setting 
IA32_HWP_REQUEST.Energy_Performance_Preference = 0FFH (energy efficiency preference).