Data Sheet
June 2001
DSP16410B Digital Signal Processor
48
Agere Systems—Proprietary
Use pursuant to Company instructions
Agere Systems Inc.
4 Hardware Architecture
(continued)
4.8 Interprocessor Communication
(continued)
4.8.3 DMAU Data Transfer
The most efficient mechanism for synchronously trans-
ferring large data blocks between the two cores is
through the two DMAU memory-to-memory (MMT)
channels, MMT4 and MMT5, described in detail in
Section 4.13.6 beginning on page 89
. For example,
one core uses one MMT channel to transfer data and
the other core uses the other channel. In this way, a
transmitting core writes a message block via its MMT
channel and an interrupt notifies the receiving core
after the DMA transfer is complete.
Table 14
summa-
rizes the MMT interrupts, DMINT4 and DMINT5, used
to synchronize DMAU transfers. Both cores can moni-
tor both DMINT4 and DMINT5.
Table 14. DMAU MMT Channel Interrupts
If an MMT channel is dedicated to intercore transfers
and not used for intracore transfers, the transmitting
and receiving cores can use the DMINT4 and DMINT5
interrupts directly to synchronize transfers. For exam-
ple, MMT4 can be dedicated to CORE0-to-CORE1
transfers and MMT5 can be dedicated to CORE1-to-
CORE0 transfers. In this case, DMINT4 interrupts
CORE1 if a message block from CORE0 is in memory,
and likewise, DMINT5 interrupts CORE0 if a message
block from CORE1 is in memory.
If an MMT channel is used for both intracore and inter-
core transfers, DMINT4 or DMINT5 is used for synchro-
nizing intracore transfers and the XIO interrupt is used
for synchronizing intercore transfers. Each core pro-
grams the XIO interrupt for the other core via its
imux
register (
Table 5 on page 28
). The XIOC[1:0]
field (
imux
[15:14]) selects XIO for the other core as
either zero (XIOC[1:0] = 0), DMINT4 (XIOC[1:0] = 1),
or DMINT5 (XIOC[1:0] = 2).
Table 15
illustrates an example configuration for intrac-
ore and intercore transfers via DMA. This example
assigns CORE0 to MMT4 and CORE1 to MMT5.
Table 15. DMA Intracore and Intercore Transfers Example
If a core uses an MMT channel for intracore transfers, i.e., not for transfers with the other core, it must first program
its XIOC[1:0] field (
imux
[15:14]) to zero. This prevents the MMT interrupt from disturbing the other core via its XIO
interrupt. The core must enable the corresponding MMT interrupt (DMINT4 or DMINT5) in its
inc0
register
(
Table 149 on page 238
).
If a core uses its MMT channel for intercore transfers, i.e., for transmitting to the other core, it must first program its
XIOC[1:0] field (
imux
[15:14]) to either 1 or 2 (DMINT4 or DMINT5). The receiving core must enable its XIO inter-
rupt in its
inc1
register (
Table 149 on page 238
). The transmitting core must disable the corresponding MMT inter-
rupt (DMINT4 or DMINT5) in its own
inc0
register.
DMAU
Channel
MMT4
MMT5
Interrupt
Description
MMT4 transfer complete.
MMT5 transfer complete.
Name
DMINT4
DMINT5
DMAU
Channel
Intracore
Intercore (Core-to-Core)
Transmitting
imux[XIOC[1:0]]
1
(CORE1’s XIO = DMINT4)
2
(CORE0’s XIO = DMINT5)
Receiving
Core
CORE0
Interrupt
DMINT4
imux[XIOC[1:0]]
0
(CORE1’s XIO = 0)
0
(CORE0’s XIO = 0)
Core
CORE0
Core
CORE1
Interrupt
XIO (DMINT4)
MMT4
MMT5
CORE1
DMINT5
CORE1
CORE0
XIO (DMINT5)