User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 100
UG585 (v1.11) September 27, 2016
Chapter 3: Application Processing Unit
No additional programming of the L2 Controller is required. Application of the pre-fetch hints to the
OCM memory space does not cause any action because, unlike caches, transfer of data into OCM
RAM requires explicit operations by software.
Full Line of Zero Write
When this feature is enabled, the Cortex-A9 processor can write entire non-coherent cache lines of
zeroes to the L2 cache, using a single write command cycle. This provides a performance
improvement as well as some power savings. The Cortex-A9 processor is likely to use this feature
when a CPU is executing a memset routine to initialize a particular memory area.
This feature is disabled by default and can be enabled by setting the “Full Line of Zero” enable bit of
the auxiliary control register for the L2 controller and the enable bit in the Cortex-A9 ACTLR register.
Care must be taken if this feature is enabled because correct behavior relies on consistent enabling
in both the Cortex-A9 processor and the controller.
To enable this feature, the following steps must be performed:
1. Enable the full line of zero feature in the L2 controller.
2. Enable the L2 cache controller.
3. Enable the full line of zero feature in the Cortex-A9.
The cache controller does not support strongly ordered write accesses with this feature. The feature
is also supported by the OCM if it is enabled in the Cortex-A9
Speculative Reads of the Cortex-A9
This is a feature unique to the Cortex-A9 MP configuration and can be enabled using a dedicated
software control bit in the SCU Control register. For this feature, the Cortex-A9 has to be in the SMP
mode through the use of the SMP bit in the ACTLR register; however, the L2 controller does not
require any specific settings. When the speculative read feature is enabled, on coherent line fills, the
SCU speculatively issues read transactions to the controller in parallel with its tag lookup. The
controller does not return data on these speculative reads and only prepares data in its line read
buffers.
If the SCU misses, it issues a confirmation line fill to the controller. The confirmation is merged with
the previous speculative read in the controller and enables the controller to return data to the L1
cache sooner than a L2 cache hit. If the SCU hits, the speculative read is naturally terminated in the
L2 controller, either after a certain number of cycles, or when a resource conflict exists. The L2
controller informs the SCU when a speculative read ends, either by confirmation or termination.
3.4.9 Pre-fetching Operation
The pre-fetch operation is the capability of attempting to fetch cache lines from memory in advance,
to improve system performance. To enable the pre-fetch feature, you set bit 29 or 28 of the auxiliary
or pre-fetch control register. When enabled, if the slave port from the SCU receives a cacheable read
transaction, a cache lookup is performed on the subsequent cache line. Bits [4:0] of the pre-fetch
control register provide the address of the subsequent cache line. If a miss occurs, the cache line is
fetched from external memory, and allocated to the L2 cache.