Memory Interface
ARM7TDMI Data Sheet
ARM DDI 0029E
6-12
O
6.6
Memory Management
The ARM7TDMI address bus may be processed by an address translation unit before
being presented to the memory, and ARM7TDMI is capable of running a virtual
memory system. The
ABORT
input to the processor may be used by the memory
manager to inform ARM7TDMI of page faults. Various other signals enable different
page protection levels to be supported:
1
nRW
can be used by the memory manager to protect pages from being
written to.
2
nTRANS
indicates whether the processor is in user or a privileged mode, and
may be used to protect system pages from the user, or to support completely
separate mappings for the system and the user.
Address translation will normally only be necessary on an N-cycle, and this fact may
be exploited to reduce power consumption in the memory manager and avoid the
translation delay at other times. The times when translation is necessary can be
deduced by keeping track of the cycle types that the processor uses.
6.7
Locked Operations
The ARM instruction set of ARM7TDMI includes a data swap (SWP) instruction that
allows the contents of a memory location to be swapped with the contents of a
processor register. This instruction is implemented as an uninterruptable pair of
accesses; the first access reads the contents of the memory, and the second writes
the register data to the memory. These accesses must be treated as a contiguous
operation by the memory controller to prevent another device from changing the
affected memory location before the swap is completed. ARM7TDMI drives the
LOCK
signal HIGH for the duration of the swap operation to warn the memory controller not
to give the memory to another device.
6.8
Stretching Access Times
All memory timing is defined by
MCLK
, and long access times can be accommodated
by stretching this clock. It is usual to stretch the LOW period of
MCLK
, as this allows
the memory manager to abort the operation if the access is eventually unsuccessful.
Either
MCLK
can be stretched before it is applied to ARM7TDMI, or the
nWAIT
input
can be used together with a free-running
MCLK
. Taking
nWAIT
LOW has the same
effect as stretching the LOW period of
MCLK
, and
nWAIT
must only change when
MCLK
is LOW.
ARM7TDMI does not contain any dynamic logic which relies upon regular clocking to
maintain its internal state. Therefore there is no limit upon the maximum period for
which
MCLK
may be stretched, or
nWAIT
held LOW.