Direct Memory Access (DMA) Controller (original) (raw)

Last Updated : 11 Apr, 2026

In modern computer systems, transferring data between input/output (I/O) devices and memory can slow performance if the CPU manages every step. To overcome this, a Direct Memory Access (DMA) Controller is used. It enables I/O devices to transfer data directly to or from memory without heavy CPU involvement, improving speed and efficiency.

DMA_

Block Diagram of DMA Controller

Types

Working of DMA Controller

The DMA controller registers have three registers as follows.

All registers in the DMA appear to the CPU as I/O interface registers. Therefore, the CPU can both read and write into the DMA registers under program control via the data bus.

The figure below shows the block diagram of the DMA controller. The unit communicates with the CPU through the data bus and control lines. The CPU selects DMA registers using address lines and control signals.

RD (Read) and WR (Write) are control signals used to specify read or write operations. When BG (bus grant) input is 0, the CPU can communicate with DMA registers. When BG (bus grant) input is 1, the CPU has relinquished the buses and DMA can communicate directly with the memory.

Working Diagram of DMA Controller

Working Diagram of DMA Controller

The CPU initializes the DMA by sending the given information through the data bus.

Modes of Data Transfer in DMA

There are 3 modes of data transfer in DMA that are described below.

**Burst Mode

**Transparent Mode

**Cycle Stealing Mode