background image

Vol. 3B 17-45

DEBUG, BRANCH PROFILE, TSC, AND RESOURCE MONITORING FEATURES

supported resource type is represented by a bit in CPUID.(EAX=0FH, ECX=0):EDX[31:1]. The bit position 
corresponds to the sub-leaf index (ResID) that software must use to query details of the monitoring capability 
of that resource type (see Figure 17-21 and Figure 17-22). Reserved bits of CPUID.(EAX=0FH, 
ECX=0):EDX[31:2] correspond to unsupported sub-leaves of the CPUID.0FH leaf. Additionally, 
CPUID.(EAX=0FH, ECX=0H):EBX reports the highest RMID value of any resource type that supports 
monitoring in the processor.

17.16.5 Feature-Specific 

Enumeration

Each additional sub-leaf of CPUID.(EAX=0FH, ECX=ResID) enumerates the specific details for software to program 
Monitoring MSRs using the resource type associated with the given ResID. 
Note that in future Monitoring implementations the meanings of the returned registers may vary in other sub-
leaves that are not yet defined. The registers will be specified and defined on a per-ResID basis.

For each supported Cache Monitoring resource type, hardware supports only a finite number of RMIDs. 
CPUID.(EAX=0FH, ECX=1H).ECX enumerates the highest RMID value that can be monitored with this resource 
type, see Figure 17-21
CPUID.(EAX=0FH, ECX=1H).EDX specifies a bit vector that is used to look up the EventID (See Figure 17-22 and 
Table 17-19) that software must program with IA32_QM_EVTSEL in order to retrieve event data. After software 
configures IA32_QMEVTSEL with the desired RMID and EventID, it can read the resulting data from IA32_QM_CTR. 
The raw numerical value reported from IA32_QM_CTR can be converted to the final value (occupancy in bytes or 
bandwidth in bytes per sampled time period) by multiplying the counter value by the value from CPUID.(EAX=0FH, 
ECX=1H).EBX, see Figure 17-21

Figure 17-20.  CPUID.(EAX=0FH, ECX=0H) Monitoring Resource Type Enumeration

Figure 17-21.  L3 Cache Monitoring Capability Enumeration Data (CPUID.(EAX=0FH, ECX=1H) )

0

2

31

CPUID.(EAX=0FH, ECX=0H) Output: (EAX: Reserved; ECX: Reserved)

EDX

L

EBX

0

31

Highest RMID Value of Any Resource Type (Zero-Based)

3

1

Reserved

CPUID.(EAX=0FH, ECX=1H) Output: (EAX: Reserved)

ECX

0

31

Highest RMID Value of This Resource Type (Zero-Based)

EBX

0

31

Upscaling Factor to Total Occupancy (Bytes)

Upscaling Factor

MaxRMID