background image

18-10 Vol. 3B

PERFORMANCE MONITORING

based on the Sandy Bridge microarchitecture, N = 4 if Intel Hyper Threading Technology is active and N=8 if 
not active).

18.2.3.1   AnyThread Counting and Software Evolution

The motivation for characterizing software workload over multiple software threads running on multiple logical 
processors of the same processor core originates from a time earlier than the introduction of the AnyThread inter-
face in IA32_PERFEVTSELx and IA32_FIXED_CTR_CTRL. While Anythread counting provides some benefits in 
simple software environments of an earlier era, the evolution contemporary software environments introduce 
certain concepts and pre-requisites that AnyThread counting does not comply with. 

Figure 18-8.  Layout of Global Performance Monitoring Control MSR

Figure 18-9.  Global Performance Monitoring Overflow Status and Control MSRs

IA32_FIXED_CTR2 enable
IA32_FIXED_CTR1 enable

IA32_FIXED_CTR0 enable

IA32_PMC(N-1) enable

.. 1 0

.................... enable

31

32

33

34

35

Reserved

63

..

N

IA32_PMC1 enable

IA32_PMC0 enable

Global Enable Controls IA32_PERF_GLOBAL_CTRL

62

IA32_FIXED_CTR2 Overflow
IA32_FIXED_CTR1 Overflow
IA32_FIXED_CTR0 Overflow
IA32_PMC1 Overflow

.. 1 0

IA32_PMC0 Overflow

31

32

33

34

35

63

CondChgd
OvfDSBuffer

..

N

...................... Overflow

IA32_PMC(N-1) Overflow

Global Overflow Status IA32_PERF_GLOBAL_STATUS

62

IA32_FIXED_CTR2 ClrOverflow

IA32_FIXED_CTR1 ClrOverflow
IA32_FIXED_CTR0 ClrOverflow

IA32_PMC1 ClrOverflow

.. 1 0

IA32_PMC0 ClrOverflow

31

32

33

34

35

63

ClrCondChgd
ClrOvfDSBuffer

Global Overflow Status IA32_PERF_GLOBAL_OVF_CTRL

........................ ClrOverflow

IA32_PMC(N-1) ClrOverflow

N ..

ClrOvfUncore

OvfUncore

61