DMA is the acronym for Direct Memory Access. This refers to a computer or microprocessor feature which permits certain subsystems of the hardware to gain access of the system memory, in order to write or read data independent of the Central Processing Unit.
Some examples of hardware systems which make use of DMA, include network cards, disk drive controllers, sound cards, and graphics cards. Multi-core processors also use Direct Memory Access for intra-chip data transfer. In multiprocessor system-on-chips, which has a local memory in its processing element, DMA is utilized for the transfer of data between the local and the main memory. Compared to those who do not use DMA, computers which have DMA channels can conduct data transfer with much lower CPU overhead. Just like in computers, the processing elements in multi-core processors can also perform data transfer without using its processor time.
With the use of the Direct Memory Access, the CPU will be able to initiate data transfer, perform other operations while the data transfer is ongoing, and be interrupted by the DMA controller when the operations it is conducting is finished. This function is beneficial when it comes to real-time computing applications wherein it is important not to stall behind simultaneous operations. In addition, DMA is also useful for stream processing wherein it is critical to conduct data transfer and data processing simultaneously for a sufficient output.
This feature can be considered as an essential part in modern computers and microprocessors because it enables computers and other devices to conduct data transfer without putting a heavy load on the Central Processing Unit. Without the DMA, the CPU will have to copy all the data to the desired destination and it will no longer be available to perform other operations. The main advantage of using DMA is that it can free the CPU from too much overhead and will allow it to do other useful tasks while the transfer of data is in progress.