Answer: DMA
stands for Direct Memory Access. This is a technique used in computers
to transfer a block of memory directly between a peripheral device
like a disk drive and the main memory.
When the processor is doing normal I/O transfers, it is the bus master,
with total control over the system bus. Each data transfer between
a peripheral device and memory requires two bus cycles, one between
the device and a processor register, and another between the processor
and main memory.
With DMA, each data transfer requires just one bus cycle, doubling
the effective bandwidth. However, this requires the software to set
up the transfer in advance, telling the device controller (in 1st-party,
or bus mastering DMA) or a separate DMA controller (in 3rd-party DMA)
where the data resides in main memory.
When the device is ready to transfer data, it makes a DMA request,
which gets turned into a request to the system bus arbiter (usually
built into the CPU chip). The arbiter suspends the CPU's bus activity
long enough to allow the pending device data transfer(s) to occur.
First-party DMA transfers are usually much faster than programmed
I/O transfers because of the bus bandwidth issue noted above. However,
3rd-party DMA on most IBM PCs and compatibles is generally slower
than programmed transfers (and more limited in terms of addressing)
because of the design of the 8237 DMA controller and how it was integrated
into the original PC architecture.
Contributor: Naveen P N