Intel® Xeon® Processor E5-2600 Product Family Uncore Performance Monitoring
74
Reference Number: 327043-001
U
2.6.3.2
PCU PMON state - Counter/Control Pairs
The following table defines the layout of the PCU performance monitor control registers. The main
task of these configuration registers is to select the event to be monitored by their respective data
counter (.
ev_sel
, .
umask
). Additional control bits are provided to shape the incoming events (e.g.
.
invert
, .
edge_det
, .
thresh
) as well as provide additional functionality for monitoring software (.
rst
).
Due to the fact that much of the PCU’s functionality is provided by an embedded microcontroller,
many of the available events are generated by the microcontroller and handed off to the hardware for
capture by the PMON registers. Among the events generated by the microcontroller are occupancy
events allowing a user to measure the number of cores in a given C-state per-cycle. Given this
unique situation, extra control bits are provided to filter the ouput of the these special occupancy
events.
- .
occ_invert
- Changes the .
thresh
test condition to ‘<‘ for the occupancy events (when .ev_sel[7] is
set to 1)
- .
occ_edge_det
- Rather than accumulating the raw count each cycle (for events that can increment
by 1 per cycle), the register can capture transitions from no event to an event incoming for the PCU’s
occupancy events (when .ev_sel[7] is set to 1).
Table 2-75. PCU_MSR_PMON_CTL{3-0} Register – Field Definitions (Sheet 1 of 2)
Field
Bits
Attr
HW
Reset
Val
Description
occ_edge_det
31
RW-V
0 Enables edge detect for occupancy events (.ev_sel[7] is 1)
When set to 1, rather than measuring the event in each cycle it
is active, the corresponding counter will increment when a 0 to 1
transition (i.e. rising edge) is detected.
When 0, the counter will increment in each cycle that the event
is asserted.
NOTE: .edge_det is in series following .thresh, Due to this, the
.thresh field must be set to a non-0 value. For events that
increment by no more than 1 per cycle, set .thresh to 0x1.
occ_invert
30
RW-V
0 Invert comparison against Threshold for the PCU Occupancy
events (.ev_sel[7] is 1)
0 - comparison will be ‘is event increment >= threshold?’.
1 - comparison is inverted - ‘is event increment < threshold?’
NOTE: .invert is in series following .thresh, Due to this, the
.thresh field must be set to a non-0 value. For events that
increment by no more than 1 per cycle, set .thresh to 0x1.
Also, if .edge_det is set to 1, the counter will increment when a 1
to 0 transition (i.e. falling edge) is detected.
rsv
29
RV
0 Reserved. SW must write to 0 for proper operation.
thresh
28:24
RW-V
0 Threshold used in counter comparison.