Network BasicsTrouble ShootingIndexPage Overview
Windows95Windows98NT4 WorkstationNT4 ServerWindows 2000

Interrupts

In a PC, the CPU is the active component, controlling all other parts.
The CPU is communicating with all other devices, like: keyboard, mouse, Modem, printer,....
It is the responsibility of the CPU to process in time any request coming via one of the devices from the user, for example: the user moved the mouse, now the position of the mouse-cursor needs to be updated on the screen.

There are 2 methods to organize this, which I have visualized in 2 (fairly large) animation's:

1) Polling:

The CPU stops in regular interval to process the user-program to check now with EVERY connected device, if an action of the CPU is required.
This is a very ineffective method, since this checking takes up substantial processing time.

2) Interrupts

Much more efficient is the method to assign to each device a "ringer".
This allows the CPU to continuously process the User-Program. If a device needs now to be handles, it uses the "ringer" to send an alarm system to the CPU. The CPU interrupts now its current activity and handles the request of the interrupting device.

This is the theory, lets look at the actual implementation on a PC.
And here we are today still suffering from the first design of the
IBM PC:

On the IBM PC (based on the 8088 CPU),
IBM used the "8259 Interrupt Controller",
allowing 8 interrupt-signals (numbered 0 to 7)
to be generated.

Since some of these 8 Interrupts were already used by the internal devices of the PC, IBM improved (a little) the design by adding on the IBM AT a SECOND
Interrupt-controller:

The design of the IBM AT includes
2 Interrupt-controller, where the 2nd
controller is "cascaded" into the
Interrupt-line 2 of the first controller.
The Interrupt-lines on the second controller
are numbered from 8 to 15.

Due to this "cascading", the Interrupt-line 2
is NOT available. However: for compatibility
with the original PC, the Interrupt-line 2 is
connected to the Line 9 on the 2nd controller.
(So, if a device on your PC is configured for
Interrupt 2, it really uses Interrupt 9).


These Interrupt lines are called: "Interrupt Request Lines" or IRQ's.

On Windows95, you can view the the list of IRQ assignment in the System-Applet of the Control-Panel, tab: Device-Manager by double-clicking on "Computer":



Now the bad news:
A lot of these IRQ-lines are already in use:

IRQ: Used by: Comment:
0 System-Timer Not Available
1 Keyboard Not Available
2 cascade to 2nd Controller Not Available
3 Serial port: COM2 if COM2 is installed: Not available
if COM2 is NOT installed: available
4 Serial port: COM1 since COM1 is installed and used on
Most systems: Not available
5 free was reserved by IBM for Parallel-Port LPT2,
but since few few people have LPT2: available
Warning: The sound-card may already use it
6 Floppy disk controller Not Available
7 LPT1 Printer-port 1, which is used on almost every system
on Windows95: Not available
on Windows NT4: available
8 Real Time Clock Not Available
9 free available
10 free available
Warning: The sound-card may already use it
11 free  
12 PS-2 Mouse-Port if you have a PS-2 mouse-port and use it:Not Available
If you do NOT have it or have deactivated it:available
13 FPU Math-Coprocessor Not Available
14 primary harddisk
IDE controller
Not Available
(unless you have ONLY SCSI-disks and CD-ROMS)
15 secondary harddisk
IDE controller
usually, a ATAPI-CD-ROM is connected on this
Secondary IDE-harddisk controller:Not Available
(do NOT connected your Harddisk and CD-ROM on the
same IDE-disk controller, it will dramatically slow
down your harddisk performance !)


Network-Boards (NIC's) are very often configured for IRQ: 5 or 10
(watch it: your sound-card may use it already !)

In general, each device needs its own IRQ-line NOT SHARED with any other device !


Exception 1) very often, COM3 is using IRQ4 (same as COM1) and COM4 is
using IRQ3 (same as COM2). That is accepted by Windows95 and works, as
long as these ports sharing the IRQ-line are NOT used simultaneous !


Exception 2) If the driver supplied with the card supports it, modern PCI-devices
are able to share an IRQ
, if supported by the Operating system (like: Windows98)