|
IRQs And I/O
Addresses
Keep a record of the
maintenance done on a computer, as well as the configuration information
about that machine printed or on disk. In this notebook, dedicate a page
to record the IRQ and I/O address assignments for the machine. When you
decide to add a new device, the IRQs available for the device are at your
fingertips if you keep the notebook up-to-date. Conflicts with interrupts
arise when two peripherals have been assigned the same IRQ.
For example, because
DOS does not use IRQ 7 to communicate with the printer, many older LAN
cards are configured to use IRQ 7. However, Windows does use IRQ 7 to
communicate with the printer. Therefore, if you are using Windows with a
LAN card that uses IRQ 7, a conflict arises. You usually can solve these
conflicts by changing the IRQ for the LAN card. Usually the card has a DIP
switch or jumper that can change the IRQ.
In this situation, if
you are using Windows 9x, the Plug-and-Play feature might not help you
because the older LAN card is not Plug-and-Play. Even with Windows 9x, you
might still need to assign the IRQ manually by setting the DIP switch on
the board and informing Windows 9x of what you have done. Newer buses are
designed to allow more than one device to share an IRQ.
I/O Address Table
The
I/O address table, which is sometimes
called the interrupt descriptor table, is an area at the beginning of RAM
from 0000 to 03FFh (the table can take up more room if needed). Earlier
PCs used a 4-byte table, called the interrupt
vector table, which contained only the location in memory of
the program that serviced the device issuing the
interrupt.
Beginning with 286
computers, the interrupt vector table was expanded to hold not only the
memory address of the program that services the device, but also the
addresses of data passed between the CPU and the device, as well as the
commands (called tasks) communicated to the device. The I/O address table
serves as the place where the CPU and the peripheral device communicate
and it functions like a drop box or pick-up desk. Each device is assigned
a range of I/O addresses that can be used by only a single device. If two
devices try to share the same address, conflicts arise.
The ROM BIOS requests
an I/O address during the boot process for a device. If two devices use
the same I/O address, they cannot be installed on the same computer unless
one of the devices can be assigned an alternative address by changing the
device configuration.
The program that
services the device is called the interrupt
handler. This program can be a device driver stored in RAM,
part of System BIOS, or part of ROM BIOS stored on the device controller.
During booting, the I/O address range is assigned to a device, and the
location of the interrupt handler is stored in a coded format in part of
those I/O addresses.
The I/O addresses in
the I/O address table can be accessed by the operating system to store
data or tasks passed between the CPU and the device. An interrupt or IRQ
can prompt the CPU to service a device, receive data, or perform other
operations.
<Previous>
<Home>
<Next>
|