
8-14
DMA Controller (DMAC)
TheDMAEngineintheDMACalwaysexpectsthelastDMAoperationto
be a word read/store. If user firmware programs a 64-byte DMA operation
starting with Address Offset 0x1, the ATMizer Architecture DMA first
transfersthreebytes(bytes0x1,0x2,0x3),thengroupsoffourbytes(bytes
0x4,0x5,0x6,0x7andsoonuntil0x40,0x41,0x42,0x43),whichendsup
being a 67-byte DMA operation. The designer must be careful to build a
system that does not write over useful information during a DMA write.
8.7
Scatter and
Gather
Operations
The ATMizer Architecture provides the system designer with all of the
functionality needed to implement a fully robust scatter-gather ATM net-
work-to-Host interface. In the Gather direction (during segmentation) the
ATMizer Architecture is capable of generating cells from any number of
separate data structures as if they were a single contiguous CS-PDU. This
capability means that the Host Processor does not need to do a series of
time consuming data movement operations to form a contiguous CS-PDU
in a local buffer memory prior to initializing the Segmentation operation.
WhenusingtheATMizerArchitectureinaTCP/IPapplication,theTCP/IP
header may reside in a different location within Host memory from the
actual user CS-PDU data payload. Also, the actual CS-PDU data payload
field may actually consist of a number of discontinuous pages of memory.
Because the ATMizer Architecture supports Gather operations, there is no
need to move all of these data structures in advance into a single CS-PDU.
The actual implementation of Scatter and Gather functions are imple-
mented in user firmware. In general, the Gather function can be imple-
mented by having the Host Processor pass to the ATMizer Architecture a
series of Segment CS-PDU Fragment messages with the appropriate user
defined control structures. The APU, recognizing that it is involved in a
Gather operation, is programmed not to generate End-of-CS-PDU Header
fields at the end of a CS-PDU fragment. It is also programmed to resolve
the arrival at an End-of-CS-PDU fragment boundary (automatically
resolve the link list pointer or simply pass a message to the Host Processor
asking it to resolve the next pointer for it).
8.8
DMAOperation
Completion
The APU must determine that a DMA operation is complete before it
attempts to use the information retrieved by the DMA operation. In the
case of segmentation, the APU must determine that the DMA Controller
has retrieved the entire SAR-SDU before it can queue the cell for
transmission.