Direct Memory Access

Direct memory access (DMA) is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently 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 initiates the transfer, does other operations while the transfer is in progress, and receives an interrupt from the DMA controller when the operation is done. This feature is useful any time the CPU cannot keep up with the rate of data transfer, or where 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 cards and 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 a DMA channel. 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.

DMA can also be used for "memory to memory" copying or moving of data within memory. DMA can offload expensive memory operations, such as large copies or scatter-gather operations, from the CPU to a dedicated DMA engine. An implementation example is the I/O Acceleration Technology.

Read more about Direct Memory Access:  Principle, Cache Coherency

Famous quotes containing the words direct, memory and/or access:

    I, who travel most often for my pleasure, do not direct myself so badly. If it looks ugly on the right, I take the left; if I find myself unfit to ride my horse, I stop.... Have I left something unseen behind me? I go back; it is still on my road. I trace no fixed line, either straight or crooked.
    Michel de Montaigne (1533–1592)

    Beauclerc: You’ve got a good memory for one who drinks.
    Eddie: Drinkin’ don’t bother my memory. If it did, I wouldn’t drink. I couldn’t. You see, I’d forget how good it was. Then where’d I be? I’d start drinkin’ water again.
    Jules Furthman (1888–1960)

    The Hacker Ethic: Access to computers—and anything which might teach you something about the way the world works—should be unlimited and total.
    Always yield to the Hands-On Imperative!
    All information should be free.
    Mistrust authority—promote decentralization.
    Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position.
    You can create art and beauty on a computer.
    Computers can change your life for the better.
    Steven Levy, U.S. writer. Hackers, ch. 2, “The Hacker Ethic,” pp. 27-33, Anchor Press, Doubleday (1984)