background image

Vol. 3B 18-105

PERFORMANCE MONITORING

18.17.3  Incrementing the Time-Stamp Counter

The time-stamp counter increments when the clock signal on the system bus is active and when the sleep pin is not 
asserted. The counter value can be read with the RDTSC instruction.
The time-stamp counter and the non-sleep clockticks count may not agree in all cases and for all processors. See 
Section 17.15, “Time-Stamp Counter,” for more information on counter operation.

18.17.4  Non-Halted Reference Clockticks

Software can use either processor-specific performance monitor events (for example: CPU_CLK_UNHALTED.BUS 
on processors based on the Intel Core microarchitecture, and equivalent event specifications on the Intel Core Duo 
and Intel Core Solo processors) to count non-halted reference clockticks.
These events count reference clock cycles whenever the specified processor is not halted. The counter counts 
reference cycles associated with a fixed-frequency clock source irrespective of P-state, TM2, or frequency transi-
tions that may occur to the processor.

18.17.5  Cycle Counting and Opportunistic Processor Operation

As a result of the state transitions due to opportunistic processor performance operation (see Chapter 14, “Power 
and Thermal Management”), 
a logical processor or a processor core can operate at frequency different from the 
Processor Base frequency. 
The following items are expected to hold true irrespective of when opportunistic processor operation causes state 
transitions:

The time stamp counter operates at a fixed-rate frequency of the processor.

The IA32_MPERF counter increments at a fixed frequency irrespective of any transitions caused by opportu-
nistic processor operation.

The IA32_FIXED_CTR2 counter increments at the same TSC frequency irrespective of any transitions caused 
by opportunistic processor operation.

The Local APIC timer operation is unaffected by opportunistic processor operation.

The TSC, IA32_MPERF, and IA32_FIXED_CTR2 operate at close to the maximum non-turbo frequency, which is 
equal to the product of scalable bus frequency and maximum non-turbo ratio. 

For processors based on Intel Core microarchitecture, the scalable bus frequency is encoded in the bit field 
MSR_FSB_FREQ[2:0] at (0CDH), see Chapter 35, “Model-Specific Registers (MSRs)”. The maximum resolved bus 
ratio can be read from the following bit field:

If XE operation is disabled, the maximum resolved bus ratio can be read in MSR_PLATFORM_ID[12:8]. It 
corresponds to the Processor Base frequency.

IF XE operation is enabled, the maximum resolved bus ratio is given in MSR_PERF_STAT[44:40], it corresponds 
to the maximum XE operation frequency configured by BIOS.

XE operation of an Intel 64 processor is implementation specific. XE operation can be enabled only by BIOS. If 
MSR_PERF_STAT[31] is set, XE operation is enabled. The MSR_PERF_STAT[31] field is read-only.

18.18 IA32_PERF_CAPABILITIES 

MSR 

ENUMERATION

The layout of IA32_PERF_CAPABILITIES MSR is shown in Figure 18-49, it provides enumeration of a variety of 
interfaces:

IA32_PERF_CAPABILITIES.LBR_FMT[bits 5:0]: encodes the LBR format, details are described in Section 
17.4.8.1
.

IA32_PERF_CAPABILITIES.PEBSTrap[6]: Trap/Fault-like indicator of PEBS recording assist, see Section 
18.4.4.2
.