- •Contents
- •List of Tables
- •List of Figures
- •Preface
- •About this document
- •Feedback
- •Introduction
- •1.1 About the ARM PrimeCell MultiPort Memory Controller (PL172)
- •1.2 Supported dynamic memory devices
- •1.3 Supported static memory devices
- •Functional Overview
- •2.1 PrimeCell MPMC functional description
- •2.2 Overview of a PrimeCell MPMC, ASIC, or ASSP system
- •2.3 Low power operation
- •2.4 Lock and semaphores
- •2.5 Arbitration
- •2.6 Memory bank select
- •2.7 Memory map
- •Programmer’s Model
- •3.1 About the programmer’s model
- •3.2 Register descriptions
- •Programmer’s Model for Test
- •4.1 PrimeCell MPMC test harness overview
- •4.2 Scan testing
- •4.3 Test registers
- •Static Memory Controller
- •5.1 Static memory device selection
- •5.2 Write-protection
- •5.3 Extended wait transfers
- •5.4 Memory mapped peripherals
- •5.5 Static memory initialization
- •5.6 Byte lane control
- •5.7 Byte lane control and databus steering for little and big-endian configurations
- •Dynamic Memory Controller
- •6.1 Write-protection
- •6.2 Access sequencing and memory width
- •6.3 Address mapping
- •6.4 Dynamic memory controller command descriptions
- •6.5 Generic SDRAM initialization example
- •6.6 Micron MT48LC4M16A2 SDRAM initialization example
- •6.8 Micron MT28F4M16S2 SyncFlash initialization example
- •6.9 Micron SyncFlash commands
- •Common Memory Transactions
- •7.1 Static and dynamic memory transaction latency
- •Test Interface Controller
- •8.1 About TIC
- •8.2 Sequence of events leading to entry into TIC test mode
- •System Connectivity
- •9.2 Self-refresh entry
- •9.3 Example system
- •Off-chip Connectivity
- •10.2 Pin count reduction by reducing databus width
- •10.3 Pin count reduction by removing functionality
- •10.4 Address pin reduction
- •10.5 Chip select pin reduction
- •10.6 Device support
- •10.7 Multiplexing static and dynamic memory pins
- •10.8 Reducing pin count by multiplexing MPMC pins
- •10.9 About MPMC timing
- •10.10 On-chip timing path
- •10.11 Off-chip timing path
- •10.12 Clock strategy
- •10.13 Clock ratios
- •10.14 Memory clock and fed-back clock strategy
- •Pad Interface Timing
- •A.1 Overview
- •A.2 Signal delay
- •A.3 Method to reduce delay
- •A.4 Methods to reduce skew
- •A.5 Methods to minimize the effects of delay and skew
- •A.6 Example SDRAM memory timing diagram
- •A.7 SDRAM memory timing paths
- •Troubleshooting
- •B.1 Troubleshooting
- •C.1 AHB register signals
- •C.2 AHB memory signals
- •C.3 Miscellaneous and clock signals
- •C.4 Pad interface and control signals
- •C.5 Test Interface Controller (TIC) signals
- •C.6 Scan test signals
Chapter 2
Functional Overview
This chapter describes the major functional blocks of the ARM PrimeCell MultiPort Memory Controller (MPMC). It contains the following section:
•PrimeCell MPMC functional description on page 2-2.
ARM DDI 0215A |
Copyright © 2002 ARM Limited. All rights reserved. |
2-1 |
Functional Overview
2.1PrimeCell MPMC functional description
Figure 2-1 shows a block diagram of the PrimeCell MPMC.
MPMCBIGENDIAN
MPMCSREFREQ
MPMCSREFACK
MPMCSTATICCS0POL
MPMCSTATICCS1POL
MPMCSTATICCS2POL
MPMCSTATICCS3POL
MPMCSTATICCS1MWIN[1:0] 
HSELMPMCREG
HADDRREG[11:2]
HWDATAREG[31:0]
HRDATAREG[31:0]
MiscCntlREG
HSELMPMC0CS[7:0]
HADDR0[27:0]
HWDATA0[31:0]
HRDATA0[31:0]
MiscCntl0
HSELMPMC1CS[7:0]
HADDR1[27:0]
HWDATA1[31:0]
HRDATA1[31:0]
MiscCntl1
HSELMPMC2CS[7:0]
HADDR2[27:0]
HWDATA2[31:0]
HRDATA2[31:0]
MiscCntl2
HSELMPMC3CS[7:0]
HADDR3[27:0]
HWDATA3[31:0]
HRDATA3[31:0]
MiscCntl3
HBUSREQTIC
HGRANTTIC
HADDRTIC[31:0]
HWDATATIC[31:0]
HRDATATIC[31:0]
MiscCntlTIC
HCLK
MPMCCLK
Multiport memory controller
AHB slave |
|
|
register |
|
|
interface |
|
|
|
|
|
|
|
|
|
|
Memory |
AHB slave |
|
|
|
controller |
|
interface 0 |
|
|
|
|
|
|
|
|
|
|
|
AHB slave |
|
|
interface |
|
|
||
interface 1 |
|
|
|
|
|
Data |
PAD |
|
|
buffers |
|
|
|
|
|
|
|
|
|
AHB slave |
|
|
|
|
|
|
|
interface 2 |
|
|
|
|
|
|
|
|
|
Endianisation |
|
|
|
|
|
|
|
||
|
|
and packing |
|
AHB slave |
|
logic |
|
|
|
|
|
interface 3 |
|
|
|
|
|
|
|
Test interface controller
MPMCADDROUT[27:0]
MPMCDATAIN[31:0]
MPMCDATAOUT[31:0]
nMPMDYCSOUT[3:0]
MPMCCCLKOUT[3:0]
MPMCFBCLKIN[3:0]
MPMCCKEOUT[3:0]
nMPMCRASOUT
nMPMCCASOUT
nMPMCWEOUT
nMPMCOEOUT
nMPMCRPOUT
nMPMCRPVHHOUT
nMPMCSTCSOUT[3:0]
MPMCDQMOUT[3:0]
nMPMCBLSOUT[3:0]
nMPMCDATAIN[3:0]
MPMCRPVHHOUT
MPMCTESTREQA
MPMCTESTREQB
MPMCTESTIN
Figure 2-1 PrimeCell MPMC block diagram
2-2 |
Copyright © 2002 ARM Limited. All rights reserved. |
ARM DDI 0215A |
Functional Overview
The functions of the PrimeCell MPMC blocks are described in the following sections:
•Multiport memory controller
•AHB slave register interface on page 2-4
•AHB slave memory interfaces on page 2-5
•Data buffers on page 2-6
•Pad interface on page 2-6
•Test Interface Controller on page 2-8
•Overview of a PrimeCell MPMC, ASIC, or ASSP system on page 2-9
•AHB slave memory interface priority on page 2-6
•Low power operation on page 2-11
•Deep sleep mode on page 2-11
•Lock and semaphores on page 2-12
•Memory bank select on page 2-14.
2.1.1Multiport memory controller
The multiport memory controller block optimizes and controls external memory transactions.
The combined dynamic and static memory controller controls all static and dynamic memory accesses. The block contains the following:
Command sequencer
The command sequencer rearranges the memory accesses for maximum efficiency.
Memory transfer state machine
The memory transfer state machine controls the transfer currently being performed.
Static memory controller register banks
The four static memory controller register banks hold the static memory registers.
Dynamic memory controller register banks
The four dynamic memory controller register banks hold the dynamic memory registers.
Note
Data is transferred to and from synchronous memory in quad access bursts.
ARM DDI 0215A |
Copyright © 2002 ARM Limited. All rights reserved. |
2-3 |
Functional Overview
Command sequencer
The command sequencer holds up to two requests in its internal buffer. It prioritizes and rearranges accesses to maximize memory bandwidth and minimize transaction latency.
For example, if AHB interfaces 3 and 2 simultaneously request a data transfer from dynamic memory, to different memory banks, and the port 2 request address is to a closed page, but port 3 address is for an already open page, the following sequence occurs:
1.The ACT command is sent to open the SDRAM row specified by the AHB interface 2 address.
2.The AHB interface 3 access is completed.
3.The AHB interface 2 access is completed.
The access priority is modified to take into account the ease of getting data to complete each transfer, but the access priority is always biased to the highest priority AHB interface.
Memory transfer state machine
The memory transfer state machine controls memory transactions.
Static memory controller register bank
There are four static memory controller register banks. Each one contains the registers for a static memory bank.
Dynamic memory controller register bank
There are four dynamic memory controller register banks. Each one contains the registers for a dynamic memory bank.
2.1.2AHB slave register interface
The AHB slave register interface block enables the registers of the PrimeCell MPMC to be programmed. This module also contains most of the registers and performs the majority of the register address decoding.This interface must be connected to the ARM processor AHB bus to enable the PrimeCell MPMC to be programmed.
2-4 |
Copyright © 2002 ARM Limited. All rights reserved. |
ARM DDI 0215A |
Functional Overview
Memory transaction endianness
To eliminate the possibility of endianness problems, all data transfers to and from the registers of the PrimeCell MPMC must be 32 bits wide.
Memory transaction size
If an access is attempted with a size other than a word (32 bits), it causes an ERROR response on HRESP and the transfer is terminated.
2.1.3AHB slave memory interfaces
The AHB slave memory interfaces enable devices to access the external memories. The memory interfaces are prioritized, with interface 0 having the highest priority. Having more than one memory interface enables high-bandwidth peripherals direct access to the PrimeCell MPMC, without data having to pass over the main system bus.
Note
All AHB burst types are supported, enabling the most efficient use of memory bandwidth. The AHB interfaces do not generate SPLIT and RETRY responses.
Memory transaction endianess
The endianness of the data transfers to and from the external memories is determined by the Endian mode (N) bit in the MPMCConfig register.
Note
You must flush all data in the PrimeCell MPMC when switching between little-endian and big-endian mode. This is so that data residing in the buffers is transferred correctly.
Memory transaction size
Memory transactions can be 8, 16, or 32 bits wide. Any access attempted with a size greater than a word (32 bits) causes an ERROR response on HRESP and the transfer is terminated.
Protected memory transactions
Write transactions to write-protected memory areas generate an ERROR response on HRESP and the transfer is terminated. Memory is protected on a chip select basis.
ARM DDI 0215A |
Copyright © 2002 ARM Limited. All rights reserved. |
2-5 |
Functional Overview
2.1.4AHB slave memory interface priority
AHB interface 0 has the highest access priority, and AHB interface 3 has the lowest priority.
2.1.5Data buffers
The AHB interfaces use read and write buffers to improve memory bandwidth and reduce transaction latency. The PrimeCell MPMC contains four quadword buffers. The buffers are not tied to a particular AHB interface, and can be used as read buffers, write buffers, or a combination of both. The buffers are allocated automatically. Because of the way the buffers are designed they are always coherent for reads and writes, and across AHB memory interfaces.
The buffers are enabled on a memory bank basis, using the MPMCDynamicConfig or the MPMCStaticConfig registers.
Write buffers are used to:
•Merge multiple write transactions to the same quadword of memory into a single external quadword memory transaction.
•Buffer data until the PrimeCell MPMC can complete the write transaction.
•Convert all write transactions into quadword bursts on the external memory interface. This enhances transfer efficiency for SDRAM and async page-mode static memories.
•Reduce external memory traffic. This improves memory performance and reduces power consumption.
Read buffers are used to:
•Buffer read requests from memory. Future read requests that hit the buffer read the data from the buffer rather than memory, so reducing transaction latency.
•Convert all read transactions into quadword bursts on the external memory interface. This enhances transfer efficiency for SDRAM and async-page-mode static memories.
•Reduce external memory traffic. This improves memory performance and reduces power consumption.
2.1.6Pad interface
The pad interface block provides the interface to the pads. The pad interface uses a feedback clock, MPMCFBCLKIN, to resynchronize from the off-chip to on-chip domains.
Figure 2-2 on page 2-7 shows a block diagram of the pad interface.
2-6 |
Copyright © 2002 ARM Limited. All rights reserved. |
ARM DDI 0215A |
Functional Overview
|
|
|
|
nMPMCSTATICCSOUT[3:0] |
|
|
|
Pad interface |
MPMCBIGENDIAN |
|
|
|
|
|
|
|
|
|
MPMCSTCS1MW[1:0] |
|
|
|
|
MPMCSTCS[3:0]POL |
|
MPMCCLK |
|
Control |
MPMCCLKOUT[3:0] |
|
|
|
|
|
|
|
|
register |
|
block |
|
|
|
MPMCCKEOUT[3:0] |
|
|
|
nMPMCSYNCCSOUT[3:0] |
|
|
|
|
|
|
Control |
ControlOut |
Control |
|
nMPMCRASOUT |
|
|
|||
|
|
nMPMCCASOUT |
||
|
register |
|
||
|
|
|
||
|
|
|
nMPMCWEOUT |
|
|
|
|
|
|
|
|
|
|
nMPMCOEOUT |
|
|
|
|
MPMCDQMOUT[3:0] |
block |
|
|
|
nMPMCRP |
ADDR[27:0] |
|
|
MPMCADDROUT[27:0] |
|
Address |
Address |
|
||
|
|
|
||
|
register |
|
|
|
|
|
|
bus |
|
|
MPMCDATAOUT[31:0] |
|
DATA[31:0] |
Off-chip memory |
|
|
DataOut |
MPMCDATAOUT[31:0] |
|
|
|
register |
|
|
|
Data block |
DataIn[31:0] register |
nENABLE |
|
|
|
|
||
|
MPMCDATAIN[31:0] |
DATA[31:0] |
MPMCDATAIN[31:0] |
|
|
|
|
|
Figure 2-2 Pad interface block diagram
ARM DDI 0215A |
Copyright © 2002 ARM Limited. All rights reserved. |
2-7 |
Functional Overview
2.1.7Test Interface Controller
The Test Interface Controller (TIC) enables TIC device testing. For full details about the TIC, see the AMBA Specification. The AHB master interface must be placed on the same AHB interface as the ARM processor. Figure 2-3 shows a block diagram of the TIC.
On-chip AHB interface
HPROTTIC[3:0] |
|
|
|
|
|
HADDRTIC[31:0] |
|
|
MPMCDATAIN[31:0] |
||
HTRANSTIC[1:0] |
|
|
TBUSOUT[31:0] |
||
HWRITETIC |
|
|
|
|
|
HLOCKTIC |
|
|
|
|
|
HSIZETIC[2:0] |
Test Interface |
|
|
|
|
HBURSTTIC[2:0] |
|
|
|
|
|
Controller |
|
|
|
|
|
HWDATATIC[31:0] |
|
MPMCTESTACK |
|
||
(TIC) |
|
||||
HBUSREQTIC |
|
MPMCTESTREQA |
|||
|
|
||||
HGRANTTIC |
|
|
MPMCTESTREQB |
||
HREADYTIC |
|
|
MPMCTESTIN |
||
HRDATATIC[31:0] |
|
|
|
|
|
HRESPTIC[1:0] |
|
|
|
|
|
|
|
|
|
|
|
Test signals Internal memory control bus
Figure 2-3 TIC block diagram
2-8 |
Copyright © 2002 ARM Limited. All rights reserved. |
ARM DDI 0215A |
