The Definitive BIOS Optimization Guide
APIC Function
Common Options : Enabled, Disabled
Details
The APIC Function BIOS feature is used to enable or disable the motherboard's APIC (Advanced Programmable Interrupt Controller). The APIC is a new distributed set of devices that make up an interrupt controller. In current implementations, it consists of three parts - a local APIC, an I/O APIC and an APIC bus.
The local APIC delivers interrupts to a specific processor so each processor in a system has to have its own local APIC. Therefore, a dual processor system must have two local APICs. Because a local APIC has been integrated into every processor since the debut of the original Intel Pentium P54C processor, there's no need to worry about the number of local APICs.
The I/O APIC is the replacement for the old chained 8259 PIC (Programmable Interrupt Controller) still in use in many motherboards. It collects interrupt signals from I/O devices and send messages to the local APICs via the APIC bus which connects it to the local APICs.
There can be up to eight I/O APICs in a system, each supporting anywhere from 24 (usually) to 64 interrupt lines. As you can see, this allows a lot more IRQs than is currently possible with the 8259 PIC. Note that without at least one I/O APIC, the local APIC is useless and the system functions as if it's based on the 8259 PIC.
To sum it all up, APIC provides multiprocessor support, more IRQs and faster interrupt handling which are not possible with the old 8259 PIC. Although they can be used in single-processor boards, you are more likely to find them in multi-processor motherboards. This is because APIC is only supported in Windows NT, 2000 and XP. It is not supported in operating systems that are required to support MS-DOS device drivers, i.e. Windows 95/98. But as users transition to Windows XP, you can expect more manufacturers to ship single-processor boards with I/O APICs.
If your single-processor motherboard supports APIC and you are using a Win32 operating system (Windows NT, 2000 and XP), it's recommended that you enable this feature to allow faster and better IRQ handling. If you are using a multiprocessor motherboard, you must enable this feature because it's required for IRQ handling in multiprocessor systems.
However, if you are running Windows 95/98 or a DOS-based operating system on a single-processor motherboard, you must disable this feature. This is because MS-DOS drivers assume they can write directly to the 8259 PIC (APIC did not exist yet in those days!) and its associated IDT entries. Disabling this feature forces the APIC to revert to the legacy 8259 PIC mode.