background image

19-2 Vol. 3B

PERFORMANCE-MONITORING EVENTS

19.1 ARCHITECTURAL 

PERFORMANCE-MONITORING 

EVENTS

Architectural performance events are introduced in Intel Core Solo and Intel Core Duo processors. They are also 
supported on processors based on Intel Core microarchitecture. Table 19-1 lists pre-defined architectural perfor-
mance events that can be configured using general-purpose performance counters and associated event-select 
registers.

Fixed-function performance counters count only events defined in Table 19-2.

Table 19-1.  Architectural Performance Events

Event

Num.

Event Mask Mnemonic

Umask

Value

Description

Comment

3CH

UnHalted Core Cycles

00H

Unhalted core cycles.

3CH

UnHalted Reference Cycles

01H

Unhalted reference cycles.

Measures bus 

cycle

1

NOTES:

1. Implementation of this event in Intel Core 2 processor family, Intel Core Duo, and Intel Core Solo processors measures bus clocks.

C0H

Instruction Retired

00H

Instruction retired.

2EH

LLC Reference

4FH

Longest latency cache references.

2EH

LLC Misses

41H

Longest latency cache misses.

C4H

Branch Instruction Retired

00H

Branch instruction at retirement.

C5H

Branch Misses Retired

00H

Mispredicted branch instruction at retirement.

Table 19-2.  Fixed-Function Performance Counter and Pre-defined Performance Events

Fixed-Function Performance 

Counter

Address Event Mask Mnemonic

Description

IA32_PERF_FIXED_CTR0

309H

Inst_Retired.Any

This event counts the number of instructions that retire 

execution. For instructions that consist of multiple micro-

ops, this event counts the retirement of the last micro-op 

of the instruction. The counter continues counting during 

hardware interrupts, traps, and inside interrupt handlers.

IA32_PERF_FIXED_CTR1

30AH

CPU_CLK_UNHALTED.THRE

AD/CPU_CLK_UNHALTED.C

ORE/CPU_CLK_UNHALTED.

THREAD_ANY

The CPU_CLK_UNHALTED.THREAD event counts the 

number of core cycles while the logical processor is not in a 

halt state. 
If there is only one logical processor in a processor core, 

CPU_CLK_UNHALTED.CORE counts the unhalted cycles of 

the processor core. 
If there are more than one logical processor in a processor 

core, CPU_CLK_UNHALTED.THREAD_ANY is supported by 

programming IA32_FIXED_CTR_CTRL[bit 6]AnyThread = 1.
The core frequency may change from time to time due to 

transitions associated with Enhanced Intel SpeedStep 

Technology or TM2. For this reason this event may have a 

changing ratio with regards to time.