beautypg.com

Intel IA-32 User Manual

Page 327

background image

Vol. 3A 8-3

ADVANCED PROGRAMMABLE INTERRUPT CONTROLLER (APIC)

Xeon processors) or on the APIC bus (for Pentium and P6 family processors). See Section 8.2,
“System Bus Vs. APIC Bus.”

IPIs can be sent to other IA-32 processors in the system or to the originating processor (self-
interrupts). When the target processor receives an IPI message, its local APIC handles the
message automatically (using information included in the message such as vector number and
trigger mode). See Section 8.6, “Issuing Interprocessor Interrupts,” for a detailed explanation of
the local APIC’s IPI message delivery and acceptance mechanism.

The local APIC can also receive interrupts from externally connected devices through the I/O
APIC (see Figure 8-1). The I/O APIC is responsible for receiving interrupts generated by system
hardware and I/O devices and forwarding them to the local APIC as interrupt messages.

Individual pins on the I/O APIC can be programmed to generate a specific interrupt vector when
asserted. The I/O APIC also has a “virtual wire mode” that allows it to communicate with a stan-
dard 8259A-style external interrupt controller. Note that the local APIC can be disabled (see
Section 8.4.3, “Enabling or Disabling the Local APIC”). This allows an associated processor
core to receive interrupts directly from an 8259A interrupt controller.

Both the local APIC and the I/O APIC are designed to operate in MP systems (see Figures 8-2
and 8-3)
. Each local APIC handles interrupts from the I/O APIC, IPIs from processors on the
system bus, and self-generated interrupts. Interrupts can also be delivered to the individual

Figure 8-1. Relationship of Local APIC and I/O APIC In Single-Processor Systems

I/O APIC

External

Interrupts

System Chip Set

System Bus

Processor Core

Local APIC

Pentium 4 and

Local

Interrupts

Bridge

PCI

Intel Xeon Processors

I/O APIC

External

Interrupts

System Chip Set

3-Wire APIC Bus

Processor Core

Local APIC

Pentium and P6

Local

Interrupts

Family Processors

Interrupt

Messages

Interrupt

Messages

Interrupt

Messages