User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 96
UG585 (v1.11) September 27, 2016
Chapter 3: Application Processing Unit
For a miss, if the cache line is evicted (AWUSERS[8] is 1), the cache line is allocated and its dirty
status depends on if it is evicted dirty or not. If the cache line is evicted dirty (AWUSERS[8] is 0),
the cache line is allocated only if it is write allocate.
3.4.3 Cache Replacement Strategy
Bit [25] of the Auxiliary Control register configures the replacement strategy. It can be either
round-robin or pseudo-random. The round-robin replacement strategy fills invalid and unlocked
ways first; for each line, when ways are all valid or locked, the victim is chosen as the next unlocked
way. The pseudo-random replacement strategy fills invalid and unlocked ways first; for each line,
when ways are all valid or locked, the victim is chosen randomly between unlocked ways.
When a deterministic replacement strategy is required, the lockdown registers are used to prevent
ways from being allocated. For example, since L2 cache is 512 KB and is 8-way set-associative, each
way is 64 KB. If a piece of code is required to reside in two ways (128 KB), with a deterministic
replacement strategy, ways 1-7 must be locked before the code is filled into the L2 cache. If the first
64 KB of code is allocated into way 0 only, then way 0 must be locked and way 1 unlocked so that the
second half of the code can be allocated in way 1.
There are two lockdown registers, one for data and one for instructions. If required, one can separate
data and instructions into separate ways of the L2 cache.
3.4.4 Cache Lockdown
The L2 cache controller allows locking down entries by line, by way, or by master (includes both CPU
and ACP masters.) Lockdown by line and lockdown by way can be used at the same time; lockdown
by line and lockdown by master can also be used at the same time. However, lockdown by master
and lockdown by way are exclusive, because lockdown by way is a subset of lockdown by master.
Lockdown by Line
When enabled, all newly allocated cache lines get marked as locked. The controller then considers
them as locked and does not naturally evict them. It is enabled by setting bit [0] of the lockdown by
the line enable register. Bit [21] of the tag RAM shows the locked status of each cache line.
TIP: An example of when the lockdown by line feature might be enabled is during the time when a
critical piece of software code is loaded into the L2 cache.
The unlock all lines background operation enables the unlocking of all lines marked as locked by the
lockdown by line mechanism. The status of this operation can be checked by reading the unlock all
lines register. While an unlock all lines operation is in progress, you cannot launch a background
cache maintenance operation. If attempted, a SLVERR error is returned.
Lockdown by Way
The L2 cache is 8-way set-associative and allows users to lock the replacement algorithm on a way
basis, enabling the set count to be reduced from 8-way all the way down to direct mapped. The