Plug and Play Resource Allocation
By Stephen Bucaro
Your computer has many devices connected to it. Your key board is a device. Your
mouse is a device. Your modem is a device. Even a port, like a USB port, is a device.
You can add a device to your computer by installing it into an expansion connector
on the the motherboard of the computer. In order to operate, resources need to be
allocated to the device.
One of the most important resources a device needs is an Interrupt Request (IRQ) line.
An IRQ signals the processor that the device needs attention. For example, each time
you press a key on your keyboard, an IRQ is sent to let the processor know that the
keyboard needs attention. A device also needs to be allocated a set of memory addresses
where commands can be sent to it and it can send responses.
Many devices need to be allocated an area of memory to store data and/or a Direct
Memory Access (DMA) channel. A DMA channel allows a device to create a data stream
directly between it and the computers memory without passing through the processor.
One of the most important structures in a computer is the system bus located on the
motherbord. The processor, chipset, memory, and expansion slot devices communicate over
the bus. Early PCs used a bus called Industry Standard Architecture (ISA). When you
installed an expansion card into the ISA bus, you had to set IRQs and other resources
with jumpers and/or DIP switches on the card. ISA devices cannot share resources,
each ISA device must have its own IRQ.
• You can have
more than one ISA device configured for the same IRQ, as long as only one of the device
drivers is loaded at any one time; otherwise, you'll get an IRQ conflict.
Since a computer has only a limited amount of resources, the number of devices that
a computer could support is limited. One of the most limited resources is IRQ lines.
A PC has only 16 IRQs. Common devices such as the keyboard, mouse, floppy drive, and
hard drive use a standard set of resources.
|Standard IRQ assignments|
|2||IRQ Controller 2|
In 1993, Microsoft and Intel developed Plug and Play (PnP) to solve this problem.
One of the main structures supporting PnP is the Peripheral Component Interconnect (PCI)
bus. Along with a PCI bus, the computers BIOS, operating system, and hardware devices
must be PnP compliant. One of the key features of PnP is that when installing a PCI
card, you do not need to use jumpers of DIP switches to set the IRQ or I/O address
for the card, the PCI bus controller does this for you.
The Windows 2000/XP operating system component responsible for PnP is the Advanced
Configuration and Power Interface (ACPI). ACPI allows devices to be controlled by
the operating system to perform power management. ACPI may put a device in a power
saving state such as Standby, Suspend or Off. ACPI also allows dynamic handling of
events like the addition or removal of a USB device.