In data transfer schemes, it can provide an efficient means of transmitting data between the processing unit and the I/O devices. In a computer, the data transfer happens between any of these combinations CPU and memory, CPU and I/O devices, and memory and I/O devices.
A computer is interfaced with many devices of different speeds. Therefore, I/O devices may not be ready to transfer data as soon as the microprocessor issues the instruction for this purpose. Many data transfer schemes have been developed to solve this problem.
The data transfer schemes have been broadly classified into two categories −
In a programmed data transfer scheme, data transfer takes place between the CPU and I/O device under the control of a program that resides in the memory. In this scheme, the program is executed by the CPU. This scheme is used when a limited extent of information is to be transferred.
The three important types of programmed data transfer schemes are −
In DMA data transfer, data is directly transferred from the memory to the I/O device or vice versa without going through the microprocessor. This scheme is used when there is a requirement to send bulk data. Transferring bulk data using a microprocessor consumes more time. Therefore, the microprocessor performs the data transfer between an I/O device and memory using this DMA technique.
For a DMA transfer, I/O devices must also contain electronic circuitry to generate control signals. But most I/O devices are not equipped with such facilities. Hence, to solve this problem, manufacturers have developed a single-chip programmable DMA controller to interface I/O devices with the microprocessor for DMA transfer.