DMA represents Direct Memory Access. It is a hardware-controlled data transfer method. An external device can control data transfer. The external device creates address and control signals that are needed to control data transfer. External devices also enable peripheral devices to directly access memory. The external device which controls the data transfer is known as the DMA controller.
There are three different modes of DMA data transfer which are as follows −
Burst Mode − In burst mode, a whole block of data is shared in one contiguous sequence. Since the DMA controller is allowed access to the system buses by the CPU, it sends all bytes of data in the data block earlier yield control of the system buses back to the CPU. This mode is beneficial for loading programs or data records into memory, but it does provide the CPU inactive for associatively long periods.
Cycle Stealing mode − In cycle stealing mode, the DMA controller gets access to the system buses as in burst mode, using the BR and BG signals. It can share one byte of information and then deasserts BR, returning control of the system buses to the CPU. It already issues requests via BR, sharing one byte of information per request, just before it has shared its whole block of data.
By frequently obtaining and free control of the system buses, the DMA controller substantially interleaves instructions and data transfers. The CPU processes an instruction, then the DMA controller sends a data value, thus the CPU processes another instruction, then the DMA controller sends another data value, etc.
Transparent Mode − Transparent mode needed the most time to share a block of data, yet it is also important in terms of whole system performance. In transparent mode, the DMA controller only shares data when the CPU is implementing operations that do not use the system buses. For example, the relatively simple CPU has multiple states that change or process data only within the CPU −
NOP1:(No Operation) LDAC5:AC←DR JUMP3:PC←DR,TR CLAC1:AC←0,Z←1
The benefit of transparent mode is that the CPU never stops implementing its programs. The DMA transfer is complementary in terms of time. The hardware requires to decide when the CPU is not utilizing the buses can be fully complex and relatively costly. In addition, more advanced CPUs overlap their internal services and use the system but virtually every cycle.