top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

What is DMA i.e. direct memory access, please describe in detail?

+3 votes
What is DMA i.e. direct memory access, please describe in detail?
posted Aug 1, 2015 by anonymous

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

2 Answers

+1 vote

Direct Memory Access (DMA)

It is a capability provided by some computer bus architectures that allows data to be sent directly from an attached device (such as a disk drive) to the memory on the computer's motherboard. The microprocessor is freed from involvement with the data transfer, thus speeding up overall computer operation.

Usually a specified portion of memory is designated as an area to be used for direct memory access. In the ISA bus standard, up to 16 megabytes of memory can be addressed for DMA. The EISA and Micro Channel Architecture standards allow access to the full range of memory addresses (assuming they're addressable with 32 bits). Peripheral Component Interconnect accomplishes DMA by using a bus master (with the microprocessor "delegating" I/O control to the PCI controller).

An alternative to DMA is the Programmed Input/Output (PIO) interface in which all data transmitted between devices goes through the processor. A newer protocol for the ATA/IDE interface is Ultra DMA, which provides a burst data transfer rate up to 33 MB (megabytes) per second. Hard drives that come with Ultra DMA/33 also support PIO modes 1, 3, and 4, and multiword DMA mode 2 (at 16.6 megabytes per second).


Direct memory access (DMA) is a method that allows an input/output (I/O) device to send or receive data directly to or from the main memory, bypassing the CPU to speed up memory operations. The process is managed by a chip known as a DMA controller (DMAC).

In older computers, four DMA channels were numbered 0, 1, 2 and 3. When the 16-bit industry standard architecture (ISA) expansion bus was introduced, channels 5, 6 and 7 were added. ISA was a computer bus standard for IBM compatible computers, allowing a device to initiate transactions (bus mastering) at a quicker speed. ISA has since been replaced by accelerated graphics port (AGP) and peripheral component interconnect (PCI) expansion cards, which are a lot faster.

Each channel requires two lines in order to function. One line is for is for the DMA controller, which asks for clearance from the CPU. The other line is for the CPU to recognize that the DMA controller is able to send data over the lines without disruption from the CPU.

A computer's system resource tools are used for communication between hardware and software.

The four types of system resources are:

1. I/O addresses

2. Memory addresses

3. Interrupt request numbers (IRQ)

4. Direct memory access (DMA) channels

DMA channels are used to communicate data between the peripheral device and the system memory. All four system resources rely on certain lines on a bus. Some lines on the bus are used for IRQs, some for addresses (the I/O addresses and the memory address) and some for DMA channels.

A DMA channel enables a device to transfer data without exposing the CPU to a work overload. Without the DMA channels, the CPU copies every piece of data using a peripheral bus from the I/O device. Using a peripheral bus occupies the CPU during the read/write process and does not allow other work to be performed until the operation is completed.

With DMA, the CPU can process other tasks while data transfer is being performed. The transfer of data is first initiated by the CPU. During the transfer of data between the DMA channel and I/O device, the CPU performs other tasks. When the data transfer is complete, the CPU receives an interrupt request from the DMA controller.

A device applying DMA technology uses only a single channel. To avoid a conflict, sometimes the BIOS must assign a different channel to a device. A conflict can happen when more than one device tries to use the same channel.

DMA channels are slower than later data transfer methods, and therefore are not as common. One later interface is the Ultra DMA, which has a data transfer rate up to 33 MB per second. Each DMA transfers approximately 2 MB data per second.

For more Info

answer Aug 4, 2015 by Manikandan J
+1 vote

Processor is generally involved in data transfer between memory or I/O devices.
Due to low speed of operation of memory and I/O devises then compared to processor speed,lot of processor time is wasted.
to avoid wasting of CPU(processor) time in large Data transfer DMA mechanism is used where in a special hardware called DMA controller directly access memory or I/O for data transfer without involvement of processor.
However it is to be noted that the DMA controller hardware is controlled by processor itself.
The DMA transfer begins when the host processor initializes the DMA controller with a count of the number of words to transfer, and the memory address to use.

answer Aug 4, 2015 by Vivek B