Friday, 20 January 2017






DIFFERENT TYPES OF DMA TRANSFER SCHEMES

FLYBY DMA TRANSFER:

  • The fastest DMA transfer type is referred to as a single-cycle, single-address, or flyby transfer. 
  • In a flyby DMA transfer, a single bus operation is used to accomplish the transfer, with data read from the source and written to the destination simultaneously. 
  • In flyby operation, the device requesting service asserts a DMA request on the appropriate channel request line of the DMA controller. 
  • The DMA controller responds by gaining control of the system bus from the CPU and then issuing the pre-programmed memory address.
  • Simultaneously, the DMA controller sends a DMA acknowledge signal to the requesting device. 
  • This signal alerts the request in device to drive the data onto the system data bus or to latch the data from the system bus, depending on the direction of the transfer. 
  • In other words, a flyby DMA transfer looks like a memory read or write cycle with the DMA controller supplying the address and the I/O device reading or writing the data. 
  • Because flyby DMA transfers involve a single memory cycle per data transfer, these transfers are very efficient; however, memory to memory transfers are not possible in this mode.

FETCH AND DEPOSIT DMA TRANSFER:

The second type of DMA transfer is referred to as a dual-cycle, dual-address, flow-through, or fetch-and-deposit DMA transfer. As these names imply, this type of transfer involves two memory or I/O cycles. The data being transferred is first read from the I/O device or memory into a temporary data register internal to the DMA controller. The data is then written to the memory or I/O device in the next cycle. Figure 3 shows the fetch an ddeposit DMA transfer signal protocol. Although inefficient because the DMA controller performs two cycles and thus retains the system bus longer, this type of transfer is useful for interfacing devices with different data bus sizes. For example, a DMA controller can perform two 16-bit read operations from one location followed by a 32-bit write operation to another location. A DMA controller supporting this type of transfer has two address registers per channel (source address and destination address) and bus-size registers, in addition to the usual transfer count and control registers. Unlike the flyby operation, this type of DMA transfer is suitable for both memory-to-memory and I/O transfers.



DMA CONTROLLER’S TRANSFER MODES:
  1. Single DMA Transfer.
     
  2. Block DMA Transfer.
     
  3. Demand DMA Transfer.
     
  4. Chained block DMA Transfer.
     
  5. Linked block DMA Transfer.
In addition to DMA transfer types, DMA controllers have one or more DMA transfer modes. Single, block, and demand are the most common transfer modes. Single transfer mode transfers one data value for each DMA request assertion. This mode is the slowest method of transfer because it requires the DMA controller to arbitrate for the system bus with each transfer. This arbitration is not a major problem on a lightly loaded bus, but it can lead to latency problems when multiple devices are using the bus. Block and demand transfer modes increase system throughput by allowing the DMA controller to perform multiple DMA transfers when the DMA controller has
gained the bus. For block mode transfers, the DMA controller performs the entire DMA sequence as specified by the transfer count register at the fastest possible rate in response to a single DMA request from the I/O device. For demand mode transfers, the DMA controller performs DMA transfers at the fastest possible rate as long as the I/O device asserts its DMA request. When the I/O device unasserts this DMA request, transfers are held off.

No comments:

Post a Comment