Direct Memory Access (DMA) Controller in Computer Architecture
Last Updated :
18 Apr, 2025
In modern computer systems, transferring data between input/output devices and memory can be a slow process if the CPU is required to manage every step. To address this, a Direct Memory Access (DMA) Controller is utilized.
A Direct Memory Access (DMA) Controller solves this by allowing I/O devices to transfer data directly to memory, reducing CPU involvement. This increases system efficiency and speeds up data transfers, freeing the CPU to focus on other tasks. DMA controller needs the same old circuits of an interface to communicate with the CPU and Input/Output devices.
DMA Controller
Direct Memory Access (DMA) uses hardware for accessing the memory. This hardware is called a DMA Controller. It has the work of transferring the data between input, output devices and main memory with very less interaction with the processor. The Direct Memory Access Controller is a control unit, which has the work of transferring data.
DMA Controller in Computer Architecture
DMA Controller is a type of control unit that works as an interface for the data bus and the I/O Devices. As mentioned, DMA Controller has the work of transferring the data without the intervention of the processors, processors can control the data transfer. DMA Controller also contains an address unit, which generates the address and selects an I/O device for the transfer of data. Below is the block diagram of the DMA Controller.

Block Diagram of DMA Controller
Types of Direct Memory Access (DMA)
There are four popular types of DMA.
- Single-Ended DMA: In this type, the DMA controller is connected only to one device (usually either the memory or the I/O device), and it directly controls data transfer.
- Dual-Ended DMA: The DMA controller is connected to both the source and the destination, typically memory and an I/O device.
- Arbitrated-Ended DMA: In systems with multiple DMA devices or masters, arbitration is needed to decide which device gets control of the bus. It is more advanced than Dual-Ended DMA.
- Interleaved DMA: Interleaved DMA are those DMA that read from one memory address and write from another memory address.
Working of DMA Controller
The DMA controller registers have three registers as follows.
- Address register: It contains the address to specify the desired location in memory.
- Word count register: It contains the number of words to be transferred.
- Control register: It specifies the transfer mode.
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. Through the use of the address bus and allowing the DMA and RS register to select inputs, the register within the DMA is chosen by the CPU.
RD and WR are two-way inputs. 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
The CPU initializes the DMA by sending the given information through the data bus.
- The starting address of the memory block where the data is available (to read) or where data are to be stored (to write).
- It also sends word count which is the number of words in the memory block to be read or written.
- Control to define the mode of transfer such as read or write.
- A control to begin the DMA transfer
Modes of Data Transfer in DMA
There are 3 modes of data transfer in DMA that are described below.
Burst Mode
- In Burst Mode, the DMA controller takes full control of the system bus and transfers the entire block of data in one go.
- The bus is not handed back to the CPU until the entire data transfer is complete.
- This mode is efficient for large data transfers but can delay CPU operations.
Transparent Mode
- In Transparent Mode, the DMA controller transfers data only when the CPU is not using the system bus.
- It effectively sneaks in transfers during idle CPU cycles, ensuring the CPU is never interrupted.
- Best when CPU performance is critical and some delay in data transfer is acceptable.
Cycle Stealing Mode
- In Cycle Stealing Mode, the DMA controller transfers one byte (or word) at a time and then releases control of the bus back to the CPU.
- This mode generates frequent bus requests but allows the CPU to execute instructions in between DMA transfers.
- Useful when the DMA task is important but should not entirely block the CPU, such as in audio or video streaming.
Advantages of DMA Controller
- DMA speeds up memory operations and data transfers by allowing peripherals to communicate directly with memory, bypassing the CPU.
- During data transfer, the CPU is not involved, which significantly reduces its workload.
- Operates efficiently, requiring very few clock cycles to complete data transfers.
- It distributes workload very appropriately.
- By offloading data movement tasks from the CPU, DMA distributes the overall system workload more effectively
Disadvantages of DMA Controller
- Costly operation due to the need for additional hardware and control logic.
- Suffers from Cache-Coherence Problems.
- It increases the overall cost of the system.
- It increases the complexity of the software.
Similar Reads
Direct memory access with DMA controller 8257/8237
Suppose any device which is connected to input-output port wants 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 transfe
3 min read
Computer Organization and Architecture Tutorial
In this Computer Organization and Architecture Tutorial, youâll learn all the basic to advanced concepts like pipelining, microprogrammed control, computer architecture, instruction design, and format. Computer Organization and Architecture is used to design computer systems. Computer architecture i
5 min read
Differences between Computer Architecture and Computer Organization
Computer Architecture refers to the design and functional aspects of a computer system, such as the instruction set and processor. Computer Organization deals with the physical implementation and interconnection of hardware components. Computer ArchitectureComputer architecture is the functional des
4 min read
Memory Organisation in Computer Architecture
Memory organization is essential for efficient data processing and storage. The memory hierarchy ensures quick access to data by the CPU, while larger, slower storage devices hold data for the long term. Effective memory management ensures the system operates efficiently, providing programs with the
3 min read
Computer Organization - Von Neumann architecture
Computer Organization is like understanding the "blueprint" of how a computer works internally. One of the most important models in this field is the Von Neumann architecture, which is the foundation of most modern computers. Named after John von Neumann, this architecture introduced the concept of
6 min read
68000 Family Registers and Addressing In Computer Architecture
The 68000 processor is characterized by a 16-bit external word length as the processor chip has 16 data pins for connection to the memory. However, data are manipulated inside the processor in registers that contain the 32 bits. Other models for this family are 68020, 68030, and 68040 processors., w
5 min read
Handler's Classification in Computer Architecture
In 1977, Wolfgang Handler presented a computer architectural classification scheme for determining the degree of parallelism and pipelining built into the computer system hardware. Parallel systems are complicated to the program as compared to the single processor system because parallel system arch
3 min read
Difference between Von Neumann and Harvard Architecture
Von Neumann and Harvard architectures are the two basic models in the field of computer architecture, explaining the organization of memory and processing units in a computer system. For those involved in Computer Science or working in companies providing computing technologies, it is essential to u
5 min read
Hardware architecture (parallel computing)
Let's discuss about parallel computing and hardware architecture of parallel computing in this post. Note that there are two types of computing but we only learn parallel computing here. As we are going to learn parallel computing for that we should know following terms. Era of computing - The two f
3 min read
PRAM or Parallel Random Access Machines
Parallel Random Access Machine, also called PRAM is a model considered for most of the parallel algorithms. It helps to write a precursor parallel algorithm without any architecture constraints and also allows parallel-algorithm designers to treat processing power as unlimited. It ignores the comple
3 min read