![](http://datasheet.mmic.net.cn/110000/GT-96100A_datasheet_3491740/GT-96100A_228.png)
GT-96100A Advanced Communication Controller
228
Revision 1.0
9.7.3
Chain Mode
In chain mode, the DMA channel parameters (Source, Destination Byte Count and Pointer to Next Record) are
read from records located in Memory, Device, or PCI. The DMA channel stays in the active state until Pointer to
Next Record is NULL and the Byte Count reaches the terminal count.
In this mode, an interrupt can be asserted every time the byte count reaches the terminal count or when BOTH the
Byte Count reaches the terminal count and the Pointer to Next Record is NULL.
9.7.4
Dynamic DMA chaining
Dynamic chaining is when DMA records are added to a chain that an IDMA controller is actively working on.
The main issue is to synchronize between when the GT-96100A reads the last chain record (the NULL pointer) to
the time the CPU changes the current last DMA record. Following is an algorithm which provides this synchroni-
zation mechanism.
1. Prepare the new record.
2. Change the last record's Pointer to Next Record to point to the new record.
3. Read the DMA control register.
If the DMAActSt bit is 0 (NOT active) {
Update the Pointer to Next Record in the GT-96100A
assert the FetNexRec bit
}
else {
read the Pointer to Next Record the GT-96100A.
If it's equal to NULL {
Mark (by using a flag) that in the next DMA chain complete interrupt
you'll need to {
Update the NRP register in the GT-64010
Write the Fetch Next Record
}
9.7.5
Fly-by DMA
Fly-by is a way to move data directly from the source of the data to its destination. While the source drives the
data onto the data bus, the destination immediately latches it into its buffers/memory. The data does not pass
through the GT-96100A. This saves at least half of the AD bus bandwidth. Fly-by cycles are requested by the
DMA channel and controlled by the memory unit.
9.7.5.1
FlyBy in the GT-96100A
During fly-by, the GT-96100A supplies the full information to the SDRAM involved in the transaction. This
includes all control signals (SRAS*, SCAS*, SWr*, SCS* and SDQM) and the address lines (DAdr, BA0, BA1).
For the Device, it supplies the control signals (CSTiming*, DmaAck* and DevRdWr*) that support the same
waveforms as if the device were not working in fly-by mode. This means that the DmaAck* and DevRdWr* are