User manual
Table Of Contents
- Zynq-7000 All Programmable SoC
- Table of Contents
- Ch. 1: Introduction
- Ch. 2: Signals, Interfaces, and Pins
- Ch. 3: Application Processing Unit
- Ch. 4: System Addresses
- Ch. 5: Interconnect
- Ch. 6: Boot and Configuration
- Ch. 7: Interrupts
- Ch. 8: Timers
- Ch. 9: DMA Controller
- Introduction
- Functional Description
- DMA Transfers on the AXI Interconnect
- AXI Transaction Considerations
- DMA Manager
- Multi-channel Data FIFO (MFIFO)
- Memory-to-Memory Transfers
- PL Peripheral AXI Transactions
- PL Peripheral Request Interface
- PL Peripheral - Length Managed by PL Peripheral
- PL Peripheral - Length Managed by DMAC
- Events and Interrupts
- Aborts
- Security
- IP Configuration Options
- Programming Guide for DMA Controller
- Programming Guide for DMA Engine
- Programming Restrictions
- System Functions
- I/O Interface
- Ch. 10: DDR Memory Controller
- Introduction
- AXI Memory Port Interface (DDRI)
- DDR Core and Transaction Scheduler (DDRC)
- DDRC Arbitration
- Controller PHY (DDRP)
- Initialization and Calibration
- DDR Clock Initialization
- DDR IOB Impedance Calibration
- DDR IOB Configuration
- DDR Controller Register Programming
- DRAM Reset and Initialization
- DRAM Input Impedance (ODT) Calibration
- DRAM Output Impedance (RON) Calibration
- DRAM Training
- Write Data Eye Adjustment
- Alternatives to Automatic DRAM Training
- DRAM Write Latency Restriction
- Register Overview
- Error Correction Code (ECC)
- Programming Model
- Ch. 11: Static Memory Controller
- Ch. 12: Quad-SPI Flash Controller
- Ch. 13: SD/SDIO Controller
- Ch. 14: General Purpose I/O (GPIO)
- Ch. 15: USB Host, Device, and OTG Controller
- Introduction
- Functional Description
- Programming Overview and Reference
- Device Mode Control
- Device Endpoint Data Structures
- Device Endpoint Packet Operational Model
- Device Endpoint Descriptor Reference
- Programming Guide for Device Controller
- Programming Guide for Device Endpoint Data Structures
- Host Mode Data Structures
- EHCI Implementation
- Host Data Structures Reference
- Programming Guide for Host Controller
- OTG Description and Reference
- System Functions
- I/O Interfaces
- Ch. 16: Gigabit Ethernet Controller
- Ch. 17: SPI Controller
- Ch. 18: CAN Controller
- Ch. 19: UART Controller
- Ch. 20: I2C Controller
- Ch. 21: Programmable Logic Description
- Ch. 22: Programmable Logic Design Guide
- Ch. 23: Programmable Logic Test and Debug
- Ch. 24: Power Management
- Ch. 25: Clocks
- Ch. 26: Reset System
- Ch. 27: JTAG and DAP Subsystem
- Ch. 28: System Test and Debug
- Ch. 29: On-Chip Memory (OCM)
- Ch. 30: XADC Interface
- Ch. 31: PCI Express
- Ch. 32: Device Secure Boot
- Appx. A: Additional Resources
- Appx. B: Register Details
- Overview
- Acronyms
- Module Summary
- AXI_HP Interface (AFI) (axi_hp)
- CAN Controller (can)
- DDR Memory Controller (ddrc)
- CoreSight Cross Trigger Interface (cti)
- Performance Monitor Unit (cortexa9_pmu)
- CoreSight Program Trace Macrocell (ptm)
- Debug Access Port (dap)
- CoreSight Embedded Trace Buffer (etb)
- PL Fabric Trace Monitor (ftm)
- CoreSight Trace Funnel (funnel)
- CoreSight Intstrumentation Trace Macrocell (itm)
- CoreSight Trace Packet Output (tpiu)
- Device Configuration Interface (devcfg)
- DMA Controller (dmac)
- Gigabit Ethernet Controller (GEM)
- General Purpose I/O (gpio)
- Interconnect QoS (qos301)
- NIC301 Address Region Control (nic301_addr_region_ctrl_registers)
- I2C Controller (IIC)
- L2 Cache (L2Cpl310)
- Application Processing Unit (mpcore)
- On-Chip Memory (ocm)
- Quad-SPI Flash Controller (qspi)
- SD Controller (sdio)
- System Level Control Registers (slcr)
- Static Memory Controller (pl353)
- SPI Controller (SPI)
- System Watchdog Timer (swdt)
- Triple Timer Counter (ttc)
- UART Controller (UART)
- USB Controller (usb)

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.










