Coherency - Xilinx MicroBlaze Reference Manual

32-bit soft processor
Hide thumbs Also See for MicroBlaze:
Table of Contents

Advertisement

Coherency

MicroBlaze supports cache coherency, as well as invalidation of caches and translation look-
aside buffers, using the AXI Coherency Extension (ACE) defined in AMBA® AXI and ACE
Protocol Specification
parameter
C_INTERCONNECT
Using ACE ensures coherency between the caches of all MicroBlaze processors in the
coherency domain. The peripheral ports (AXI_IP, AXI_DP) and local memory (ILMB, DLMB)
are outside the coherency domain.
Coherency is not supported with write-back data cache, wide cache interfaces (more than
32-bit data), instruction cache streams, instruction cache victims or when area optimization
is enabled. In addition both
set to 1.
Invalidation
The coherency hardware handles invalidation in the following cases:
Data Cache invalidation:
When a MicroBlaze core in the coherency domain invalidates a data cache line with an
external cache invalidation instruction (WDC.EXT.CLEAR or WDC.EXT.FLUSH), hardware
messages ensure that all other cores in the coherency domain will do the same. The
physical address is always used.
Instruction Cache invalidation:
When a MicroBlaze core in the coherency domain invalidates an instruction cache line,
hardware messages ensure that all other cores in the coherency domain will do the
same. When the MMU is in virtual mode the virtual address is used, otherwise the
physical address is used.
MMU TLB invalidation:
When a MicroBlaze core in the coherency domain invalidates an entry in the UTLB (i.e.
writes TLBHI with a zero Valid flag), hardware messages ensure that all other cores in
the coherency domain will invalidate all entries in their unified TLBs having a TAG
matching the invalidated virtual address, as well as empty their shadow TLBs.
The TID is not taken into account when matching the entries, which can result in
invalidation of entries belonging to other processes. Subsequent accesses to these
entries will generate TLB miss exceptions, which must be handled by software.
Before invalidating an MMU page, it must first be loaded into the UTLB to ensure that
the hardware invalidation is propagated within the coherency domain. It is not sufficient
to simply invalidate the page in memory, since other processors in the coherency
domain may have this particular entry stored in their TLBs.
MicroBlaze Processor Reference Guide
UG984 (v2016.2) June 8, 2016
UG984 (v2016.1) April 6, 2016
(ARM IHI
0022E). The coherency support is enabled when the
is set to 3 (ACE).
C_ICACHE_ALWAYS_USED
www.xilinx.com
Chapter 2: MicroBlaze Architecture
and
C_DCACHE_ALWAYS_USED
Send Feedback
must be
117

Advertisement

Table of Contents
loading

Table of Contents