Memory Sequencer - Lucent Technologies DSP1617 Information Manual

Digital signal processor
Table of Contents

Advertisement

DSP1611/17/18/27/28/29 DIGITAL SIGNAL PROCESSOR
External Memory Interface

6.6 Memory Sequencer

The DSP1611/17/18/27/28/29 pin-multiplexes the external ROM and RAM buses. Because some instructions
simultaneously access external ROM and RAM, a memory sequencer has been provided to eliminate any colli-
sions that might otherwise occur. Upon receiving the instruction, the sequencer will perform the X access first and
then the Y access transparently to the programmer. For example, let two instructions be executed: the first reads a
coefficient from EROM and writes data to ERAM; the second reads a coefficient from EROM and reads data from
ERAM. The sequencer carries out the following steps at the external memory interface: read EROM, write ERAM,
read EROM, and read ERAM. Each step is done in sequential one-instruction cycle steps assuming zero wait-
states are programmed. Note that the number of instruction cycles taken by the two instructions is four. In this
case, the write hold time is zero. If there are programmed wait-states for either the X access external memory seg-
ment or the Y access external memory segment, they must be added to the instruction time. The following formula
can be used to calculate the instruction cycles.
Instruction cycles = number of cycles (normal operation) + X
where: X
= X programmed wait-states (mwait register)
WS
Y
= Y programmed wait-states (mwait register)
WS
The sample code segment illustrates the problem.
rsect ".erom"
auc=0
a0=0
r0=data
loop: *r0++=a0
a0h=a0h+1
a0h–0xa
if ne goto loop
end:
goto end
.rsect".eram"
data: 10*int
The instruction at the label "loop" performs an access (write) to external RAM while the instruction itself is fetched
from external ROM.
If the extra cycles associated with the memory sequencer are not tolerated, there are two recommendations:
1. Place all read/write data (or all program and fixed data) in internal DPRAM, or
2. Use cache loops to perform the dual access.
The first simply suggests avoiding a dual access to external memory altogether. The second requires some expla-
nation. If instructions are executed in a cache loop as in the example that follows, the first pass through the loop
loads the cache memory and the instructions are executed as if they were out-of-cache. Every iteration thereafter
executes from within the cache. The first pass through the loop, however, uses the memory sequencer to fetch the
instruction and then performs the ERAM access. Actually, after the instructions are loaded into cache, dual access
disappears and the instruction fetch along with the additional cycles associated with the memory sequencer are
avoided during the second through N iterations.
Note: The reader is reminded that cache loops are noninterruptible.
6-26
+ Y
+ 1
WS
WS
// r0 points to external RAM
// external RAM access
DRAFT COPY
Information Manual
April 1998
Lucent Technologies Inc.

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

Dsp1629Dsp1618Dsp1611Dsp1627Dsp1628

Table of Contents