HP Caliper User's Guide
dspec Event Set
The dspec event set provides information on the effectiveness of data speculation.
Data speculation is the execution of a memory load prior to a store which preceded it
and which might potentially alias with it.
Data speculation occurs when the ordering of data accesses is changed by the optimizer.
The ability to alter the ordering of memory operations can greatly increase the degrees
of freedom when attempting to generate optimal code. It carries with it the unfortunate
side effect that the chosen order might generate traps as a result of data ordering issues.
The metrics provided by this event set give some insight into the amount and
effectiveness (success rate) of data speculation.
If you use this event set, the default is to make the measurements irrespective of CPU
operating state (that is, user, system, or interrupt states). By default, the idle state is
not included in the measurement. You can use command-line options to limit the scope
of the measurement. Specifically, you can:
• Limit measurement to a specific privilege level: -m
event_set[:all|user|kernel]
• Include idle: --exclude-idle False
• Exclude the interruption state: --measure-on-interrupts off
• Only measure the interruption state: --measure-on-interrupts only
The event per kinst (event per 1000 instructions) metrics are computed using all
instructions retired. This includes nops, predicated off instructions, failed speculation
and instructions and associated recovery code as well as the architecturally visible
instruction. You can eliminate idle loops effects by using the command-line option
--exclude-idle True (which is the default). The effects of failed speculative
operations and TLB misses cannot be directly eliminated, but you can get an estimate
of the impact of events from the cspec, dspec, and tlb event sets. You can use the
cpi event set to obtain the fraction of all instructions retired that have an architecturally
visible result, except for predicated off branches, which are counted as useful instructions
(non-taken branch) by the Itanium 2 PMU.
Metrics Available from this Measurement
The following metrics are available from this event set. These descriptions do not take
into account any command-line options you might use.
The metrics are:
• Cycles
This is the number of CPU cycles that occurred during the sampling interval.
• Total Instr Retired
This is the total number of instructions retired during the sampling interval. It
includes predicated off and nop instructions.
dspec Event Set 315