Extended Precision - Extended Precision Implementations - IEEE 754 Extended Precision Formats

IEEE 754 Extended Precision Formats

The IEEE 754 floating point standard recommends that implementations provide extended precision formats. The standard specifies the minimum requirements for an extended format but does not specify an encoding. The encoding is the implementor's choice.

The x86 and x86-64 and Itanium processors support an 80-bit "double extended" extended precision format with a 64-bit significand. The Intel 8087 math coprocessor was the first x86 device which supported floating point arithmetic in hardware. It was designed to support a 32-bit "single precision" format and a 64-bit "double precision" format for encoding and interchanging floating point numbers. The double extended format was designed not to store data at higher precision as such, but rather primarily to allow for the computation of double results more reliably and accurately by minimising overflow and roundoff-errors in intermediate calculations: for example, many floating point algorithms (e.g. exponentiation) suffer from significant precision loss when computed using the most direct implementations. To mitigate such issues the internal registers in the 8087 were designed to hold intermediate results in an 80-bit "extended precision" format. The 8087 would automatically convert numbers to this format when loading floating point registers from memory and would also convert results back to the more conventional formats when storing the registers back into memory. To enable intermediate subexpressions results to be saved in extended precision scratch variables and continued across programming language statements, and otherwise interrupted calculations to resume where they were interrupted, it was necessary to provide instructions which would transfer values between these internal registers and memory without performing any conversion, which therefore enabled access to the extended format for calculations- also reviving the issue of the accuracy of functions of such numbers, but at a higher precision.

The Floating Point Unit on all subsequent x86 processors have supported this format. As a result software can be developed which takes advantage of the higher precision provided by this format. Prof. W. Kahan, a primary designer of the x87 arithmetic and initial IEEE 754 standard proposal notes on the development of the x87 floating point- "An Extended format as wide as we dared (80 bits) was included to serve the same support role as the 13-decimal internal format serves in Hewlett-Packard’s 10- decimal calculators". Moreover, Kahan notes that 64 bits was the widest significand across which carry propagation could be done without increasing the cycle time on the 8087, and that the x87 extended precision was designed to be extensible to higher precision in future processors: "For now the 10-byte Extended format is a tolerable compromise between the value of extra-precise arithmetic and the price of implementing it to run fast; very soon two more bytes of precision will become tolerable, and ultimately a 16-byte format... That kind of gradual evolution towards wider precision was already in view when IEEE Standard 754 for Floating-Point Arithmetic was framed.".

The Motorola 6888x math coprocessors and the Motorola 68040 and 68060 processors support this same 64-bit significand extended precision type (similar to the Intel format although padded to a 96-bit format with 16 unused bits inserted between the exponent and significand fields). The follow-on Coldfire processors do not support this 96-bit extended precision format.

The x86 80-bit and Motorola 68881 formats meet the requirements of the IEEE 754 double extended format.

Read more about this topic:  Extended Precision, Extended Precision Implementations

Famous quotes containing the words extended and/or precision:

    All the Valley quivered one extended motion, wind
    undulating on mossy hills
    Allen Ginsberg (b. 1926)

    How should the world be luckier if this house,
    Where passion and precision have been one
    Time out of mind, became too ruinous
    To breed the lidless eye that loves the sun?
    William Butler Yeats (1865–1939)