background image

Vol. 3B 19-205

PERFORMANCE-MONITORING EVENTS

Table 19-37.  Events That Can Be Counted with the P6 Family Performance-Monitoring Counters

Unit

Event 

Num.

Mnemonic Event 

Name

Unit 

Mask Description

Comments

Data Cache 

Unit (DCU)

43H

DATA_MEM_REFS 00H

All loads from any memory type. All stores 

to any memory type. Each part of a split is 

counted separately. The internal logic counts 

not only memory loads and stores, but also 

internal retries.
80-bit floating-point accesses are double 

counted, since they are decomposed into a 

16-bit exponent load and a 64-bit mantissa 

load. Memory accesses are only counted 

when they are actually performed (such as a 

load that gets squashed because a previous 

cache miss is outstanding to the same 

address, and which finally gets performed, is 

only counted once).
Does not include I/O accesses, or other 

nonmemory accesses.

45H

DCU_LINES_IN

00H

Total lines allocated in DCU.

46H

DCU_M_LINES_IN 00H

Number of M state lines allocated in DCU.

47H

DCU_M_LINES_

OUT

00H

Number of M state lines evicted from DCU.
This includes evictions via snoop HITM, 

intervention or replacement.

48H

DCU_MISS_

OUTSTANDING

00H

Weighted number of cycles while a DCU miss 

is outstanding, incremented by the number 

of outstanding cache misses at any 

particular time.
Cacheable read requests only are 

considered.
Uncacheable requests are excluded.
Read-for-ownerships are counted, as well as 

line fills, invalidates, and stores.

An access that also misses the L2 

is short-changed by 2 cycles (i.e., if 

counts N cycles, should be N+2 

cycles).
Subsequent loads to the same 

cache line will not result in any 

additional counts.
Count value not precise, but still 

useful.

Instruction 

Fetch Unit 

(IFU)

80H

IFU_IFETCH

00H

Number of instruction fetches, both 

cacheable and noncacheable, including UC 

fetches.

81H

IFU_IFETCH_

MISS

00H

Number of instruction fetch misses
All instruction fetches that do not hit the IFU 

(i.e., that produce memory requests). This 

includes UC accesses.

85H

ITLB_MISS

00H

Number of ITLB misses.

86H

IFU_MEM_STALL

00H

Number of cycles instruction fetch is stalled, 

for any reason.
Includes IFU cache misses, ITLB misses, ITLB 

faults, and other minor stalls.

87H

ILD_STALL

00H

Number of cycles that the instruction length 

decoder is stalled.

L2 Cache

1

28H

L2_IFETCH

MESI

0FH

Number of L2 instruction fetches.
This event indicates that a normal 

instruction fetch was received by the L2.