Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp

Direct Memory Access Data Transfer

Here we come with the discussion on direct memory access data transfer. In my earlier post, I discussed on the topic “Programmed I/O Data Transfer scheme of 8085 microprocessor” and “Interrupt Driven I/O Data Transfer”. As we discussed earlier that in programmed I/O, data transfer take place between the I/O devices and external memory.  As well as interrupt driven I/O methods of data transfer also take place between the I/O devices and external memory via the accumulator.

So time to think for bulk data transfer from I/O devices to memory or vice-versa. These two methods discussed above are time consuming and uneconomical. Even though we look on the speed of I/O devices matches with the speed of microprocessor. Because in those methods the data is first transferred to accumulator and then to concerned device.


To overcome those problem, direct memory access data transfer method is introduced. The Direct Memory Access (DMA) data transfer method mainly used for bulk data transfer from I/O devices to microprocessor or vice-versa. In this method I/O devices are allowed to transfer the data directly to the external memory without being routed through accumulator. For this reason the microprocessor relinquishes the control over the data bus and address bus. So that, these can be used for transfer of data between the devices.

Working principle of direct memory access data transfer

However, we come with working principle of direct memory access data transfer. Firstly, we have to know how the DMA transfer the data by its own process? For that, DMA sends request to the microprocessor in form of HOLD signal by the I/O device. When microprocessor receipt of such request, the microprocessor relinquishes the address and data buses. And informs the I/O devices of the situation by sending Acknowledge signal HLDA. The I/O device withdraws the request when the data transfer between the I/O device and external memory will complete.

direct memory access data transfer

If we discuss in brief about working principal of DMA controller. Then we should mention that DMA controller is used with the microprocessor. Which helps to generate the addresses for the data to be transferred from the I/O devices.

First step, the peripheral device sends the request signal (DMARQ) to the DMA controller.

Second step, the DMA controller in turn passes it to the microprocessor (HOLD signal).

Third step, on receipt of the DMA request, the microprocessor sends an acknowledge signal (HLDA) to the DMA controller.

Fourth step, on receipt of this signal (HLDA), the DMA controller sends a DMA acknowledge signal (DMACK) to the I/O device.

Fifth step, the DMA controller then takes over the control of the buses of microprocessor. And it take controls the data transfer between RAM and I/O device.

Sixth and Final Step, when the data transfer is completed, DMA controller returns the control over the buses to the microprocessor by disabling the HOLD and DMACK signals.

direct memory access data transfer

Now question is how many way DMA can work? In concern of DMA data transfer, it can send data mainly four way.

  • Memory to I/O device
  • I/O device to memory
  • Memory to memory
  • I/O device to I/O device
Let’s check how you learn DMA with a simple quiz.


Direct Memory Access Data Transfer

You may read those too…..

Not Enough, Need More

E-Mail Subscription

1 thought on “Direct Memory Access Data Transfer”

Leave a Comment

Your email address will not be published. Required fields are marked *

E-Mail Subscription

Table of Contents


Hi myself Subham Dutta, having 15+ years experience in filed of Engineering. I love to teach and try to build foundation of students. Try to make them imagine what they learn.

Need more this type of content in your E-Mail?

Electronics Engineering Study Center