DMA

6/6/98

Direct Memory Access (DMA): Direct Memory Access is a technique that routes information between memory and peripheral devices without requiring the data to be passed through the CPU. The original IBM PC provided a DMA controller with four 8-bit channels running at roughly 950 KBytes per second. The AT architecture added three additional 16-bit channels running at 1.9MegaBytes per second. (The fourth 16 bit channel is used to cascade the 8 bit channels). As a result of maintaining compatibility with the PC and PC-XT, the low bandwidth low numbered channels have priority over the higher bandwidth high numbered channels added later.

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-2008 by Donald Kenney.