An IRQ is a signal from a piece of hardware (such as a keyboard or sound card) indicating that it needs the CPU to do something. The interrupt request signals run along the IRQ lines to an interrupt controller that assigns priorities to incoming IRQs and delivers them to the CPU. Since the interrupt controller expects signals from only one device per IRQ line, if you have more than one device sending IRQ signals along the same line, you get an IRQ conflict that can lock your system.
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 (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. 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.
|