• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

PCI IRQ musings and questions.

StilgarAyat

Junior Member
I am trying to understand how IRQs are shared among the PCI slots and other peripherals connected to the PCI bus like the USB controllers and inbuilt IDE RAID.

The below is what I have posted to Kozierok at www.pcguide.com, if anyone feels they can add explanations, I welcome them all 🙂.

Here:

The section on PCI mentions that you can have up to four separate
IRQs for PCI and any connections above four have to share. Is this
literaly correct? i.e. you can not assign 5 IRQs to five PCI slots?

Thus say the standard MB with six PCI slots, USB, and the inbuilt RAID
controller has to share. The questions is how much? As at this point
with four IRQs available you already have on average TWO PCI connections
for each IRQ. Can you have an IRQ shared among more than two PCI
connections so for example that one of the connections can have an IRQ
all to itself if it needs one? HOW DOES IRQ SHARING AFFECT PERFORMANCE?

BTW, in my system device listing AGP (looking through connection
arrangement/option listing) comes under "PCI bus". On top of this my
BIOS assigns an IRQ to the AGP card. Does this mean AGP also has to
share the four IRQs with the rest of PCI? Or is this an artefact of
Windows listing that bears no relation to the above reality? 🙂
 
Strictly speaking, you can share just 1 IRQ among all PCI devices, like the ACPI HAL does for Windows 2000. Assuming that all of your hardware is fully ACPI compliant, the devices will happily share that single hardware IRQ without losing performance.

It is correct that you can only assign 4 hardware IRQs to the PCI slots. Assigning shared IRQs is generally a function of the Operating System. For example, I can share the network and sound card on one IRQ, but have a PCI video card on its own. Do this in Device Manager.

Generally video cards require an IRQ for maximum performance: this is certainly the case with nVidia video cards, but S3 video cards such as the Trio and ViRGE series do not require one.

How much performance you really do lose is usually dependent on what you have in the system. For example, the SBLive is known to be an incredible PCI bus hog, so theoretically it won't play too well with IRQ sharing (I personally have not had this problem).
 
Yes, I once had ACPI enabled....

That sucked....sblive, geforce, and 3com nic all on the same IRQ :|

There was a definite loss in framerate when there was lots of action in the game Alice. Turned ACPI off, and woohoo, no more slowdowns 😀 Other games also gained in performance, like Giants, NOLF, etc. etc....
 
Andy thanks for the reply.

I am still trying to work out how the IRQ sharing works in the device manager. I moved to Windows ME and when I go into System/Device Manager and the thing just tells me that I can not change the IRQs whenever I try to (mind you this is on my old K6-2 350 MHz MVP3 chpiset MB on which I can not get the G400 to work properly as it resets the clock in Windows constantly - one reason why I am thinking of upgrading). Also under system devices/PCI bus I get a message that IRQ steering does not work properly whenever I enable to inbuilt USB. BTW is IRQ steering what assigns/shares IRQs for the OS? Do I understand it correctly that you should be able to assign manualy all your IRQs within the OS? How exactly?

I can sort of understand how giving an IRQ to a device can improve its performance over not having one. However, I do not follow how sharing IRQs can decrease performance as in Mixxen's case. After all IRQs just demand attention from the CPU, shared or not shared, and the CPU jumps around them? If things share an IRQ that IRQ simply sends more demands to the CPU as needed. IS MY UNDERSTANDING OF THIS PART CORRECT? Thus the only reasons I can think of for sharing IRQs slowing down the system are: there is a signficant processing overhead involved in sharing IRQs (though is this indeed so, and why should it be so); one can always be dealing with an inproper implementation of IRQ sharing slowing dow the system. Thoughts?

BTW, WHAT IT IS EXACTLY about some MB being hardwired to have the same IRQs for certain combinations of PCI slots/peripherials? For example your inbuilt RAID sharing IRQ with PCI slot 5, etc.

With regard to ACPI. I have a setting like this in BIOS. Does enabling it will make my OS (Windows ME or Windows 98 - I still have not decided to stick with ME) use one IRQ? How do I check?
 
Back
Top