Direct memory access (DMA)
DMA stands for "Direct Memory Access" and is a method of transferring data from the computer's RAM to another part of the computer without processing it using the CPU.
While most data that is input or output from your computer is processed
by the CPU, some data does not require processing, or can be processed
by another device.
In these situations, DMA can save processing time and is a more efficient way to move data from the computer's memory
to other devices. In order for devices to use direct memory access,
they must be assigned to a DMA channel. Each type of port on a computer
has a set of DMA channels that can be assigned to each connected device.
For example, a PCI controller and a hard drive controller each have
their own set of DMA channels.
For
example, a sound card may need to access data stored in the computer's
RAM, but since it can process the data itself, it may use DMA to bypass
the CPU. Video cards that support DMA can also access the system memory
and process graphics without needing the CPU. Ultra DMA hard drives use
DMA to transfer data faster than previous hard drives that required the
data to first be run through the CPU.
An
alternative to DMA is the Programmed Input/Output (PIO) interface in
which all data transmitted between devices goes through the processor. A
newer protocol
for the ATAIIDE interface is Ultra DMA, which provides a burst data
transfer rate up to 33 mbps. Hard drives that come with Ultra DMAl33
also support PIO modes 1, 3, and 4, and multiword DMA mode 2 at 16.6
mbps.
DMA TRANSFER TYPES
MEMORY TO MEMORY TRANSFER
In this mode block of data from one memory address is moved to another memory address. In this mode current address register
of channel 0 is used to point the source address and the current
address register of channel is used to point the destination address in
the first transfer cycle, data byte from the source address is loaded in
the temporary register of the DMA controller and in the next transfer
cycle the data from the temporary register is stored in the memory
pointed by destination address. After each data transfer current address
registers
are decremented or incremented according to current settings. The
channel 1 current word count register is also decremented by 1 after
each data transfer. When the word count of channel 1 goes to FFFFH, a TC
is generated which activates EOP output terminating the DMA service.
AUTOINITIALIZE
In
this mode, during the initialization the base address and word count
registers are loaded simultaneously with the current address and word
count registers by the microprocessor. The address and the count in the
base registers remain unchanged throughout the DMA service.
After
the first block transfer i.e. after the activation of the EOP signal,
the original values of the current address and current word count
registers are automatically restored from the base address and base word
count register of that channel. After auto initialization the channel
is ready to perform another DMA service, without CPU intervention.
DMA CONTROLLER
The controller
is integrated into the processor board and manages all DMA data
transfers. Transferring data between system memory and an 110 device
requires two steps. Data goes from the sending device to the DMA
controller and then to the receiving device. The microprocessor gives
the DMA controller the location, destination, and amount of data that is
to be transferred. Then the DMA controller transfers the data, allowing
the microprocessor to continue with other processing tasks. When a
device needs to use the Micro Channel bus to send or receive data, it
competes with all the other devices that are trying to gain control of
the bus. This process is known as arbitration. The DMA controller does
not arbitrate for control of the BUS instead; the I/O device that is
sending or receiving data (the DMA slave) participates in arbitration.
It is the DMA controller, however, that takes control of the bus when
the central arbitration control point grants the DMA slave's request.
Chapter : Introduction to Computer
Chapter : Introduction to Computer
- Computer Fundamental
No comments:
Post a Comment