An Ethernet communication system example is shown in the following figure. The
system consists of a MicroBlaze processor connected
point-to-point to two optimized ports of the System Cache core. A DMA controller is
connected to a generic port on the System Cache core through a 3:1 CCIX Component
Overview interconnect, because the DMA controller has three master ports. The DMA in
turn is connected to the Ethernet IP core using an AXI4-Stream
MicroBlaze processor peripheral data port
(M_AXI_DP
) for register configuration and control interface.
Standard peripheral functions such as a UART, timer, interrupt controller as well as the
DMA controller control port are connected to the MicroBlaze processor peripheral data port (M_AXI_DP
) for register configuration and control.
With this partitioning the bandwidth critical interfaces are connected directly to the System Cache core and kept completely separated from the AXI4-Lite based configuration and control connections. This system is used as an AXI-specific example throughout the documentation.
In this example, the MicroBlaze processor is configured for high performance while still being able to reach a high maximum frequency. The MicroBlaze processor frequency is mainly improved due to small cache sizes, implemented using distributed RAM.
The lower hit rate from small caches is mitigated by the higher system frequency and the use of the System Cache core. The decreased hit rate in the MicroBlaze processor caches is compensated by cache hits in the System Cache core, which incur less penalty than accesses to external memory.
Write-through data cache is enabled in the MicroBlaze processor which, in the majority of cases, gives higher performance than using write-back cache when MicroBlaze processor L1 caches are small. The reverse is usually true when there is no System Cache core, or when MicroBlaze processor L1 caches are large. Finally, victim cache is enabled for the MicroBlaze processor instruction cache, which improves the hit rate by storing the most recently discarded cache lines.
All AXI4 data widths on the System Cache core ports are matched to the AXI4 data widths of the connecting modules to avoid data width conversions, which minimizes the AXI4 interconnect area overhead. The AXI4 1:1 connections are only implemented as routing without any logic in this case. All AXI4 ports are clocked using the same clock, which means that there is no need for clock conversion within the AXI4 interconnects. Avoiding clock conversion gives minimal area and latency for the AXI4 interconnects. The parameter settings for the MicroBlaze processor and the System Cache core can be found in the following tables.
Parameter | Value |
---|---|
C_CACHE_BYTE_SIZE | 512 |
C_ICACHE_ALWAYS_USED | 1 |
C_ICACHE_LINE_LEN | 8 |
C_ICACHE_STREAMS | 0 |
C_ICACHE_VICTIMS | 8 |
C_DCACHE_BYTE_SIZE | 512 |
C_DCACHE_ALWAYS_USED | 1 |
C_DCACHE_LINE_LEN | 8 |
C_DCACHE_USE_WRITEBACK | 0 |
C_DCACHE_VICTIMS | 0 |
Parameter | Value |
---|---|
C_NUM_OPTIMIZED_PORTS | 2 |
C_NUM_GENERIC_PORTS | 1 |
C_NUM_WAYS | 4 |
C_CACHE_SIZE | 65536 |
C_M_AXI_DATA_WIDTH | 32 |