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

Table Of Contents
Vol. 3 18-115
DEBUGGING AND PERFORMANCE MONITORING
Certain kinds of μops that cannot be tagged, including I/O, uncacheable and locked
accesses, returns, and far transfers.
Table A-10 lists the performance monitoring events that support at-retirement
counting: specifically the Front_end_event, Execution_event, Replay_event,
Inst_retired and Uops_retired events. The following sections describe the tagging
mechanisms for using these events to tag μop and count tagged μops.
18.18.7.2 Tagging Mechanism for Front_end_event
The Front_end_event counts μops that have been tagged as encountering any of the
following events:
μop decode events — Tagging μops for μop decode events requires specifying
bits in the ESCR associated with the performance-monitoring event, Uop_type.
Trace cache events — Tagging μops for trace cache events may require
specifying certain bits in the MSR_TC_PRECISE_EVENT MSR (see Table A-12).
Table A-10 describes the Front_end_event and Table A-12 describes metrics that are
used to set up a Front_end_event count.
The MSRs specified in the Table A-10 that are supported by the front-end tagging
mechanism must be set and one or both of the NBOGUS and BOGUS bits in the
Front_end_event event mask must be set to count events. None of the events
currently supported requires the use of the MSR_TC_PRECISE_EVENT MSR.
18.18.7.3 Tagging Mechanism For Execution_event
Table A-10 describes the Execution_event and Table A-13 describes metrics that are
used to set up an Execution_event count.
The execution tagging mechanism differs from other tagging mechanisms in how it
causes tagging. One upstream ESCR is used to specify an event to detect and to
specify a tag value (bits 5 through 8) to identify that event. A second downstream
ESCR is used to detect μops that have been tagged with that tag value identifier using
Execution_event for the event selection.
The upstream ESCR that counts the event must have its tag enable flag (bit 4) set
and must have an appropriate tag value mask entered in its tag value field. The 4-bit
tag value mask specifies which of tag bits should be set for a particular μop. The
value selected for the tag value should coincide with the event mask selected in the
downstream ESCR. For example, if a tag value of 1 is set, then the event mask of
NBOGUS0 should be enabled, correspondingly in the downstream ESCR. The down-
stream ESCR detects and counts tagged μops. The normal (not tag value) mask bits
in the downstream ESCR specify which tag bits to count. If any one of the tag bits
selected by the mask is set, the related counter is incremented by one. This mecha-
nism is summarized in the Table A-13 metrics that are supported by the execution
tagging mechanism. The tag enable and tag value bits are irrelevant for the down-
stream ESCR used to select the Execution_event.