Expansion Bus Configuration
Bus or expansion card configuration refers to the assigning
of system resources (DMA channels, IRQs, and I/O addresses)
for each device that is added to your system.
When configuring a device for the computer,
you have to tell it which IRQ to use when it wants to get the
attention of the CPU. It has to be assigned a segment in memory
(I/O address) where it can exchange information with the rest
of the computer. If it has the capability of handling its own
data transfers, it needs to know which DMA channel it can use.
These resources used to be assigned manually, by moving an array
of jumpers on the circuit board or setting DIP switches. Because
of the possibility of literally hundreds, or even thousands,
of different configurations, the device's manual is essential.
Sometimes, the information may be silk-screened onto the board.
(But I can just about guarantee it won't be, if you don't have
It should be fairly obvious that different
devices shouldn't have the same IRQ, DMA channel, or I/O address.
When the computer boots up, the BIOS checks any installed card
for the jumper settings and places that configuration information
into a specific area in memory (the first 64K of available memory)
known as the vector table. This is where the CPU looks to find
configurations, and two devices with the same settings will
cause problems. If two devices are configured to use the same
IRQ, for example, the CPU would only get confused as to which
one is requesting its attention. Then, only one of the devices
may work properly, or neither may work. Your computer may freeze
up, or it may not even boot properly. This is an IRQ conflict,
and can be difficult to find and resolve. In a very few situations,
certain, similar devices can share the same IRQ as long as they
aren't used at the same time.
Each device must have its own I/O address
and DMA channel (if it requires one) for the same reason, or
resource conflicts will make the device unusable, or stop your
computer dead in its tracks. Because these resources are limited,
and some are reserved by the system, it sometimes took long
sessions of trial and error and experimentation to properly
configure some devices manually, using DIP switches or jumpers.
Today, configuration can be done through software
programs that come with the device, or Plug And Play (which
is supposed to assign these resources automatically when your
computer boots up). For PNP to operate properly, your device
must be PNP, your BIOS must be PNP, and your operating system
must be Plug And Play compatible (Windows95+). Another problem
that can arise here is when the technologies overlap. Say, the
device has jumpers set, but the user is trying to configure
it through software. Or maybe, the resources are allocated through
software, and when you reboot your machine, PNP reconfigures
the device. Problems and resource conflicts can also arise with
Plug And Play when all the requirements for PNP are not met.
Any device that is not Plug And Play is now
called a legacy device. When a computer boots up, the settings
for these devices are allocated first (forced settings) so that
the system knows what resources are left for Plug And Play devices.