ARCHIVED: On a PC, what is an Interrupt Request number?

This content has been archived, and is no longer maintained by Indiana University. Information here may no longer be accurate, and links may no longer be available or reliable.

An Interrupt Request is a signal from a hardware device on your computer to your CPU. When a hardware device needs the CPU to do something (such as move the cursor as you move the mouse), the device sends an Interrupt Request to the CPU. Since a CPU can get several of these Interrupt Requests at once from various devices along the same path (e.g., the serial port or the PCI bus), it needs a way to distinguish between them. To do so, the computer assigns an Interrupt Request number (the IRQ number) to each device and its path to the CPU.

The Interrupt Request made through the device's IRQ number signals the CPU that the device has a request that needs processing. (A hardware device that needs attention from the CPU is often referred to as "needing servicing".) IRQ numbers are assigned during the boot process to each hardware device that needs one.

A device requires an IRQ number if it is able to provide input to the CPU or start an action. The IRQ number is a numeric way to assign the priority that the devices have with the CPU. The lower the value of the IRQ number, the more important the need for the input or action to take place. Some devices that are assigned IRQ numbers include the disk drive controllers (floppy and hard disk), mouse, keyboard, and sound card.

An IRQ conflict happens when two devices attempt to use the same IRQ number, and the operating system or motherboard has no mechanism for accommodating this. These conflicts were common in older versions of Windows, but occur only rarely in modern versions of the operating system. IRQ conflicts result in errors because the CPU can't figure out which device really owns the IRQ number. An IRQ conflict can cause problems severe enough to freeze, or lock up, your computer.

However, since the introduction of Windows 2000, true IRQ conflicts have been extremely rare, for the reasons listed below. Due to advances in the operating system, the old advice about IRQ sharing that was applied to Windows 95, 98, Me, and NT no longer holds true; that is, you should not attempt to solve IRQ conflicts in Windows 2000 and XP by manually assigning devices different IRQ numbers, as those devices are supposed to be sharing IRQ numbers. In Windows 2000 and XP, manually forcing IRQ assignments will interfere severely with how the operating system works.

To correct an IRQ conflict in an older version of Windows, you will need to change the IRQ number on one of the devices to an unused IRQ number. You can make this correction one of several ways, including changing jumpers or micro-switch positions on the device, making changes in the software setup for the device, or making changes in the device manager. For more information, see ARCHIVED: In Windows, what is the Device Manager, and how can I use it?

IRQ conflicts are less of an issue with modern versions of Windows for the following reasons:

  • The introduction of PCI/IRQ steering in Windows 95 OSR2 provided a mechanism for graceful sharing of IRQs between devices.
  • The full acceptance of Plug and Play by hardware manufacturers led them to design their devices and drivers to be more flexible about the IRQs they would accept.
  • The continual development of the Advanced Configuration and Power Interface standard (ACPI) has allowed the development of motherboard BIOSes and operating systems that accept IRQ numbers above 15.

In Windows 2000 and XP, with motherboards that have an Advanced Programmable Interrupt Controller (APIC), up to 24 IRQs are available. The ACPI standard itself theoretically allows for up to 255 virtual interrupts by mapping a virtual interrupt table to a single IRQ (usually IRQ 9 or 11), and letting Windows rather than the BIOS determine the priority of a device's interrupt request.

Typical IRQ assignments for a PC

The list below indicates some of the typical IRQ assignments for a PC:

IRQ # Device
0 System timer
1 Keyboard
2 Cascade from IRQ 9
3 COM port 2 or 4
4 COM port 1 or 3
5
Parallel (printer) port 2 or sound cards
6 Floppy drive controller
7 Parallel (printer) port 1
8 Real time clock
9 Video
10 Open
11 Open
12 PS/2 mouse
13 Coprocessor
14
Primary IDE controller (hard drives)
15
Secondary IDE controller (hard drives)

This is document ailq in the Knowledge Base.
Last modified on 2018-01-18 12:46:12.