Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
Vol. 3 A-207
PERFORMANCE-MONITORING EVENTS
12H Branches Number of taken and
not taken branches,
including: conditional
branches, jumps, calls,
returns, software
interrupts, and interrupt
returns
Also counted as taken branches are
serializing instructions, VERR and
VERW instructions, some segment
descriptor loads, hardware interrupts
(including FLUSH#), and
programmatic exceptions that invoke
a trap or fault handler. The pipe is
not necessarily flushed.
The number of branches actually
executed is measured, not the
number of predicted branches.
13H BTB_HITS Number of BTB hits that
occur
Hits are counted only for those
instructions that are actually
executed.
14H TAKEN_BRANCH_
OR_BTB_HIT
Number of taken
branches or BTB hits
that occur
This event type is a logical OR of
taken branches and BTB hits. It
represents an event that may cause
a hit in the BTB. Specifically, it is
either a candidate for a space in the
BTB or it is already in the BTB.
15H PIPELINE FLUSHES Number of pipeline
flushes that occur
Pipeline flushes are
caused by BTB misses
on taken branches,
mispredictions,
exceptions, interrupts,
and some segment
descriptor loads.
The counter will not be incremented
for serializing instructions (serializing
instructions cause the prefetch
queue to be flushed but will not
trigger the Pipeline Flushed event
counter) and software interrupts
(software interrupts do not flush the
pipeline).
Table A-19. Events That Can Be Counted with Pentium Processor
Performance-Monitoring Counters (Contd.)
Event
Num.
Mnemonic Event
Name Description Comments