MSI Mainboards > Older MSI motherboards

Confused about APIC

<< < (3/4) > >>

ronzo:
bim2k, markoul,

got a question: when enabling apic in bios does apci have to be set to enable or disable, or doesn't matter?

i did a reinstall with apic 1.4 on, and apci also on, and i'm seeing only usb using irq 20 and 21, nothing else above irq 15, and some sharing on irq 11.

thx

Ex Forum User 3:
Hi,

Ok, my turn now :P

What ever you do, do not disable the ACPI (=IPCA in the BIOS), that's BAD in any case!

The APIC 1.1/1.4 what they talk about in the BIOS is something completly different!

The BIOS APIC has 2 levels 1.1 and 1.4, they are in fact MPS levels (stands for Multiple-Processor-Specification).

Read this specs: Link

If you can understand them.... :P

Microsoft has gotten the "stupid" idea of using this on single CPU systems, that is why it's introduced...

(Guy's don't start on me please)

When you have the ACPI enabled your system will use the Local-APIC for IRQ addressing.
And yes, many IRQ's can be the same, doesn't matter one bit as PCI is designed this way.

The thing that happens when you enable the APIC is the following.

The IRQ's are remapped to addresses to make sure the CPU watching/needing this IRQ (=address/remapped IRQ's) is the only one that uses this.
Without APIC all CPU's would respond to any IRQ given.
That is why they did this, as it's stupid for all CPU's to react/monitor every IRQ that's given by a device.....

This remapping also means that it seems there are many more IRQ's then there are....
1 Single PCI controller can only have 16 IRQ-levels, IRQ 0 to 15 hardware connected, no matter what you do....
So even if you get 22 or more (can go upto 256), if you have 1 PCI controller they are still between the 0-15 IRQ lines....

This spec is very old, and has been designed for 16 PCI controllers/busses, to be handled by multiple CPU's.....

Some people think enabling the APIC 1.1/1.4 is faster, but it really doesn't matter that much.....
If it's running fine, use it, if not disable it....
The IRQ's will show different in Windows, but on the hardware side they are still the same, if you enable it or not.....

And before anyone starts attacking me on this, please read the spec's......
There is more then 1 Apic in your system!
The most inportant is the Local-Apic inside the CPU, and that one inside the CPU is enabled by enabling the ACPI, not by the APIC MPS 1.1/1.4 (This Local-Apic is the one MS is talking about for speed!)

Markoul:
Bas,

Thank you for the information. I believe you are right on this one.


Markoul

Richard:
Bas,

Well I have one change there. APIC is faster.  It lowers the Latency on the interupts.  In the old Forum we had the 3DMark2001SE scores which proved there is a gain in switching from PIC to APIC.

If I may quote Microsoft:


--- Quote ---PIC (8259) Hardware Is Slow

The PIC interrupt controller has a built-in hardware priority scheme that is not appropriate for machines running operating systems based on Windows NT Technology. To address this problem, a different hardware priority scheme is used by the operating system.

When the operating system raises or lowers IRQL, a new mask is written into the 8259 that enables only the interrupts allowed at this IRQL. Therefore, raising or lowering IRQL causes either two "out" instructions or software simulation of one sort or another. Each of these I/O instructions causes bus cycles that must make it all the way to the South Bridge and back.

The Compaq Alpha interrupt controller has software levels that are used in Windows NT and Windows 2000 to cause DPC and APC interrupts. On Intel Architecture platforms using a PIC, this must be simulated because there is no hardware to cause the interrupts. Therefore, when the operating system drops below DISPATCH_LEVEL, the operating system must check to see whether a DPC has been queued. If it has, it must simulate an interrupt.

With an APIC device, the operating system can queue a DPC at any time by sending itself an interrupt at a priority that matches DISPATCH_LEVEL. Then, whenever it lowers the IRQL below DISPATCH_LEVEL, the DPC fires in hardware with no software intervention at all.

Furthermore, raising or lowering IRQL on an APIC is just a matter of adjusting the Task Priority Register in the local APIC. Because this is just a "mov" instruction that adjusts a register that is actually internal to the processor, it can happen much more quickly than multiple writes to the South Bridge. Keep in mind that every time anything is synchronized using any of the Win32® or Windows NT native synchronization primitives, the IRQL is changed at least twice.

APICs, therefore, provide better speed in interrupt handling.

--- End quote ---


Take Care,

Richard

P.S. See Bas, I was gentle on ya.  :P

Guest:
Sorry Bas

Have to go with Deathstalker on this one.........(tongue stuck firmly up orifice 8o ) I saw a definate speed increase after setting up APIC in the Device Manager.

Deathstalker can I now remove my tongue.............please!!!!!!!

Rossco

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version