DMA is used by sound cards, floppy disks, ECP parallel ports, low performance disk and tape controllers and special purpose peripherals. In concept, DMA allows the CPU to be freed up for other tasks, but this is less useful than it seems except in some server applications because programs are rarely able to request inputs before they need them and the memory accessing tends to interfere with CPU memory accessing even where the programs can achieve some parallelism. Bus mastering device controllers can access memory directly bypassing both the CPU and the relatively slow DMA controllers. Bus mastering control is the preferred mode for servers whose primary task is to push large amounts of data as quickly as possible.
The EISA and PCI buses include 32 bit DMA facilities separate from the classical motherboard DMA including
PCI DMA has become widely used by hard disk drives since about 1999.
There is little standardization of usage for the PC motherboard 8/16 bit DMA channels. Channels 0 (Dynamic Memory Refresh), 2 (Floppy Disk) and 4 (used to link the two physical controllers in the PC-AT architecture) should be avoided and probably will not be presented as options. Channel 1 is allocated to SDLC, but SDLC is rarely used.
The motherboard DMA controller clock is frequently derived by dividing the CPU bus or ISA bus clock. It has been claimed that overclocking the DMA chips beyond their maximum of 5MHz may burn out the chips.
Return To Index Copyright 1994-2002 by Donald Kenney.