background image

Vol. 3A 6-3

INTERRUPT AND EXCEPTION HANDLING

The processor’s local APIC is normally connected to a system-based I/O APIC. Here, external interrupts received at 
the I/O APIC’s pins can be directed to the local APIC through the system bus (Pentium 4, Intel Core Duo, Intel Core 
2, Intel

®

 Atom™, and Intel Xeon processors) or the APIC serial bus (P6 family and Pentium processors). The I/O 

APIC determines the vector number of the interrupt and sends this number to the local APIC. When a system 
contains multiple processors, processors can also send interrupts to one another by means of the system bus 
(Pentium 4, Intel Core Duo, Intel Core 2, Intel Atom, and Intel Xeon processors) or the APIC serial bus (P6 family 
and Pentium processors). 
The LINT[1:0] pins are not available on the Intel486 processor and earlier Pentium processors that do not contain 
an on-chip local APIC. These processors have dedicated NMI and INTR pins. With these processors, external inter-
rupts are typically generated by a system-based interrupt controller (8259A), with the interrupts being signaled 
through the INTR pin.
Note that several other pins on the processor can cause a processor interrupt to occur. However, these interrupts 
are not handled by the interrupt and exception mechanism described in this chapter. These pins include the 
RESET#, FLUSH#, STPCLK#, SMI#, R/S#, and INIT# pins. Whether they are included on a particular processor is 
implementation dependent. Pin functions are described in the data books for the individual processors. The SMI# 
pin is described in Chapter 34, “System Management Mode.”

6.3.2 

Maskable Hardware Interrupts

Any external interrupt that is delivered to the processor by means of the INTR pin or through the local APIC is called 
a maskable hardware interrupt. Maskable hardware interrupts that can be delivered through the INTR pin include 
all IA-32 architecture defined interrupt vectors from 0 through 255; those that can be delivered through the local 
APIC include interrupt vectors 16 through 255. 
The IF flag in the EFLAGS register permits all maskable hardware interrupts to be masked as a group (see Section 
6.8.1, “Masking Maskable Hardware Interrupts”). Note that when inter
rupts 0 through 15 are delivered through the 
local APIC, the APIC indicates the receipt of an illegal vector. 

15

(Intel reserved. Do not use.)

No

16

#MF

x87 FPU Floating-Point Error (Math 

Fault)

Fault

No

x87 FPU floating-point or WAIT/FWAIT 

instruction.

17

#AC

Alignment Check

Fault

Yes 

(Zero)

Any data reference in memory.

3

18

#MC

Machine Check

Abort

No

Error codes (if any) and source are model 

dependent.

4

19

#XM

SIMD Floating-Point Exception

Fault

No

SSE/SSE2/SSE3 floating-point 

instructions

5

20

#VE

Virtualization Exception

Fault

No

EPT violations

6

21-31

Intel reserved. Do not use.

32-255

User Defined (Non-reserved) 

Interrupts

Interrupt

External interrupt or INT n instruction.

NOTES:

1. The UD2 instruction was introduced in the Pentium Pro processor.
2. Processors after the Intel386 processor do not generate this exception.
3. This exception was introduced in the Intel486 processor.
4. This exception was introduced in the Pentium processor and enhanced in the P6 family processors.
5. This exception was introduced in the Pentium III processor.
6. This exception can occur only on processors that support the 1-setting of the “EPT-violation #VE” VM-execution control.

Table 6-1.  Protected-Mode Exceptions and Interrupts  (Contd.)