10-38 Vol. 3
ADVANCED PROGRAMMABLE INTERRUPT CONTROLLER (APIC)
10.6.5 Local Interrupt Acceptance
When a local interrupt is sent to the processor core, it is subject to the acceptance
criteria specified in the interrupt acceptance flow chart in
Figure 10-25. If the inter-
rupt is accepted, it is logged into the IRR register and handled by the processor
according to its priority (see Section 10.9.4, “Interrupt Acceptance for Fixed Inter-
rupts”). If the interrupt is not accepted, it is sent back to the local APIC and retried.
10.7 ISSUING INTERPROCESSOR INTERRUPTS
The following sections describe the local APIC facilities that are provided for issuing
interprocessor interrupts (IPIs) from software. The primary local APIC facility for
issuing IPIs is the interrupt command register (ICR). The ICR can be used for the
following functions:
• To send an interrupt to another processor.
• To allow a processor to forward an interrupt that it received but did not service to
another processor for servicing.
• To direct the processor to interrupt itself (perform a self interrupt).
• To deliver special IPIs, such as the start-up IPI (SIPI) message, to other
processors.
Interrupts generated with this facility are delivered to the other processors in the
system through the system bus (for Pentium 4 and Intel Xeon processors) or the
APIC bus (for P6 family and Pentium processors). The ability for a processor to send
a lowest priority IPI is model specific and should be avoided by BIOS and operating
system software.
10.7.1 Interrupt Command Register (ICR)
The interrupt command register (ICR) is a 64-bit local APIC register (see
Figure 10-17) that allows software running on the processor to specify and send
interprocessor interrupts (IPIs) to other processors in the system.
To send an IPI, software must set up the ICR to indicate the type of IPI message to
be sent and the destination processor or processors. (All fields of the ICR are read-
write by software with the exception of the delivery status field, which is read-only.)
The act of writing to the low doubleword of the ICR causes the IPI to be sent.