2-PORT RS-232/422/485 PCI HOST ADAPTER

Appendix A: Interrupt Handling

A.1 The Purpose and Early History of Interrupts

A good analogy of a PC interrupt would be the phone ringing. The phone “bell” is a request for us to stop what we are currently doing and take up another task (speak to the person on the other end of the line). This is the same process the PC uses to alert the CPU that a task must be preformed. The CPU upon receiving an interrupt makes a record of what the processor was doing at the time and stores this information on the “stack”; this allows the processor to resume its predefined duties after the interrupt is handled, exactly where it left off. Every main sub-system in the PC has its own interrupt, frequently called an IRQ (short for Interrupt ReQuest).

In these early days of PCs, the ability to share IRQs was an important feature for any add-in I/O card. Consider that in the IBM XT the available IRQs were IRQ0 through IRQ7. Of these interrupts only IRQ2-5 and IRQ7 were actually available for use. This made the IRQ a very valuable system resource. To make the maximum use of these system resources, an IRQ-sharing circuit was devised that allowed more than one port to use a selected IRQ. This worked fine as a hardware solution but presented the software designer with a challenge to identify the source of the interrupt. The software designer frequently used a technique referred to as “round-robin polling.” This method required the interrupt service routine to “poll” or interrogate each UART as to its interrupt-pending status. This method of polling was sufficient for use with slower-speed communications, but as modems increased their throughput abilities this method of servicing shared IRQs became inefficient.

24

Page 25
Image 25
Black Box IC187C, IC133C-R2 manual Appendix a Interrupt Handling, Purpose and Early History of Interrupts