lotus

previous page: 10.02.  What are PIO modes?
  
page up: Enhanced IDE/Fast-ATA/ATA-2 FAQ
  
next page: 10.04.  How are the ATA(-2,PI) I/O ports assigned?

10.03. What are DMA modes?




Description

This item is from the Yet Another Enhanced IDE/Fast-ATA/ATA-2 FAQ, by John Wehman and Peter den Haan with numerous contributions by others. (v1.92).

10.03. What are DMA modes?

DMA or Direct Memory Access means that the data is transferred directly between drive and memory without using the CPU as an intermediary, in contrast to PIO. In true multitasking operating systems like OS/2 or Linux, DMA leaves the CPU free to do something useful during disk transfers. In a DOS/Windows environment the CPU will have to wait for the transfer to finish anyway, so in these cases DMA isn't terribly useful.

There are two distinct types of direct memory access: third-party DMA and first-party or busmastering DMA. Third-party DMA relies on the DMA controller on the system's mainboard to perform the complex task of arbitration, grabbing the system bus and transferring the data. In the case of first-party DMA, all this is done by logic on the interface card itself. Of course, this adds considerably to the complexity and the price of a busmastering interface.

Unfortunately, the DMA controller on ISA systems is ancient and slow, and out of the question for use with a modern harddisk. VLB cards cannot be used as DMA targets at all and can only do busmastering DMA. It is only on EISA- and PCI-based interfaces that non-busmastering DMA is viable: EISA type 'B' DMA will transfer 4MB/s, PCI type 'F' DMA between 6 and 8MB/s.

Today, all modern chipsets, including the ubiquitous Triton chipsets, incorporate a busmastering DMA capable ATA interface. Efforts to standardize the DMA hardware will ensure stable and reliable software support.

Anyway, the DMA modes supported are:

        DMA Mode      Cycle time   transfer rate
        Single word    (ns)           (MB/s)

0 960 2.1 ATA 1 480 4.2 ATA 2 240 8.3 ATA Multiword 0 480 4.2 ATA 1 150 13.3 ATA-2 2 120 16.6 ATA-2 DMA/16 120 16.6 Ultra-ATA DMA/33 60 33.3 Ultra-ATA

The single word DMA modes are hardly useful and are obsoleted in ATA-3. Note that some older interfaces are able to use these DMA modes as a way to communicate with the drive, without actually doing direct memory access at all. In these cases, the DMA modes are just used as glorified PIO modes.

 

Continue to:













TOP
previous page: 10.02.  What are PIO modes?
  
page up: Enhanced IDE/Fast-ATA/ATA-2 FAQ
  
next page: 10.04.  How are the ATA(-2,PI) I/O ports assigned?