Direct Memory Access (DMA)
No matter whether a CPU does or does not have memory-mapped I/O, it needs to address the device controllers to exchange data with them.
The CPU can request data from an I/O controller one byte at a time but doing so wastes the CPU’s time, so a different scheme, called DMA (Direct Memory Access) is often used.
The operating system can only use DMA if the hardware has a DMA controller, which most systems do.
Sometimes this controller is integrated into disk controllers and other controllers, but such a design requires a separate DMA controller for each device.
No matter where it is physically located, the DMA controller has access to the system bus independent of the CPU.
It contains several registers that can be written and read by the CPU. These include a memory address register, a byte count register, and one or more control registers.
The control registers specify the I/O port to use, the direction of the transfer (reading from the I/O device or writing to the I/O device), the transfer unit (byte at a time or word at a time), and the number of bytes to transfer in one burst.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.