Introduction to Plug and Play Devices

For years, Windows has benefited from Plug and Play Devices where you install or connect a device, and the device is automatically recognized and configured, and the appropriate driver is installed. Today, this technology has been expanded beyond expansion cards to include other technologies.

Intel and Microsoft released Plug and Play in 1983. For a computer technician, PnP made life a lot easier because you did not have to worry about setting DIP switches or jumpers on the card.

Now, most devices are PnP, and it has been expanded beyond expansion cards to include USB, IEEE 1394 (also known as Firewire), and SCSI devices. Today, if you use PnP hardware combined with a PnP operating system such as Windows, you can plug in the hardware, and Windows will automatically recognize the device, load the appropriate driver, and configure it to work without interfering with other devices. When a driver cannot be found, Windows will prompt you to provide a media or path to the driver, or it may even ask if you want to connect to the Internet in an attempt to find one. You can also open the Control Panel, click Hardware, and select Add a device under the Devices and Printers section. It will then search for any devices that are not currently recognized by Windows. Eventually, the device driver will be added to the driver store.

As part of the configuration process, Windows assigns the following system resources to the device you are installing so that the device can operate at the same time as other expansion cards:

  • Interrupt request (IRQ) line numbers: A signal sent by a device to get the attention of the processor when the device is ready to accept or send information. Each device must be assigned a unique IRQ number.
  • Direct memory access (DMA) channels: Memory access that does not involve the processor.
  • Input/output (I/O) port addresses: A channel through which data is transferred between a device and the processor. The port appears to the processor as one or more memory addresses that it can use to send or receive data.
  • Memory address ranges: A portion of computer memory that can be allocated to a device and used by a program or the operating system. Devices are usually allocated a range of memory addresses.