| |||
Home > Functional Description > Performance Monitoring Unit > PMU event list |
In the context of counting in one of the event counters, each
event has an 8-bit identifier, made up as {source,number}
.
Each source is allocated a 3-bit code that indicates the interface
that generated it. Table 2.1 shows
the 3-bit source code for events.
Table 2.1. 3-bit source code for events
Code[7:5] | Source |
---|---|
| Slave interface 0, S0 |
| Slave interface 1, S1 |
| Slave interface 2, S2 |
| Slave interface 3, S3 |
| Slave interface 4, S4 |
| Master interface 0, M0 |
| Master interface 1, M1 |
| Master interface 2, M2 |
Table 2.2 shows each event, with its number and bit offset in the EVNTBUS output.
By default, only events relating to Non-secure transactions are recorded. However, if the SPNIDEN input is HIGH, then both Secure and Non-secure events are counted and exported.
Master interface events 0x2
and 0x09
-0x10
have
no security indicator, so they are counted irrespective of the SPNIDEN input.
Table 2.2 and Table 2.3 show the 5-bit event code event list.
Table 2.2. 5-bit event codes, sources: slave interfaces S0-S4
Event | Number code[4:0] | EVNTBUS offset |
---|---|---|
Read request handshake: any. |
| 0 |
Read request handshake: device transaction. |
| 1 |
Read request handshake: normal, non-shareable or system-shareable, but not barrier or cache maintenance operation. |
| 2 |
Read request handshake: inner- or outer-shareable, but not barrier, DVM message or cache maintenance operation. |
| 3 |
Read request handshake: cache maintenance operation. |
| 4 |
Read request handshake: memory barrier. |
| 5 |
Read request handshake: synchronization barrier. |
| 6 |
Read request handshake: DVM message, not synchronization. |
| 7 |
Read request handshake: DVM message, synchronization. |
| 8 |
Read request stall cycle because the
transaction tracker is full. Increase |
| 9 |
Read data last handshake: data returned from the snoop instead of from downstream. |
| 10 |
Read data stall cycle: RVALIDS is HIGH, RREADYS is LOW. |
| 11 |
Write request handshake: any. |
| 12 |
Write request handshake: device transaction. |
| 13 |
Write request handshake: normal, non-shareable, or system-shareable, but not barrier. |
| 14 |
Write request handshake: inner- or outer-shareable, |
| 15 |
Write request handshake: |
| 16 |
Write request handshake: |
| 17 |
Write request handshake: |
| 18 |
Write request stall cycle because the
transaction tracker is full. Increase |
| 19 |
Read request stall cycle because of a slave interface ID hazard. |
| 20 |
Table 2.3 shows the 5-bit event code event list.
Table 2.3. 5-bit event codes, sources: master interfaces M0-M2
Event | Number code[4:0] | EVNTBUS offset |
---|---|---|
RETRY of speculative fetch transaction.[a] |
| 0 |
Stall cycle because of an address hazard. A read or write invalidation is stalled because of an outstanding transaction to an overlapping address. |
| 1 |
Read request stall cycle because of a master interface ID hazard. |
| 2 |
A read request with a QoS value in the
high priority group is stalled for a cycle because the read transaction
queue is full. Increase |
| 3 |
Read request stall cycle because of a barrier hazard. |
| 4 |
Write request stall cycle because of a barrier hazard. |
| 5 |
A write request is stalled for a cycle
because the write transaction tracker is full. Increase |
| 6 |
A read request with a QoS value in the low priority group is stalled for a cycle because there are no slots available in the read queue for the low priority group. |
| 7 |
A read request with a QoS value in the medium priority group is stalled for a cycle because there are no slots available in the read queue for the medium priority group. |
| 8 |
A read request is stalled for a cycle while it was waiting for a QVN token on VN0. |
| 9 |
A read request is stalled for a cycle while it was waiting for a QVN token on VN1. |
| 10 |
A read request is stalled for a cycle while it was waiting for a QVN token on VN2. |
| 11 |
A read request is stalled for a cycle while it was waiting for a QVN token on VN3. |
| 12 |
A write request is stalled for a cycle while it was waiting for a QVN token on VN0. |
| 13 |
A write request is stalled for a cycle while it was waiting for a QVN token on VN1. |
| 14 |
A write request is stalled for a cycle while it was waiting for a QVN token on VN2. |
| 15 |
A write request is stalled for a cycle while it was waiting for a QVN token on VN3. |
| 16 |
A |
| 17 |
[a] This event fires when retries are scheduled. If two retries are scheduled simultaneously, only one event is generated. |
The CCI-400 exports a vector of event signals, EVNTBUS, with the bit allocation that Table 2.4 shows. When an event is triggered, the relevant bit of EVNTBUS is set to HIGH for one clock period.
Table 2.4. EVNTBUS bit allocation
Bits | Source |
---|---|
[158:141] | AMI2 event bus. |
[140:123] | AMI1 event bus. |
[122:105] | AMI0 event bus. |
[104:84] | ASI4 event bus. |
[83:63] | ASI3 event bus. |
[62:42] | ASI2 event bus. |
[41:21] | ASI1 event bus. |
[20:0] | ASI0 event bus. |
Table 2.2 shows the bit positions that the ASI events have within each group of signals on the event bus.
The width and bit positions in the EVNTBUS output are invariant with the number of CCI-400 interfaces used.