User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 93
UG585 (v1.11) September 27, 2016
Chapter 3: Application Processing Unit
Cache Response
This section describes the general behavior of the cache controller depending on the Cortex-A9
transactions. These are the descriptions for the different type of transactions:
In the ARM architecture, the inner attributes are used to control the behavior of the L1 caches and
write buffers. The outer attributes are exported to the L2 or an external memory system.
In the Cortex-A9 processing system (similar to most modern processors), to improve performance
and power, many optimizations are performed at many levels of the system which cannot be
completely hidden from the outside world and might cause the violation of the expected sequential
execution model. Examples of these optimizations are:
Multi-issue speculative and out-of-order execution.
Use of load/store merging to minimize the latency of load/stores.
In a multicore processor, hardware-based cache coherency management can cause cache lines
to migrate transparently between cores causing different cores to see updates to cached
memory locations in different orders.
External system characteristics might create additional challenges when external masters are
included in the coherent system through the ACP.
Therefore, it is vital to define certain rules to constrain the order in which the memory accesses of
one core relate to the surrounding instructions, or could be observed by other cores within a
multicore processor system. Typically the memory can be categorized into normal, strongly ordered,
and device regions. For more information, refer to section 3.2.4 Memory Ordering.
Table 3-5 shows the general behavior of the L2 cache controller in response to ARMv7 load/store
transaction types that are supported by Cortex-A9.
Bufferable The transaction can be delayed by the interconnect or any of its components for
an arbitrary number of cycles before reaching its final destination. This is usually
only relevant to writes.
Cacheable The transaction at the final destination does not have to present the
characteristics of the original transaction. For writes, this means that several
different writes can be merged together. For reads, this means that a location can
be pre-fetched or can be fetched just once for multiple read transactions. To
determine if a transaction should be cached, this attribute should be used in
conjunction with the read allocate and write allocate attributes.
Read Allocate If the transfer is a read and it misses in the cache, then it should be allocated.
This attribute is not valid if the transfer is not cacheable.
Write Allocate If the transfer is a write and it misses in the cache, then it should be allocated.
This attribute is not valid if the transfer is not cacheable.