The Old Days of IRQ Management.posted by : Jon Kroupa on 04/23/2014Share Post A long time ago, people had to worry about interrupt requests on their hardware (IRQs). A IBM-compatible PC had 16. From Wikipedia
So looking at the list, we had a lot of required hardware (system timer, keyboard, RTC Timerglc, mouse, co-processor, primary and secondary ATA channel). One thing that is suspiciously absent here is a video card. Additionally we had common but ultimately optional hardware (serial ports 1 & 2, parallel port 1) and then uncommon hardware (parallel port 2). So assuming a standard configuration of a PC with two serial ports and a parallel port, that leaves IRQ 5, 9, 10, and 11 for expansion. One of those has to go to video card (I want to say mine was usually 9 or 10). 5 traditionally goes to the sound card. If you add an internal modem, that needs one (10) and a network card takes the renaming IRQ 11. Get two devices on the same IRQ and you will likely freeze your computer. So when you run out you need to get creative. Since I had an internal modem and didn't use any serial devices and didn't own a printer, I disconnected and disabled those on the motherboard, freeing up 3 IRQs (3, 4 and 7). Back when you could control IRQ assignment, I probably moved my modem to IRQ 4. My computer also had USB ports, so at least 1 IRQ was taken for USB (but possibly two). Along comes 3DFX, the expansion card, and of course it requires an IRQ. So I'm at full capacity. But then I want more hard drives, and I'm out of space, so I need an IDE expansion card. I'm kind of out of luck. Then comes Windows XP and it's APIC system. Because everything was moving away from ISA to PCI, it meant a few things could change. One was that the operating system could decide the best IRQ placement for devices and not the physical hardware or motherboard. It also meant devices could share IRQs. When I installed Windows XP I went through the process of then loading each device driver. First the video card, then the sound card, then the network card, then the modem, then the IDE expansion card. Around the time I installed the modem (and rebooted). I noticed static on the Windows startup music. It wasn't there before. I uninstalled the modem, and it went away. After poking around in the device manager I discovered that Windows XP not only had IRQ sharing, but it was very aggressive about it. Instead of only sharing IRQs when I had none available, it instead decided to place 5 devices on one IRQ. These were the video card, sound card, IDE expansion card, the network card, and the modem. I guess something started to break down at that point, because after 3 devices were sharing the same IRQ as the sound card, it would start to emit static when playing certain sounds. My motherboard BIOS allowed my to override the PCI slots with IRQ settings, but because ACPI was running it wouldn't listen to it. I lived with this condition for a long time, but eventually I disabled ACPI in the BIOS and installed Windows XP without it. This allowed me to control IRQ assignment via the BIOS and eliminate the static, but this caused other issues, so I had to go back to APIC. So I just lived with it some more. These days everything is controlled by APIC, and I don't believe it is possible to install Windows without APIC enabled. But that's okay. I haven't had that static issue since I decided I no longer wanted to pay a premium for Creative sound cards, and just use the onboard one. In fact, since so many things moved to the motherboard (IDE expansion turned into 8+ SATA ports, onboard sound, onboard network, even video, if you want it) the only expansion card in my computer is a video card. And I don't seem to have that static issue anymore, so I guess all this knowledge and experience is moot. [ Gamers: Then and Now ]   [You must be logged in to add comments.] |