Intel 80286, 80287 manual Simultaneous Exception Response

Models: 80287 80286

1 515
Download 515 pages 45.04 Kb
Page 453
Image 453

SYSTEM-LEVEL NUMERIC PROGRAMMING

As discussed previously, the 80287 NPX can take one of two actions when it recognizes a numeric exception:

If the exception is masked, the NPX will automatically perform its own masked exception response, correcting the exception condition according to fixed rules, and then continuing with its instruction execution.

If the exception is unmasked, the NPX signals the exception to the 80286 CPU using the ERROR status line between the two processors. Each time the 80286 encounters an ESC or WAIT instruc- tion in its instruction stream, the CPU checks the condition of this ERROR status line. If ERROR is active, the CPU automatically traps to Interrupt vector #16, the Processor Extension Error trap.

Interrupt vector #16 typically points to a software exception handler, which mayor may not be a part of systems software. This exception handler takes the form of an 80286 interrupt procedure.

When handling numeric errors, the CPU has two responsibilities:

The CPU must not disturb the numeric context when an error is detected.

The CPU must clear the error and attempt recovery from the error.

Although the manner in which programmers may treat these responsibilities varies from one imple- mentation to the next, most exception handlers will include these basic steps:

Store the NPX environment (control, status, and tag words, operand and instruction pointers) as it existed at the time of the exception.

Clear the exception bits in the status word.

Enable interrupts on the CPU.

Identify the exception by examining the status and control words in the save environment.

Take some system"dependent action to rectify the exception.

Return to the interrupted program and resume normal execution.

It should be noted that the NPX exception pointers contained in the stored NPX environment will take different forms, depending on whether the NPX is operating in Real-Address mode or in Protected mode. The earlier discussion of Real versus Protected mode details how this information is presented in each of the two operating modes.

Simultaneous Exception Response

In cases where multiple exceptions arise simultaneously, the 80287 signals one exception according to the precedence sequence shown in table 3-2. This means, for example, that zero divided by zero will result in an invalid operation, and not a zero divide exception.

Exception Recovery Examples

Recovery routines for NPX exceptions can take a variety of forms. They can change the arithmetic and programming rules of the NPX. These changes may redefine the default fix-up for an error, change the appearance of the NPX to the programmer, or change how arithmetic is defined on the NPX.

A change to an error response might be to automatically normalize all denormals loaded from memory. A change in appearance might be extending the register stack into memory to provide an "infinite"

3-7

Page 453
Image 453
Intel 80286, 80287 manual Simultaneous Exception Response