Memory Interface
ARM7TDMI Data Sheet
ARM DDI 0029E
6-13
O
6.9
The ARM Data Bus
To ease the connection of ARM7TDMI to sub-word sized memory systems, input data
and instructions may be latched on a byte by byte basis. This is achieved by use of the
BL[3:0]
input signals where
BL[3]
controls the latching of the data present on
D[31:24]
of the data bus and so on.
In a memory system containing word wide memory only,
BL[3:0]
may be tied HIGH.
For sub word wide memory systems,
BL[3:0]
are used to latch the data as it is read
out of memory. For example, a word access to halfword wide memory must take place
in two memory cycles. In the first cycle, the data for
D[15:0]
is obtained from the
memory and latched into the processor on the falling edge of
MCLK
when
BL[1:0]
are
both HIGH. In the second cycle, the data for
D[31:16]
is latched into the processor on
the falling edge of
MCLK
when
BL[3:2]
are both HIGH.
A memory access like this is shown in
·
Figure 6-8: Memory access
on page 6-14.
Here, a word access is performed from halfword wide memory in two cycles.In the first,
the data read is applied to the lower half of the bus, in the second cycle the read data
is applied to the upper half of the bus. Since two memory cycles were required,
nWAIT
is used to stretch the internal processor clock. However,
nWAIT
does not effect the
operation of the data latches. In this way, data may be extracted from memory word,
halfword or byte at a time, and the memory may have as many wait states as required.
In any multi-cycle memory access,
nWAIT
is held LOW until the final quantum of data
is latched.
In this example,
BL[3:0]
were driven to value 0x3 in the first cycle so that only the
latches on
D[15:0]
were opened. In fact,
BL[3:0]
could have been driven to value 0xF
and all the latches opened. Since in the second cycle, the latches on
D[31:16]
were
written with the correct data, this would not have effected the processor's operation.
Note
BL[3:0]
should all be HIGH during store cycles.