|
DMA Controller Chip
A resource a device
might request from the system is a DMA (direct
memory
access)
channel. A chip on the
systemboard contains the DMA logic. The DMA
controller on a systemboard is part of the chip set and
provides faster memory access because it handles the movement of data in
and out of RAM without involving the CPU.
During startup,
hardware devices are assigned IRQs and I/O addresses, and have blocks of
memory assigned to their System BIOS programs or device drivers. The DMA
chip provides channels that a device can use for fast access when sending
data to memory. The DMA chip does this by bypassing the CPU.
Each DMA channel
requires two lines to manage it, one for the DMA controller to request
clearance from the CPU and the other used by the CPU to acknowledge that
the DMA controller is free to send data over the data lines without
interference from the CPU.
DMA channel 4 cascades
into the lower DMA channels. DMA channels 0–3 use the 8-bit ISA bus, and
DMA channels 5, 6, and 7 use the 16-bit ISA bus. This means that the lower
four channels provide slower data transfer than the higher channels
because they don’t have as many data paths available. Also, an 8-bit
expansion card that is only using the 8-bit ISA bus cannot access DMA
channels 5, 6, or 7 because it can’t get to these pins on the extended
expansion slot.
Some devices, such as a
hard drive, are designed to use DMA channels while other devices, like the
mouse, are not. Those that use the channels might be able to use only a
certain channel and no other.
The BIOS might have the
option of changing a DMA channel number to avoid conflicts with other
devices. Conflicts occur when more than one device uses the same channel.
DMA channels are not as
popular as they once were because their design makes them slower than
newer methods. However, slower devices such as floppy drives, sound cards,
and tape drives may
still use DMA channels.
Computer Resources
Required By Hardware
Peripheral devices
require some of the system resources in order to operate. Most devices
require one IRQ, although some require more than one and some require
none.
The IRQ points to an
entry in the I/O address table that tells the CPU at what address to find
BIOS or device drivers. Some devices require a DMA channel. These
resources are assigned to the device during the booting process. Think of
the process as a dialog that might go something like this: The startup
BIOS recognizes that a hardware device is present. The BIOS asks the
device, “What resources do you need?”
The device requests, “I
need this IRQ and that I/O address and these addresses in upper memory for
my BIOS.” More cooperative Plug-and-Play devices simply ask, “I need one
IRQ, some I/O addresses, and this many upper memory addresses for my BIOS.
Please tell me the resources I can use.” A device must be the sole owner
of these resources. Problems occur when more than one device attempts to
use the same resource.
Resolving Memory
Conflicts
A peripheral device’s
on-board BIOS can request certain memory addresses either in the I/O
address table for its I/O addresses or in upper memory for its BIOS
software addresses. Some cards are built so that only these addresses
work. When two controller cards require the same memory addresses,
memory conflicts occur. Memory conflicts
can often be resolved if the BIOS or I/O addresses for a peripheral device
can be assigned an alternative memory address. Setting switches on the
controller card or allowing BIOS to make new assignments internally can do
this.
<Previous>
<Home>
<Next>
|