Direct Memory Access (DMA)
Direct Memory Access (DMA)
Direct memory access (DMA) is a feature of computer systems that allows certain hardware
subsystems to access main system memory (RAM), independent of the central processing
unit(CPU). Without DMA, when the CPU is using programmed input/output, it is typically fully
occupied for the entire duration of the read or write operation, and is thus unavailable to perform
other work. With DMA, the CPU first initiates the transfer, then it does other operations while the
transfer is in progress, and it finally receives an interrupt from the DMA controller when the operation
is done. This feature is useful at any time that the CPU cannot keep up with the rate of data transfer,
or when the CPU needs to perform useful work while waiting for a relatively slow I/O data transfer.
Many hardware systems use DMA, including disk drive controllers, graphics cards, network
cardsand sound cards. DMA is also used for intra-chip data transfer in multi-core processors.
Computers that have DMA channels can transfer data to and from devices with much less CPU
overhead than computers without DMA channels. Similarly, a processing element inside a multi-core
processor can transfer data to and from its local memory without occupying its processor time,
allowing computation and data transfer to proceed in parallel.
A DMA Controller is a device, which takes over the system bus to directly transfer information
from one part of the system to another. This is necessary because often blocks of data have to be
moved very rapidly, sometimes at speeds even faster than is practical, if each byte were to move
through the CPU.
The Intel 82357 DMA Controller is used to perform DMA transfers. It comes with 40-pin
package. The 82357 DMA Controller can provide service for a total of four different devices at
once.
The Commonly used DMA Controller (Intel 82357)