background image

6-28 Vol. 3A

INTERRUPT AND EXCEPTION HANDLING

Interrupt 8—Double Fault Exception (#DF)

Exception Class

Abort.

Description

Indicates that the processor detected a second exception while calling an exception handler for a prior exception. 
Normally, when the processor detects another exception while trying to call an exception handler, the two excep-
tions can be handled serially. If, however, the processor cannot handle them serially, it signals the double-fault 
exception. To determine when two faults need to be signalled as a double fault, the processor divides the excep-
tions into three classes: benign exceptions, contributory exceptions, and page faults (see Table 6-4).

Table 6-5 shows the various combinations of exception classes that cause a double fault to be generated. A double-
fault exception falls in the abort class of exceptions. The program or task cannot be restarted or resumed. The 
double-fault handler can be used to collect diagnostic information about the state of the machine and/or, when 
possible, to shut the application and/or system down gracefully or restart the system.

Table 6-4.  Interrupt and Exception Classes 

Class

Vector Number

Description

Benign Exceptions and Interrupts

 1

 2

 3

 4

 5

 6

 7

9

16

17

18
19

All

All

Debug

NMI Interrupt

Breakpoint

Overflow

BOUND Range Exceeded

Invalid Opcode

Device Not Available

Coprocessor Segment Overrun

Floating-Point Error

Alignment Check

Machine Check
SIMD floating-point

INT n

INTR

Contributory Exceptions

 0

10

11

12

13

Divide Error

Invalid TSS

Segment Not Present

Stack Fault

General Protection

Page Faults

14

20

Page Fault

Virtualization Exception