
DSP1611/17/18/27/28/29 DIGITAL SIGNAL PROCESSOR
Information Manual
External Memory Interface
April 1998
6-26
DRAFT COPY
Lucent Technologies Inc.
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
WS
+ Y
WS
+ 1
where: X
WS
= X programmed wait-states (mwait register)
Y
WS
= Y programmed wait-states (mwait register)
The sample code segment illustrates the problem.
rsect ".erom"
auc=0
a0=0
r0=data
// r0 points to external RAM
loop: *r0++=a0
// external RAM access
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.
Содержание DSP1611
Страница 18: ...Chapter 1 Introduction...
Страница 27: ...Chapter 2 Hardware Architecture...
Страница 52: ...Chapter 3 Software Architecture...
Страница 116: ...Chapter 4 Instruction Set...
Страница 154: ...Chapter 5 Core Architecture...
Страница 176: ...Chapter 6 External Memory Interface...
Страница 208: ...Chapter 7 Serial I O...
Страница 237: ...Chapter 8 Parallel I O DSP1617 Only...
Страница 261: ...Chapter 9 Parallel Host Interface PHIF DSP1611 18 27 28 29 Only...
Страница 275: ...Chapter 10 Bit I O Unit...
Страница 284: ...Chapter 11 JTAG Test Access Port...
Страница 306: ...Chapter 12 Timer...
Страница 313: ...Chapter 13 Bit Manipulation Unit...
Страница 325: ...Chapter 14 Error Correction Coprocessor DSP1618 28 Only...
Страница 350: ...Chapter 15 Interface Guide...
Страница 367: ...Appendix A Instruction Encoding...
Страница 379: ...Appendix B Instruction Set Summary...
Страница 381: ...aD extractz aS IM16 B 52 aD insert aS arM B 53 aD insert aS IM16 B 54 aD aS aaT B 55...
Страница 437: ...Index...