In a
computer
A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
, an interrupt request (or IRQ) is a hardware signal sent to the processor that temporarily stops a running program and allows a special program, an
interrupt handler
In computer systems programming, an interrupt handler, also known as an interrupt service routine (ISR), is a special block of code associated with a specific interrupt condition. Interrupt handlers are initiated by hardware interrupts, software ...
, to run instead. Hardware interrupts are used to handle events such as receiving data from a
modem
The Democratic Movement (, ; MoDem ) is a centre to centre-right political party in France, whose main ideological trends are liberalism and Christian democracy, and that is characterised by a strong pro-Europeanist stance. MoDem was establis ...
or
network card, key presses, or mouse movements.
Interrupt lines are often identified by an index with the format of ''IRQ'' followed by a number. For example, on the
Intel 8259 family of
programmable interrupt controllers (PICs) there are eight interrupt inputs commonly referred to as ''IRQ0'' through ''IRQ7''. In
x86 based
computer systems that use two of these
PICs, the combined set of lines are referred to as ''IRQ0'' through ''IRQ15''. Technically these lines are named ''IR0'' through ''IR7'', and the lines on the
ISA bus to which they were historically attached are named ''IRQ0'' through ''IRQ15'' (although historically as the number of hardware devices increased, the total possible number of interrupts was increased by means of cascading requests, by making one of the IRQ numbers cascade to another set or sets of numbered IRQs, handled by one or more subsequent controllers).
Newer
x86 systems integrate an
Advanced Programmable Interrupt Controller (APIC) that conforms to the Intel APIC Architecture. Each Local APIC typically support up to 255 IRQ lines, with each I/O APIC typically support up to 24 IRQ lines.
During the early years of personal computing, IRQ management was often of user concern. With the introduction of
plug and play devices this has been alleviated through automatic configuration.
Overview
When working with personal computer hardware, installing and removing devices, the system relies on interrupt requests. There are default settings that are configured in the system
BIOS and recognized by the operating system. These default settings can be altered by advanced users. Modern
plug and play technology has not only reduced the need for concern for these settings, but has also virtually eliminated manual configuration.
x86 IRQs
Early PCs using the Intel 8086/8088 processors only had a single PIC, and are therefore limited to eight interrupts. This was expanded to two PICs with the introduction of the 286 based PCs.
Typically, on systems using the
Intel 8259 PIC, 16 IRQs are used. IRQs 0 to 7 are managed by one Intel 8259 PIC, and IRQs 8 to 15 by a second Intel 8259 PIC. The first PIC, the master, is the only one that directly signals the CPU. The second PIC, the slave, instead signals to the master on its IRQ 2 line, and the master passes the signal on to the CPU. There are therefore only 15 interrupt request lines available for hardware.
On APIC with
IOAPIC systems, typically there are 24 IRQs available, and the extra 8 IRQs are used to route PCI interrupts, avoiding conflict between dynamically configured PCI interrupts and statically configured ISA interrupts. On early APIC systems with only 16 IRQs or with only Intel 8259 interrupt controllers, PCI interrupt lines were routed to the 16 IRQs using a PIR (PCI interrupt routing) table integrated into the BIOS. Operating systems such as
Windows 95 OSR2 may use PIR table to process PCI IRQ steering; later, the PIR table has been superseded by the
ACPI _PRT (PCI routing table) protocol. On APIC with
MSI systems, typically there are 224 interrupts available.
The easiest way of viewing this information on
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
is to use
Device Manager or
System Information (msinfo32.exe). On
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, IRQ mappings can be viewed by executing
cat /proc/interrupts
or using the
procinfo
utility.
Master PIC
* IRQ 0
system timer (cannot be changed)
* IRQ 1
keyboard on
PS/2 port (cannot be changed)
* IRQ 2
8259 interrupt controller; cascaded signals from IRQs 8–15
* IRQ 3
serial port
A serial port is a serial communication Interface (computing), interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in Pa ...
controller for
serial port
A serial port is a serial communication Interface (computing), interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in Pa ...
2 (shared with serial port 4, if present)
* IRQ 4 serial port controller for serial port 1 (shared with serial port 3, if present)
* IRQ 5
parallel port 3 or
ISA sound card
* IRQ 6
floppy disk controller
* IRQ 7 parallel port 1 (shared with parallel port 2, if present). It can also be potentially be shared with a secondary ISA sound card with careful management of the port.
Slave PIC
* IRQ 8
real-time clock (RTC)
* IRQ 9
Advanced Configuration and Power Interface (ACPI) system control interrupt on Intel chipsets.
And/or left for the use of peripherals (use depends on OS)
* IRQ 10 The interrupt is left for the use of peripherals (for example,
SCSI or
NIC)
* IRQ 11 The interrupt is left for the use of peripherals (for example, SCSI or NIC)
* IRQ 12
mouse
A mouse (: mice) is a small rodent. Characteristically, mice are known to have a pointed snout, small rounded ears, a body-length scaly tail, and a high breeding rate. The best known mouse species is the common house mouse (''Mus musculus'' ...
on
PS/2 port
* IRQ 13 CPU
co-processor or integrated
floating point unit or
inter-processor interrupt (use depends on OS)
* IRQ 14 primary
ATA channel (ATA interface usually serves
hard disk drive
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating hard disk drive platter, pla ...
s and
CD drives)
* IRQ 15 secondary ATA channel
Conflicts
In early IBM-compatible
personal computer
A personal computer, commonly referred to as PC or computer, is a computer designed for individual use. It is typically used for tasks such as Word processor, word processing, web browser, internet browsing, email, multimedia playback, and PC ...
s, an ''IRQ conflict'' is a once common hardware error, received when two devices were trying to use the same interrupt request (or IRQ) to signal an interrupt to the
Programmable Interrupt Controller (PIC). The PIC expects interrupt requests from only one device per line, thus more than one device sending IRQ signals along the same line will generally cause an IRQ conflict that can freeze a
computer
A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
.
For example, if a
modem
The Democratic Movement (, ; MoDem ) is a centre to centre-right political party in France, whose main ideological trends are liberalism and Christian democracy, and that is characterised by a strong pro-Europeanist stance. MoDem was establis ...
expansion card
In computing, an expansion card (also called an expansion board, adapter card, peripheral card or accessory card) is a printed circuit board that can be inserted into an electrical connector, or expansion slot (also referred to as a bus sl ...
is added into a system and assigned to IRQ4, which is traditionally assigned to the
serial port
A serial port is a serial communication Interface (computing), interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in Pa ...
1, it will likely cause an IRQ conflict. Initially, IRQ 7 was a common choice for the use of a
sound card, but later IRQ 5 was used when it was found that IRQ 7 would interfere with the
printer port (
LPT1). The
serial port
A serial port is a serial communication Interface (computing), interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in Pa ...
s are frequently disabled to free an IRQ line for another device. IRQ 2/9 is the traditional interrupt line for an MPU-401 MIDI port, but this conflicts with the
ACPI system control interrupt (SCI is hardwired to IRQ9 on Intel chipsets);
this means ISA
MPU-401
The MPU-401, where ''MPU'' stands for MIDI Processing Unit, is an important but now obsolete interface for connecting MIDI-equipped electronic music hardware to personal computers. It was designed by Roland Corporation, which also co-authored the ...
cards with a hardwired IRQ 2/9, and MPU-401 device drivers with a hardcoded IRQ 2/9, cannot be used in interrupt-driven mode on a system with ACPI enabled.
In some conditions, two
ISA devices could share the same IRQ as long as they were not used simultaneously. To solve this problem, the later
PCI bus allows for IRQ sharing.
PCI Express
PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
does not have physical interrupt lines, and uses
Message Signaled Interrupts (MSI) to the
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s if available.
See also
*
Advanced Programmable Interrupt Controller (APIC)
*
Programmable Interrupt Controller (PIC)
*
Intel 8259
*
Interrupt handler
In computer systems programming, an interrupt handler, also known as an interrupt service routine (ISR), is a special block of code associated with a specific interrupt condition. Interrupt handlers are initiated by hardware interrupts, software ...
*
Plug and play
*
Polling
*
Interrupt
In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
References
Further reading
* Gilluwe, Frank van. ''The Undocumented PC, Second Edition'', Addison-Wesley Developers Press, 1997.
*
* Solari, Edward. ''PCI & PCI-X Hardware and Software Architecture & Design, Sixth Edition'', Research Tech Inc., 2004.
External links
Intel 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A: System Programming Guide, Part 1, chapter 6more information on Intel 64 and IA-32 interrupt handling
{{DEFAULTSORT:Interrupt Request
Interrupts