Polling and Interrupts which are known as programmed Input-Output , the processor is involved in explicitly receiving each word of data from the device and writing it to a local memory buffer. With DMA, the processor simply initiates the transfer of a large block of memory, the receives a notification (using interrupts) when the entire transfer is complete. This requires the hardware device to be much more intelligent as it needs to interface directly wit the memory controller to copy data into the relevant buffer. however this is particularily useful for high bandwidth devices such as GPUs and Hard Disk Controllers