![](http://datasheet.mmic.net.cn/110000/GT-96100A_datasheet_3491740/GT-96100A_226.png)
GT-96100A Advanced Communication Controller
226
Revision 1.0
9.7.1
DMA in Demand Mode
Demand mode is especially designed for transferring data between Memory (Device, SDRAM, PCI agent) and a
Device. This is because the DMAAck* is asserted only when the GT-96100A is accessing a Device.
In this mode, the transfer initiator (usually a Device) asserts DMAReq* to signal the GT-96100A that a new
DMA transfer should begin. As an acknowledgment response, the GT-96100A asserts the DMAAck* to signal
that the asserted DMAReq* is currently being processed.
In each DMA transfer, the DMA attempts to read the amount of DatTranLim bytes from the source address and
writes it to destination address. In the source direction, at the beginning and end of the DMA, there may be less
than DatTranLim bytes if the address is not aligned or the remaining Byte Count to be transferred is smaller then
the DatTranLim. In the destination direction, the DMA writes all data that was read from the source to the desti-
nation. This may happen in two DMA accesses if the destination address is not aligned.
The channel stays active until the Byte Count reaches the terminal count or until the CPU disables the channel.
NOTE: If the DMAReq* is always asserted, then this is equivalent to transfer data in Block Mode.
9.7.1.1
Asserting and Deasserting DMAReq*
The DMAReq* must be asserted as long as the transfer initiator has at least DatTranLim of bytes to provide (in
case that it is the source) or as long as it has space to absorb at least DatTranLim of bytes (in case that it is the
destination).
The DMAReq* should be deasserted by the source when the transfer initiator sees that it does not have at least
DatTranLim of bytes to provide (i.e. FIFO empty). DMAReq* should also be deasserted by the destination when
it does not have enough space to absorb at least DatTranLim of bytes (i.e. FIFO full) AND DMAAck* is asserted
LOW.
9.7.1.2
Asserting DMAAck*
The DMAAck* is asserted only when the GT-96100A accesses a device. It is asserted when ALE is asserted.
9.7.1.3
DMAReq* Sampling
The DMAReq* is sampled all the time but it influences arbitration only in the DMA arbitration cycle or when all
channels are idling. The DMA arbitration cycle is the cycle in which the destination unit inside the GT-96100A
acknowledges the last written data from the DMA unit.