SPRUHZ7K August 2015 – April 2024 AM5706 , AM5708 , AM5716 , AM5718 , AM5718-HIREL
The EMIF_PERFORMANCE_COUNTER_1 and EMIF_PERFORMANCE_COUNTER_2 registers are used to monitor or calculate the EMIF Controller bandwidth and efficiency. These counters are able to count events such as accesses made to EMIF, Activate (ACT) commands sent to SDRAM, read and write accesses made to EMIF, and other events. Each counter counts independently of the other. In addition to the ability of events counting, the counters can also filter the events from a particular master or address space. The events counting and filter enabling are configured using the EMIF_PERFORMANCE_COUNTER_CONFIG register. The filter value used is configured through the EMIF_PERFORMANCE_COUNTER_MASTER_REGION_SELECT register. Each counter can be configured independently.
Table 15-86 lists all the events that can be counted and whether a filter can be applied to a particular event. A filter is applied to an event if the following bits are set to 0x1 for that event:
CNTRn_CFG(1) | CNTRn_REGION_EN | CNTRn_MCONNID_EN | Description |
---|---|---|---|
0x0 | 0x0 | 0x0 or 0x1 | Count the accesses made to EMIF |
0x1 | 0x0 | 0x0 or 0x1 | Count the Activate (ACT) commands sent to SDRAM |
0x2 | 0x0 or 0x1 | 0x0 or 0x1 | Count the read accesses made to EMIF |
0x3 | 0x0 or 0x1 | 0x0 or 0x1 | Count the write accesses made to EMIF |
0x4 | 0x0 | 0x0 | Count number of EMIF_FICLK clock cycles during which the local Command FIFO is full |
0x5 | 0x0 | 0x0 | Count number of EMIF_FICLK clock cycles during which the local Write Data FIFO is full |
0x6 | 0x0 | 0x0 | Count number of EMIF_FICLK clock cycles during which the local Read Data FIFO is full |
0x7 | 0x0 | 0x0 | Count number of EMIF_FICLK clock cycles during which the local Return Command FIFO is full |
0x8 | 0x0 or 0x1 | 0x0 or 0x1 | Count number of priority elevations |
0x9 | 0x0 | 0x0 | Count number of EMIF_FICLK clock cycles that a command was pending |
0xA | 0x0 | 0x0 | Count number of EMIF_FICLK cycles used by the EMIF controller for reads and writes. |
0xB - 0xF | 0x0 | 0x0 | Reserved for future use. |
When the MReqDebug qualifier is set to 0x1 for a particular local command, the performance counters are not incremented for that particular command if the CNTRn_CFG values are equal to 0x0, 0x1, 0x2, 0x3, or 0xA.
The EMIF performance counters cannot distinguish between single access and burst access. In both cases they are incremented by 1. If the actual SDRAM bandwidth of an initiator has to be measured the EMIF performance counters may not be sufficient.