Edition 2.0 MB86687A
9
3.1 DMA Controller and SAR Memory Interface
3.1.1 General
The ALC contains an intelligent DMA
Controller to manage the segmentation
and reassembly of user data packets
using the minimum of host processor
intervention. Communication with the
host processor is mainly through shared
data structures in either dual port or
system memory.
The system implications of a dual port or
system memory approach are largely
performance related.
3.1.2 Shared Data Structures
The shared data structures used to
control the segmentation and
reassembly of user data are shown in
Fig. 4 on page 10. The transmit side is
controlled via the Transmit Pending
Queue, the Transmit Descriptor Table,
the Circuit Reference Table and the
Transmit Buffer Release Queue. The
ALC uses reserved fields in the T ransmit
Descriptor to compose peak rate queues
for segmentation at the specified peak
rate and for leaky bucket averaging. The
host can program up to 12 peak rates for
the ALC.
The receive side is controlled by the
Receive Buffer Free Queue, the Receive
Descriptor Table and the Receive Buffer
Ready Queue. In addition the DMA
Controller uses an internal RAM table,
the Receive Status / Descriptor Table to
store receive VCI status and descriptor
identifiers. The purpose of each of these
tables is described below.
3.1.3 Transmit Data Structures
The host writes commands to the
Transmit Pending Queue to instruct the
ALC to queue a data packet for
segmentation. The packet can be
queued for transmission on one of 12
peak rate queues. Each Transmit
Pending Queue entry contains a pointer
to a Transmit Descriptor in the Transmit
Descriptor Table.
The Transmit Descriptor Table is
composed of up to 4096 descriptors.
Each descriptor contains a pointer to
data for segmentation. The reserved
fields in the Transmit Descriptor are used
by the ALC to construct queues of
transmit packets for each selected peak
rate. The Transmit Descriptor also
contains a pointer to an entry in the
Circuit Reference Table (CRT).
The CRT is composed of up to 1024
entries, one entry for each active Virtual
Circuit. Each entry contains fields for the
ATM cell header, an optional routing tag,
and the leaky bucket parameters for the
virtual circuit. The ALC reads the cell
header and the leaky bucket parameters
from the CRT each time a cell is
segmented from a transmit buffer.
Management of the Peak Rate
segmentation queues is handled
autonomously by the ALC. The only host
intervention required is on a per packet
basis. To queue a packet the host
constructs the relevant descriptor and
writes the pointer to the descriptor into
the Transmit Pending Queue. Transmit
descriptors are recovered by the host by
reading the Transmit Buffer Release
Queue.