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 68
UG585 (v1.11) September 27, 2016
Chapter 3: Application Processing Unit
• Each cache can be disabled independently, using the system control coprocessor. Refer to the
System Control Register in the ARM Cortex-A9 Technical Reference Manual.
• The cache line lengths for both L1 caches are 32 bytes.
• Both caches are 4-way set-associative.
• L1 caches support 4 KB, 64 KB, 1 MB, and 16 MB virtual memory page.
• Neither of the two L1 caches supports the lock-down feature.
• The L1 caches have 64-bit interfaces to the integer core and AXI master ports.
• Cache replacement policy is either pseudo round-robin or pseudo-random. The victim counter
is read at time of miss, not allocation, and it is incremented on allocation. An invalid line in the
set is replaced in preference to using the victim counter.
• On a cache miss, critical word first filling of the cache is performed.
• To reduce power consumption, the number of full cache reads is reduced by taking advantage of
the sequential nature of many cache operations. If a cache read is sequential to the previous
cache read, and the read is within the same cache line, only the data RAM set that was
previously read is accessed.
• Both L1 caches support parity.
• All memory attributes are exported to external memory systems.
• Support for TrustZone security exports the secure or non-secure status to the caches and
memory system.
• Upon a CPU reset, the contents of both L1 caches are cleared to comply with security
requirements.
Note: You must invalidate the instruction cache, the data cache, and BTAC before using them. It is
not required to invalidate the main TLB, even though it is recommended for safety reasons. This
ensures compatibility with future revisions of the processor.
The L1 instruction-side cache (I-Cache) is responsible for providing an instruction stream to the
Cortex-A9 processor. The L1 I-Cache interfaces directly to the pre-fetch unit which contains a
two-level prediction mechanism as described in the Branch Prediction section of this chapter. The L1
instruction cache is virtually indexed and physically tagged.
The L1 data-side cache (D-Cache) is responsible for holding the data used by the Cortex-A9
processor. Key features of the L1 D-Cache include:
• Data cache is physically indexed and physically tagged.
• D-Cache is non-blocking and, therefore, load/store instructions can continue to hit the cache
while it is performing allocations from external memory due to prior read/write misses. The data
cache supports four outstanding reads and four outstanding writes.
• The CPU can support up to four outstanding preload (PLD) instructions. However, explicit
load/store instructions have higher priority.
• The Cortex-A9 load/store unit supports speculative data pre-fetching which monitors sequential
accesses made by program and starts fetching the next expected line before it has been
requested. This feature is enabled in the cp15 Auxiliary Control register (DP bit). The
pre-fetched lines can be dropped before allocation, and PLD instruction has higher priority.
• The data cache supports two 32-byte line-fill buffers and one 32-byte eviction buffer.
• The Cortex-A9 CPU has a store buffer with four 64-bit slots with data merging capability.










