What is APIC (advanced programmable interrupt controller) mode??

thatsright

Diamond Member
May 1, 2001
3,004
3
81
Just read a review of the 865 Chipset on Extremetech.com and it mentions that when setting up the MB's for benchmarking, they enabled APIC (advanced programmable interrupt controller) on all the test Motherboards. What is this? I plan on buying the Abit IC7 and a P4c 2.4 Ghz, so if I enable this on my MB would it hurt or help me?

Hope you can give me some 411 here. Thanks
 

thatsright

Diamond Member
May 1, 2001
3,004
3
81
IRQ stand for Interupt-Controller.

Basically this is how your motherboard assigns your peripherals cards, and anything else attached to the MB, Memory channels. The Operating system uses IRQ to communicate requests to the motherboard, and then the motherboard passes off the requests the actual device.

Hope that clears it up.
 

thatsright

Diamond Member
May 1, 2001
3,004
3
81
Follow Up:

And most normal MB's made in the last few years have only 14 IRQ's available. So if you try to load up all of you the slots in your MB with cards, or anything else, sometimes it can lead to IRQ conflicts. This happens when two devices are trying to use the same IRQ, and it can be a real pain, cause then sometimes you have to move cards from one PCI slot to another to find a combo the MB & Operating system will be fine with.
 

Lord Evermore

Diamond Member
Oct 10, 1999
9,558
0
76
There are 16 IRQ's actually (0 to 15) but some are reserved or automatically used by standard devices (PS/2 port and system timer for example). The OS doesn't use IRQs, the hardware does. An expansion card or onboard device sends an IRQ signal to the CPU requesting time for data transfer, such as when a network card receives traffic, or a hard drive is ready to send data. If the CPU isn't being interrupted (Interrupt Request is what IRQ stands for) then it simply keeps processing whatever data the OS has assigned, or sits idle. The OS doesn't need IRQs because it's always got access to the CPU, there's never a time the OS can't be given processor time because that's what happens anytime the CPU isn't processing hardware transfers.

DMA mode transfers help to avoid the CPU being interrupted often, because the chipset can transfer directly from the hardware to memory and notify the CPU of the transfer. Without DMA, all data transfer has to go to the CPU, which then sends it back to the chipset memory controller and into RAM. With DMA, the data doesn't have to be sent back and forth needlessly.

IRQ conflicts are far less of an issue now than they used to be. Most cards are able to share an IRQ without any problem, and OSes deal with it just fine. The conflict arises simply because two devices might signal for the CPU at the same time, and if they both have the same IRQ then they both have the same priority (low numbers generally have higher priority, but 3, 4, 5, and 6 are low priority). Interrupt lines are limited so certain slots will always share IRQs, like PCI1 and the AGP slot, or a PCI slot and an integrated device. Most devices are also programmed to only work with certain IRQs, so trying to set a device to some other IRQ won't work. ACPI however makes all of that meaningless, since IRQs can be dynamically assigned, and the OS generally does that well enough.

IO APIC (Advanced Programmable Interrupt Controller) allows 23 IRQs as long as the slots and devices don't share interrupt lines, otherwise they'll still possibly share IRQs with something else. Some motherboard makers tell you the particular interrupt lines used with which slots and onboard devices. http://www.asus.com/pub/ASUS/mb/socka/sis745/a7s333/e982_a7s333.pdf for example on page 30. However that doesn't specify which IRQs might be shared, since they can be assigned dynamically.

You have to have IO APIC enabled as well as ACPI, during the initial install of the OS. You can't just turn it on at any point and suddenly have more IRQs.