In: Computer Science
a) The hardware used for direct memory access is DMA controller and it is part of I/O device's interface circuit. DMA controller interfaces between the bus and I/O devices. The CPU sends the starting address, number of words in the data block, and direction of transfer of data to the DMA controller. The transfer of data is controlled by the processor. When DMA controller is free, it request for bus and CPU grants the bus to DMA by sending grant signal. Then data tranfer will be initiated.
b) When the memory operation (transfer) is completed, the DMA controller informs the processor by raising an interrupt.
c) When DMA controller is transferring data, the program requested the transfer can not continue, but the CPU is allowed to execute other programs.
A conflict may arise between the CPU and DMA controller when both of these want to use the bus at the same time to access the main memory. So, any other program that require all the memory bus cycles could run more slowly when DMA is active.