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.
- Cache Memory in Computer Organization
- Different Types of RAM (Random Access Memory )
- Random Access Memory (RAM) and Read Only Memory (ROM)
- 8085 program to exchange a block of bytes in memory
- 8085 program to access and exchange the content of Flag register with register B
- Hard Disk Drive (HDD) Secondary 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
- Memory Segmentation in 8086 Microprocessor
- Memory mapped I/O and Isolated I/O
- How the negative numbers are stored in memory?
- Introduction of Secondary Memory
- Introduction to memory and memory units
- One bit memory cell (or Basic Bistable element)
- 2D and 2.5D Memory organization
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. 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.