Direct Memory Access. Part I

Direct Memory Access (DMA) is a mechanism of data exchange between an internal device and memory without engaging a processor. Such mechanism allows significantly decreasing the load on the processor and increasing a general productivity of a system.

The use of direct memory access is provided via a special DMA-controller which has got eight channels for simultaneous transmission of information on 8- or 16-bit buses.

The peak bandwidth via DMA-channels is about 2 MB/s, so the mains consumers of DMA-channels are audio cards, floppy-drives and old CD-ROMs. In old computers, DMA-controller also controlled the operation of hard disks but in modern systems this function is realized via a mechanism of the programmable input/output.

If it is necessary to exchange data fast, a processor takes over the control of the process of information transferring because the speed exceeds the capacities of DMA.

In case of manual allocation of DMA resources, it should be considered that, in contrast to allocation of interruptions, only one device should be reserved on one channel of direct memory access. The shared connection of several devices on the same channel is also possible, but remember that such connection may lead to some conflicts with the shared operation of these devices.