Go to Home Page GuidesHow to ArticlesReviewsForumsFrequently Asked QuestionsNewsLinksPotpourri

Site Search

 

FREQUENTLY ASKED QUESTIONS
IRQs - Interrupt Requests

Last updated: 10/3/2003

8/7/00 Like so many things, I intend to build on and word-smith this FAQ as time goes on and may convert it into a full-fledged article.   The titles "Know Your IRQs" and "Plug 'n Prey" keep resonating as things that need to be treated in depth and in understandable language.  Larry

Q.  What is an IRQ or Interrupt request?

A.  An IRQ is is really an Interrupt Request line.  In the case of expansion boards, it is an actual contact (finger) on the board, and it is a corresponding pin in the sockets on the bus connected by a trace on the motherboard.  A device sends a interrupt to the motherboard's interrupt circuitry by changing the voltage level on the interrupt request line.  This voltage change acts via interrupt controller circuitry to interrupt the processor to service the device needing the CPU's attention.  Simply put, if, for example, a serial port is receiving data from a MODEM, it can't wait until it's buffer overflows for the CPU, etc. to come to its assistance.   The CPU will then temporally store the program and data it is working on in an area of memory know as the stack and load a routine (program) to service the interrupting device, service the device (move that data out of its buffer, etc.), and then restore the program and data it was previously working on and resume what it was doing.  A CPU can be interrupted many times a second--a marvelously complicated affair when one considers that a CPU can be working on one interrupt request and be interrupted in this task by still another IRQ request of a higher priority, etc., and that it usually does all of this juggling without losing a beat or data.

The IRQ structure in today's PC's goes all the way back to the Intel 8086 processor and the Intel 8259 Programmable Interrupt Controller (I remember working with this combination in 1979).  The 8259 can control eight IRQ lines. When IBM came out with the XT computer with an 8080 processor and 8-bit expansion bus, it used one 8259, the top chip.  Later IBM came out with the 286 AT computer with an a 16-bit expansion bus and two 8259's as shown.  The INT signal (Interrupt--prioritized interrupt) of the second 8259 was connected to the old IRQ2 pin on the first 8259 and the IRQ 2 line was plugged into IRQ 9 on the new 8259.  The old 8-bit bus lives on in the 16-bit ISA expansion slot on your PC, which is really an expanded 8-bit socket with additional pins to bring it to 16-bits in front of it.  And the old 16 IRQ structure still governs those PCI slots.  Of course, the functions of 8259 have long since be incorporated into the large chipsets on today's motherboards.

IRQs are prioritized and serviced in priority order by the CPU as determined by the controller.  As IRQs 8 through 15 trigger IRQ2 on the top 8259, thus, they have a higher priority than IRQs 3 through 7.  Any expansion board that is set to use IRQ 2 is really using IRQ 9.  Some boards lable/depict it as IRQ 2, others IRQ 9, and still others IRQ 2/9.  No matter what it is called, one must not set two ISA boards to the very same IRQ.

Q.  What are the IRQ assignments in the average PC?

A.

IRQ USUAL FUNCTION/DEVICE
0 System Timer
1 Keyboard
2 2nd IRQ controller
3 COM2:
4 COM1:
5 Free (used by LPT2: or sound card)
6 Floppy disk
7 LPT1:
8 Real Time Clock (RTC)
9 Free (may be labeled/appear as IRQ 2)
10 Free (often used by sound cards)
11 Free
12 PS/2 mouse
13 Math coprocessor on CPU (used)
14 Primary IDE
15 Secondary IDE

Q.  What is an interrupt conflict?

A.  When two or more devices/expansion boards have been assigned (or grab) the same IRQ.

Q. What are the standard COM port addresses (serial ports) in DOS and Windows?

A.

Port
I/O Address
IRQ
COM1:
3F8h
4
COM2:
2F8h
3
COM3:
3E8h
4
COM4:
2E8h
3

Q. What's wrong with the standard COM port addresses?

A. Note the IRQs. Also, note that COM2: has a higher priority than COM1:. If, for example, serial 1 on a motherboard is enabled and you have a MODEM in the computer set to COM3:, there could be interrupt conflict problems. Those are the reasons I like to disable serial 2 in motherboard CMOS Setup and set internal MODEMs to COM2: I have seen a lot of computers come into my shop with MODEMs set to COM3: accompanied by customers wondering why they have problems connecting to and using the Internet.

Copyright, Disclaimer, and Trademark Information Copyright © 1996-2006 Larry F. Byard.  All rights reserved. This material or parts thereof may not be copied, published, put on the Internet, rewritten, or redistributed without explicit, written permission from the author.