Suppose any device which is connected at input-output port wants to transfer data to transfer data to memory, first of all it will send input-output port address and control signal, input-output read to input-output port, then it will send memory address and memory write signal to memory where data has to be transferred. In normal input-output technique the processor becomes busy in checking whether any input-output operation is completed or not for next input-output operation, therefore this technique is slow.
This problem of slow data transfer between input-output port and memory or between two memory is avoided by implementing Direct Memory Access (DMA) technique. This is faster as the microprocessor/computer is bypassed and the control of address bus and data bus is given to the DMA controller.
- HOLD – hold signal
- HLDA – hold acknowledgment
- DREQ – DMA request
- DACK – DMA acknowledgment
Suppose a floppy drive which is connected at input-output port wants to transfer data to memory, the following steps are performed:
- Step-1: First of all the floppy drive will send DMA request (DREQ) to the DMAC, it means the floppy drive wants its DMA service.
- Step-2: Now the DMAC will send HOLD signal to the CPU.
- Step-3: After accepting the DMA service request from the DMAC, the CPU will send hold acknowledgement (HLDA) to the DMAC, it means the microprocessor has released control of the address bus the data bus to DMAC and the microprocessor/computer is bypassed during DMA service.
- Step-4: Now the DMAC will send one acknowledgement (DACL) to the floppy drive e=which is connected at the input-output port. It means the DMAC tells the floppy drive be ready for its DMA service.
- Step-5: Now with the help of input-output read and memory write signal the data is transferred from the floppy drive to the memory.
Modes of DMAC:
- Single Mode – In this only one channel is used, means only a single DMAC is connected to the bus system.
- Cascade Mode – In this multiple channels are used, we can further cascade more number of DMACs.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Internal Registers of DMA Controller
- Difference between Uniform Memory Access (UMA) and Non-uniform Memory Access (NUMA)
- Random Access Memory (RAM) and Read Only Memory (ROM)
- Difference between Random Access Memory (RAM) and Content Addressable Memory (CAM)
- I/O Interface (Interrupt and DMA Mode)
- Different Types of RAM (Random Access Memory )
- Difference between Simultaneous and Hierarchical Access Memory Organisations
- Difference between Random Access Memory (RAM) and Hard Disk Drive (HDD)
- Ferro-electric Random Access Memory
- Magnetic Random Access Memory (M-RAM)
- Memory Access Methods
- Introduction to memory and memory units
- Difference between Byte Addressable Memory and Word Addressable Memory
- Difference between Virtual memory and Cache memory
- 8085 program to swap two 16 bit numbers using Direct addressing mode
- 8085 program to swap two 8 bit numbers using Direct addressing mode
- Difference between Direct and Indirect Addressing Modes
- Difference between Direct and Immediate Addressing Modes
- Difference between Direct and Implied Addressing Modes
- Difference between Relative Addressing Mode and Direct Addressing Mode
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.