Minecrafting

07/21/2014

Share Strip
   7 dislikes 8 likes
Tie: How come you haven't been playing Minecraft lately?
Guy: I have just been way too busy working on my new house.
Tie: Typical 'my real life minecrafting is more important than my virtual minecrafting' excuses. 

© Jonathan Kroupa 2014
[ first ]    [ prev ]    [ random ]    [ next ]    [ last ]   


View Comments (0)

[You must be logged in to add comments.]

The Old Days of IRQ Management.

posted by : Jon Kroupa on 04/23/2014

A long time ago, people had to worry about interrupt requests on their hardware (IRQs). A IBM-compatible PC had 16. From Wikipedia

**Master PIC**
    IRQ 0 — system timer
    IRQ 1 — keyboard controller
    IRQ 2 — cascaded signals from IRQs 8–15;
    IRQ 3 — serial port 2
    IRQ 4 — serial port 1
    IRQ 5 — parallel port 2 or sound card;
    IRQ 6 — floppy disk controller;
    IRQ 7 — parallel port 1.

**Slave PIC**
    IRQ 8 — RTC Timerglc
    IRQ 9 — free
    IRQ 10 — free
    IRQ 11 — free
    IRQ 12 — mouse on PS/2 connector;
    IRQ 13 — CPU co-processor
    IRQ 14 — primary ATA channel;
    IRQ 15 — secondary ATA channel;

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.

   7 dislikes 11 likes