7 Multiprocessing
7.7
INTERPROCESSOR MESSAGES & VECTOR INTERRUPTS
The ADSP-2106x bus master can communicate with slave
ADSP-2106xs by writing messages to their IOP registers. The
MSGR0-MSGR7 registers are general-purpose registers which can be
used for convenient message passing between ADSP-2106xs. They are
also useful for semaphores and resource sharing between multiple
ADSP-2106xs. The MSGRx and VIRPT registers can be used for
message passing in the following ways:
• Message Passing. The master ADSP-2106x can communicate with a
slave ADSP-2106x by writing and/or reading any of the 8 message
registers, MSGR0–MSGR7, on the slave.
• Vector Interrupts. The master ADSP-2106x can issue a vector interrupt
to a slave by writing the address of an interrupt service routine to the
slave's VIRPT register. This causes an immediate high-priority interrupt
on the slave which, when serviced, will cause it to branch to the
specified service routine.
The MSGRx and VIRPT registers also support the host processor
interface. Since these registers may be shared resources within a single
ADSP-2106x, conflicts may occur—your system software must prevent
this. For further discussion of IOP register access conflicts, refer to the
Control/Status Registers appendix of this manual.
7.7.1
Message Passing (MSGRx)
There are three methods by which the ADSP-2106x bus master can
communicate with a slave through the MSGRx message registers:
1) vector-interrupt-driven, 2) register handshake, and 3) register write-back.
For the vector-interrupt-driven method, the master fills predetermined
MSGRx registers on the slave with data and triggers a vector interrupt
by writing the address of the service routine to the slave's VIRPT
register. The slave's service routine should read the data from the
MSGRx registers and then write "0" into VIRPT to tell the master it is
done. The service routine could also use one of the slave's FLAG
pins to tell the master it has finished.
For the register handshake method, four of the MSGRx registers should
be designated as follows: a receive register (R), a receive handshake
register (RH), a transmit register (T), and a transmit handshake register
(TH). To pass data to the slave ADSP-2106x, the master would write
data into T and then write a "1" into TH. When the slave sees a "1" in
TH, it reads the data from T and then writes back a "0" into TH. When
7 – 32
www.BDTIC.com/ADI
3-0
Need help?
Do you have a question about the ADSP-2106x SHARC and is the answer not in the manual?
Questions and answers