Intel 80286, 80287 manual Unnormals-Descendents of Denormal Operands

Models: 80287 80286

1 515
Download 515 pages 45.04 Kb
Page 375
Image 375

OVERVIEW OF NUMERIC PROCESSING

Denormals are rarely encountered in most applications. Typical debugged algorithms generate extremely small results during the evaluation of intermediate subexpressions; the final result is usually of an appropriate magnitude for its short or long real destination. If intermediate results are held in tempo- rary real, as is recommended, the great range of this format makes underflow very unlikely. Denormals are likely to arise only when an application generates a great many intermediates, so many that they cannot be held on the register stack or in temporary real memory variables. If storage limitations force the use of short or long reals for intermediates, and small values are produced, underflow may occur, and, if masked, may generate denormals.

Accessing a denormal may produce an exception as shown in table 1-8. (The denormalized exception signals that a denormal has been fetched.) Denormals may have reduced significance due to lost low- order bits, and an option of the proposed IEEE standard precludes operations on non normalized operands. This option may be implemented in the .form of an exception handler that responds to unmasked denormalized exceptions. Most users will mask this exception so that computation may proceed; any loss of accuracy will be analyzed by the user when the final result is delivered.

As table 1-8 shows, the division and remainder operations do not accept denormal divisors and raise the invalid operation exception. Recall also that the transcendental instructions require normalized operands and do not check for exceptions. In all other cases, the NPX converts denormals to unnor- mals, and the rules governing unnormal arithmetic then apply (unnormal~ are described in the follow- ing section).

Unnormals-Descendents of Denormal Operands

An unnormal is the result of a computation using denormal operands and is therefore the descendent of the 80287's masked underflow response. An unnormal may exist only in the temporary real format; it may have any exponent that a normal value may have (that is, in biased form any nonzero value), but it is distinguished from a normal by the integer bit of its significand, which is always O. An unnor- mal in a register is tagged valid. Unnormals are distinct from denormals, which have an exponent of 00...00 in biased form.

Unnormals allows arithmetic to continue following an underflow while still retaining their identity as numbers that may have reduced significance. That is, unnormal operands generate un normal results, so long as their unnormality has a significant effect on the result. Unnormals are thus prevented from "masquerading" as normals, numbers that have full significance. On the other hand, if an unnormal has an insignificant effect on a calculation with a normal, the result will be normal. For example, adding a small un normal to a large. normal yields a normal result. The converse situation yields an unnormal.

Table 1-8. Exceptions Due to Denormal Operands

Operation

Exception

Masked Response

FLD (short/long real)

D

Load as equivalent unnormal

Arithmetic (except following)

D

Convert (in a work area) denormal to equivalent

 

 

unnormal and proceed

Compare and test

D

Convert (in a work area) denormal to equivalent

 

 

unnormal and proceed

Division or FPREM with

I

Return real indefinite

denormal divisor

 

 

1-23

Page 375
Image 375
Intel 80286, 80287 manual Unnormals-Descendents of Denormal Operands