Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
Vol. 3 18-53
DEBUGGING AND PERFORMANCE MONITORING
18.13.2.2 Architectural Performance Monitoring Version 3 Facilities
The facilities provided by architectural performance monitoring version 1 and 2 are
also supported by architectural performance monitoring version 3. Additionally
version 3 provides enhancements to support a processor core comprising of more
than one logical processor, i.e. a processor core supporting Intel Hyper-Threading
Technology or simultaneous multi-threading capability. Specifically,
CPUID leaf 0AH provides enumeration mechanisms to query:
The number of general-purpose performance counters (IA32_PMCx) is
reported in CPUID.0AH:EAX[15:8], the bit width of general-purpose
performance counters (see also Section 18.13.1.1) is reported in
CPUID.0AH:EAX[23:16].
The bit vector representing the set of architectural performance monitoring
events supported (see Section 18.13.3)
The number of fixed-function performance counters, the bit width of fixed-
function performance counters (see also Section 18.13.2.1).
Each general-purpose performance counter IA32_PMCx (starting at MSR address
0C1H) is associated with a corresponding IA32_PERFEVTSELx MSR (starting at
MSR address 186H). The Bit field layout of IA32_PERFEVTSELx MSRs is defined
architecturally in Figure 18-18.
Figure 18-17. Layout of IA32_PERF_GLOBAL_OVF_CTRL MSR
62
IA32_FIXED_CTR2 ClrOverflow
IA32_FIXED_CTR1 ClrOverflow
IA32_FIXED_CTR0 ClrOverflow
IA32_PMC1 ClrOverflow
2
1
0
IA32_PMC0 ClrOverflow
3132333435
Reserved
63
ClrCondChgd
ClrOvfBuffer