beautypg.com

Dual-port mailbox, Dual-port ram – Rainbow Electronics AT75C310 User Manual

Page 122

background image

AT75C310

122

Dual-port Mailbox

Communication between the asynchronous ARM7TDMI
and OakDSPCore are via the dual-port mailbox (DPMB). It
is assumed that each processor is running asynchronously
and that the coherency of communication is maintained by
robust software.

The DPMB consists of 512 bytes of DPRAM and some
memory-mapped registers that configure the DPMB and
act as semaphores. The DPMB sits on the ARM7TDMI
ASB bus and can be accessed by memory-mapped opera-
tions. Similarly, the DPMB also sits on the OakDSPCore

data bus and can be accessed by memory-mapped
operations.

Messages can be sent between the two processors by the
sending processor writing data to the DPRAM in the DPMB
and signalling via the semaphores. The data is subse-
quently read by the recipient processor. Individual
mailboxes are bi-directional with access permission con-
trolled by the semaphores. The message-passing protocol
can be configured for each mailbox as interrupt-driven or
polled in each direction.

Figure 29. Dual-port Mailbox Block Diagram

Dual-port RAM

The major component of the DPMB is a dual-port RAM
(DPRAM). It consists of 256 x 16 bits of dual-port static
RAM. The DPRAM is divided into eight equal mailboxes,
each with its own semaphore register. The hardware imple-
ments locks so that both processors never have write
access to the same mailbox region. This protection mecha-
nism is based upon the values of the semaphores, which
must be maintained by the software.

If a processor attempts to access a mailbox to which it does
not have semaphore permission, then this access will be
ignored.

The DPMB supports word access from the ARM side pro-
vided the address is word-aligned, and half-word access

from both the ARM and Oak sides provided the address is
half-word-aligned. All other accesses will result in a data
abort being issued. The DPMB does not decode protection
information carried in AMBA output BPROT[1:0] and, as a
result, does not support Thumb-compiled code.

In order to reduce hardware, the minimum number of
address bits are used in decoding register and mailbox
addresses. This results in address aliasing. For the ARM
side, only address bits ba[5:2] and ba[9] are used in regis-
ter decode and bits ba[8:5] in mailbox decode. On the Oak
side, only address bits dxap[2:0] are used in register
decode and bits dxap[7:4] are used in mailbox decode.

Mailbox Memory

Access
Control

Access
Control

Protection

Mechanism

Semaphores

Logic

OAK Bus

ARM ASB

IRQ

IRQ

Control

Control

Enable

Enable

Rd

Wr

Rd

Wr

Data

Data

@

@

@

@