beautypg.com

Dmc: dynamic memory controller, Dmc operation, Initialization sequence – Rainbow Electronics AT75C310 User Manual

Page 24: Data alignment

background image

AT75C310

24

DMC: Dynamic Memory Controller

The ARM can access external DRAM by means of the
DRAM memory controller. The DMC sits on the ASB bus
and provides a glueless memory interface to external EDO
DRAM using the common address and data buses.

The AT75C310 supports two DRAM memory regions, each
with its own RAS signal. Both DRAM regions share the
same CAS, OE, WE, address and data signals.

The DRAM controller is programmed as an internal periph-
eral that has a standard APB bus interface and a set of
memory-mapped registers.

The DMC is designed to operate with extended data-out
(EDO) DRAM. It supports two 16-MByte address spaces
and a programmable 16- or 32-bit data bus. The controller
multiplexes the processor address to form DRAM row and
column addresses. The row and column addresses can be
configured to support various combinations of DRAM mem-
ory size, page size and data bus width.

The DMC supports:

One or two DRAM memory regions

DRAM memory region size of 2, 4, 8 or 16 megabytes

DRAM page size of 256, 512, 1024 or 2048 columns

Up to 15 row- and 11 column-address bits

Asymmetric row and column addressing

16- or 32-bit DRAM data bus

Automatic page breaking of burst accesses

Automatic CAS-before-RAS refresh on timer trigger

Automatic power-up initialization sequence

DMC Operation
The DMC multiplexes the ASB address to DRAM row and
column addresses. The column address must be between
eight and eleven bits. The row address is the required num-
ber of higher-order bits to support all combinations of per-
mitted page- and memory-region sizes and both data bus
widths.

The DMC automatically inserts precharge and RAS cycles
and supplies an updated row address to the DRAM when a
sequential burst access from an ASB bus master crosses a

DRAM page boundary. The necessary number of wait
states is inserted to hold the bus master during the pre-
charge and RAS cycles.

The DMC performs a CAS-before-RAS refresh cycle on
both DRAM memory regions on the rising edge of a trigger
signal from the AT75C310 on-chip timer. If the DMC is per-
forming a DRAM access when the trigger occurs, the
access will finish before the refresh operation is performed.
In the case of a burst access, the refresh is not performed
until the end of the burst.

The DMC is capable of limiting the length of a burst access
if a refresh trigger has been received. If the feature is
enabled, the DMC performs the refresh operation once it
has been pending for 32 accesses in a burst sequence.

The DMC includes the functionality to interface the 32-bit
ASB data bus with a 16-bit DRAM data bus. It automatically
performs two accesses to the DRAM to service a 32-bit
access from the ASB.

Initialization Sequence
The DMC performs eight CAS-before-RAS refresh opera-
tions to both DRAM banks at the end of the AT75C310
reset pulse. The processor is not required to perform any
DRAM initialization operations. However, it is required to
initialize the DMC.

Data Alignment
The DMC only supports accesses to the appropriate data
boundary, i.e., word accesses must be word-aligned and
half-word accesses must be half-word-aligned. Misaligned
accesses will be ignored by the DMC, and the AMBA
decoder will therefore flag an abort to the appropriate ASB
bus master.

The ARM processor does not guarantee the level of the
bottom two address bits for an instruction access in ARM
state or the bottom address bit for an instruction fetch in
Thumb state. Therefore, the DMC will service misaligned
instruction fetches and force alignment, e.g., a 16-bit
instruction fetch from address 0x00000003 is performed as
a 16-bit read of address 0x00000002.

Table 9. DMC Register Map

Register Offset

Register Description

Register Name

Access

0x0

DRAM Region 0 Configuration Register

DMC_MR0

Read/write

0x4

DRAM Region 1 Configuration Register

DMC_MR1

Read/write

0x8

DRAM Common Configuration Register

DMC_CR

Read/write