background image

Vol. 3B 19-149

PERFORMANCE-MONITORING EVENTS

19.12  PERFORMANCE MONITORING EVENTS FOR PROCESSORS BASED ON THE 

SILVERMONT MICROARCHITECTURE

Processors based on the Silvermont microarchitecture support the architectural performance-monitoring events 
listed in Table 19-1 and fixed-function performance events using fixed counter. In addition, they also support the 
following non-architectural performance-monitoring events listed in Table 19-25. These processors have the CPUID 
signatures of 06_37H, 06_4AH, 06_4DH, 06_5AH, and 06_5DH. 
Performance monitoring event descriptions may refer to terminology described in Section B.2, “Intel® Xeon® 
processor 5500 Series,” in Appendix B of the Intel® 64 and IA-32 Architectures Optimization Reference Manual
.

E6H

01H

BACLEARS.ALL

Counts the number of times a BACLEAR is signaled for any reason, 

including, but not limited to indirect branch/call, Jcc (Jump on Conditional 

Code/Jump if Condition is Met) branch, unconditional branch/call, and 

returns.

E6H

08H

BACLEARS.RETURN

Counts BACLEARS on return instructions.

E6H

10H

BACLEARS.COND

Counts BACLEARS on Jcc (Jump on Conditional Code/Jump if Condition is 

Met) branches.

E7H

01H

MS_DECODED.MS_ENTR

Y

Counts the number of times the Microcode Sequencer (MS) starts a 

flow of uops from the MSROM. It does not count every time a uop is 

read from the MSROM. The most common case that this counts is when 

a micro-coded instruction is encountered by the front end of the 

machine. Other cases include when an instruction encounters a fault, 

trap, or microcode assist of any sort that initiates a flow of uops. The 

event will count MS startups for uops that are speculative, and 

subsequently cleared by branch mispredict or a machine clear.

E9H

01H

DECODE_RESTRICTION.

PREDECODE_WRONG

Counts the number of times the prediction (from the pre-decode cache) 

for instruction length is incorrect.

Table 19-25.  Performance Events for Silvermont Microarchitecture 

Event

Num.

Umask

Value

Event Name

Definition

Description and Comment

03

H

01

H

REHABQ.LD_BLOCK_S

T_FORWARD

Loads blocked due to 

store forward 

restriction.

This event counts the number of retired loads that were 

prohibited from receiving forwarded data from the store 

because of address mismatch.

03

H

02

H

REHABQ.LD_BLOCK_S

TD_NOTREADY

Loads blocked due to 

store data not ready.

This event counts the cases where a forward was technically 

possible, but did not occur because the store data was not 

available at the right time.

03

H

04

H

REHABQ.ST_SPLITS

Store uops that split 

cache line boundary.

This event counts the number of retire stores that experienced 

cache line boundary splits.

03

H

08

H

REHABQ.LD_SPLITS

Load uops that split 

cache line boundary.

This event counts the number of retire loads that experienced 

cache line boundary splits.

03

H

10

H

REHABQ.LOCK

Uops  with  lock 

semantics.

This event counts the number of retired memory operations 

with lock semantics. These are either implicit locked instructions 

such as the XCHG instruction or instructions with an explicit 

LOCK prefix (F0H).

03

H

20

H

REHABQ.STA_FULL

Store address buffer 

full.

This event counts the number of retired stores that are delayed 

because there is not a store address buffer available.

Table 19-24.  Non-Architectural Performance Events for the Goldmont Microarchitecture (Contd.)

Event

Num.

Umask

Value

Event Name

Description

Comment