AGP slot — Matrox G450 dual-head
PCI slot 1 — SCSI CD writer
PCI slot 2 — empty
PCI slot 3 — M Audio Audiophile
PCI slot 4 — empty
PCI slot 5 — empty
PCI slot 6 — TC Powercore
My motherboard manual says PCI 4 shares an IRQ with the two USB ports, and that PCI 1 shares with the AGP. My Audiophile currently has an IRQ to itself and so I'm not touching it. However, I need the Powercore to not share an IRQ.
In my BIOS, it's not immediately clear how to specify which IRQ is for which slot, since it only allows me to set each IRQ to 'PCI Slot' or 'Reserve'. I don't understand what reserving means, but I have all the IRQs assigned to PCI, so why do some PCI slots need to share? When I put the Powercore in slot 5 it shares an IRQ with the AGP and SCSI, and in 6 or 2, it shares with the USBs. IRQs 2, 4 and 7 don't seem to be in use at all, so how do I assign IRQ 7 to PCI slot 6? My motherboard manual doesn't mention slot 6 sharing with anything; it states that only slot 1 and 3 share IRQs with other things. This is what baffles me.
I've read Martin Walker's PC Musician article on PCI slots and interrupts from May 2003, but my IRQ table is set out differently to the way Martin describes. I've got a PIRQ table in my manual but I can't make head nor tail of it. If anyone wants to explain what to do I'd really appreciate it.
SOS Forum post
PC music specialist Martin Walker replies: I'm not surprised that you're confused, since, as I explained in the PC Musician article you refer to (you can find it at www.soundonsound.com/sos/may03/articles/pcmusician0503.asp), what determines how the various slots and other PCI devices share their interrupt resources is down to the motherboard manufacturer, and here we enter a mysterious world where each model of motherboard can be different. If a particular expansion slot shares an internal interrupt with another device, this cannot be changed — it will share regardless of what you change in the BIOS or in Windows.
However, remember that the majority of modern expansion card devices will be quite happy to share an IRQ, and if this is the case there's normally only a tiny performance hit if your soundcard (or, in this case, your Powercore card) ends up sharing with something else. Having said that, it is preferable for them to each have their own unique IRQ if possible.
Since your motherboard's Interrupt Request Table is obviously in such a different format from my own, I downloaded it to shed some light on the problem (the IRQ table is reproduced below), especially since this may also help other musicians in deciphering their own IRQ tables. Unfortunately some Abit tables have subsequently proved to have printing errors (the AT7-MAX for instance), but let's assume yours is correct.
The PIRQ signals in the left-hand column are those from the VIA VT8233 chip set on your motherboard — only four unique interrupts are available to PCI slots (PIRQ 0 to 3), but as explained elsewhere in your motherboard manual, you can if you wish assign whatever IRQ number you like to each one using the four 'PIRQ_X Use IRQ No' settings in your BIOS.
The various 'INT' entries in the other columns relating to each of the PCI expansion slots are exactly the same as those I discussed in my feature — each slot has four physical connections to be allocated to up to four interrupt lines, generally given the letter-based names Int A, Int B, Int C and Int D rather than numbers to avoid confusing them with system IRQs.
As I also said previously, if an interrupt is required by any expansion card, like your Powercore, Int A is nearly always assigned, leaving the other three for possible use in a multi-function device. So, for instance, the Audigy 2 soundcard uses A for its main audio/MIDI portion, and B for its IEEE 1394 Host Controller. However, since the majority of cards only require one interrupt, in nearly all cases Int A is the only one to look for in the table. When we do this, we discover that:
PCI slot 1 has Int A assigned to PIRQ 0 (whatever Windows or the BIOS assigns to this). No other PCI slot has Int A assigned to PIRQ 0, but, as you say, and the manual confirms, PCI slot 1 shares an IRQ with the AGP slot, so both your audio expansion cards should avoid this slot if possible;
PCI slot 2 has Int A assigned to PIRQ 3, as does PCI slot 6, so these two will normally share an IRQ as you've already found;
PCI slot 3 has Int A assigned to PIRQ 1, as does PCI slot 4, so these two will share, so leave your Audiophile in PCI slot 3 and keep slot 4 empty if possible;
and PCI slot 5 has Int A assigned to PIRQ 2, and while according to the notes accompanying the printed table this shares an IRQ with the Highpoint HPT 372 chip set, according to your motherboard manual only the 'R' version with RAID support has this chip, so yours won't share.
Even though you may have one or more 'spare' IRQs not allocated to anything, it's the hard-wiring of the slots that determines what shares with what, and you can't avoid this. The two USB ports provided by each USB Host Controller always share an IRQ, and the notes beneath the table suggest that this is shared with PCI slot 4, but, since slots 3 and 4 share, this isn't borne out by your Audiophile in slot 3 getting its own unique IRQ. Your tests instead suggest that both USB ports share with slots 2 and 6, so perhaps this is a printing error!
So, my best suggestion for your Powercore card is slot 5, since this doesn't seem to be sharing at hardware level. The fact that you've found that this ends up sharing with AGP and Slot 1 might be due to another factor — elsewhere in the manual it states that your motherboard has an APIC (Advanced Programmable Interrupt Controller) so do make sure this is set to 'Enabled' in the Advanced BIOS Features page — in the 'Disabled' mode only six IRQs will be available for all motherboard devices.
Remember also that you can disable unwanted motherboard devices such as serial and parallel ports to release their IRQ allocations to the pool. If you still can't get a unique IRQ for your Powercore card, try setting your 'PNP OS Installed' BIOS parameter to 'No', so the BIOS will allocate IRQs, and then force the appropriate PIRQ to use your choice with the four 'PIRQ_X Use IRQ No' settings mentioned earlier.