• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » Fundamental » Computer » Direct memory access (DMA)
Next →
← Prev

Direct memory access (DMA)

By Dinesh Thakur

 DMA stands for “Direct Memory Access” and is a method of transferring data from the computer‘s RAM to another part of the computer without processing it using the CPU. While most data that is input or output from your computer is processed by the CPU, some data does not require processing, or can be processed by another device.

In these situations, DMA can save processing time and is a more efficient way to move data from the computer’s memory to other devices. In order for devices to use direct memory access, they must be assigned to a DMA channel. Each type of port on a computer has a set of DMA channels that can be assigned to each connected device. For example, a PCI controller and a hard drive controller each have their own set of DMA channels. 

 Direct Memory Access (DMA)

For example, a sound card may need to access data stored in the computer’s RAM, but since it can process the data itself, it may use DMA to bypass the CPU. Video cards that support DMA can also access the system memory and process graphics without needing the CPU. Ultra DMA hard drives use DMA to transfer data faster than previous hard drives that required the data to first be run through the CPU.

An alternative to DMA is the Programmed Input/Output (PIO) interface in which all data transmitted between devices goes through the processor. A newer protocol for the ATAIIDE interface is Ultra DMA, which provides a burst data transfer rate up to 33 mbps. Hard drives that come with Ultra DMAl33 also support PIO modes 1, 3, and 4, and multiword DMA mode 2 at 16.6 mbps.

DMA Transfer Types

Memory To Memory Transfer

In this mode block of data from one memory address is moved to another memory address. In this mode current address register of channel 0 is used to point the source address and the current address register of channel is used to point the destination address in the first transfer cycle, data byte from the source address is loaded in the temporary register of the DMA controller and in the next transfer cycle the data from the temporary register is stored in the memory pointed by destination address. After each data transfer current address registers are decremented or incremented according to current settings. The channel 1 current word count register is also decremented by 1 after each data transfer. When the word count of channel 1 goes to FFFFH, a TC is generated which activates EOP output terminating the DMA service.

Auto initialize

In this mode, during the initialization the base address and word count registers are loaded simultaneously with the current address and word count registers by the microprocessor. The address and the count in the base registers remain unchanged throughout the DMA service.

After the first block transfer i.e. after the activation of the EOP signal, the original values of the current address and current word count registers are automatically restored from the base address and base word count register of that channel. After auto initialization the channel is ready to perform another DMA service, without CPU intervention.

DMA Controller

The controller is integrated into the processor board and manages all DMA data transfers. Transferring data between system memory and an 110 device requires two steps. Data goes from the sending device to the DMA controller and then to the receiving device. The microprocessor gives the DMA controller the location, destination, and amount of data that is to be transferred. Then the DMA controller transfers the data, allowing the microprocessor to continue with other processing tasks. When a device needs to use the Micro Channel bus to send or receive data, it competes with all the other devices that are trying to gain control of the bus. This process is known as arbitration. The DMA controller does not arbitrate for control of the BUS instead; the I/O device that is sending or receiving data (the DMA slave) participates in arbitration. It is the DMA controller, however, that takes control of the bus when the central arbitration control point grants the DMA slave’s request.

You’ll also like:

  1. How To Troubleshoot Memory (Random Access Memory)
  2. Sequential Access Memory (SAM) – Definition
  3. What is RAM (random access memory)? Definition
  4. What is DRAM (Dynamic Random Access Memory)? – Definition
  5. What is Non-Volatile Random Access Memory (NVRAM)? – Definition
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

Computer Fundamental

Computer Fundamental

  • Computer - Home
  • Computer - What is Computer
  • Computer - Definition
  • Computer - Block Diagram
  • Computer - Generations
  • Computer - Characteristic
  • Computer - Advantages
  • Computer - Types
  • Computer - Who Invented
  • Computer - Analytical Engine
  • Computer - Uses
  • Computer - Von Neumann model
  • Computer - Classification
  • Computer - Components
  • Computer - CPU
  • Computer - Bios
  • Computer - ALU
  • Computer - Boot
  • Computer - Control Unit
  • Computer - Bus
  • Computer - ISA Bus
  • Computer - MCA Bus
  • Computer - 32-bit
  • Computer - CPU Cache
  • Computer - Coprocessor
  • Computer - ENIAC
  • Computer - Semiconductor
  • Computer - EISA
  • Computer - BIOS Works
  • Computer - DMA
  • Computer - Floppy
  • Computer - Society Impact
  • Computer - AUTOEXEC.BAT
  • Computer - Batch File
  • Computer - Cloud Computing
  • Computer - Grid Computing
  • Computer - Parallel Computing
  • Computer - Docking Station
  • Computer - 32-Bit vs. 64-Bit
  • Computer - Important Features

Different Computer Types

  • Computer - Supercomputer
  • Computer - Personal Computer
  • Computer - Minicomputer
  • Computer - Microcomputer
  • Computer - Analog
  • Computer - Mainframe
  • Computer - Digital
  • Computer - Laptop
  • Computer - NetBook
  • Computer - Ultrabook

Data and Information

  • Computer - Data and Information
  • Computer - Information Technology
  • Computer - Types of IS
  • Computer - Issues in IT

Other Links

  • Computer - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW