- X87
x87 is a math-related instruction subset of the
x86 architecture of processors. It is so called because initially such instructions were processed by an external coprocessor chip with a number ending in 87. Like other extensions to the basic processor instruction set, these instructions are not strictly needed to construct working programs, but provide hardware implementation of common mathematical tasks, allowing these tasks to be performed much faster. For example, the x87 instruction set includes instructions to calculate the sine or cosine of a value.All Intel and AMD processors since the 80486DX have had these instructions built into the main CPU. The term 'x87' is still used to refer to that part of the instruction set that performs conventional floating point operations;
compiler s may use these instructions to make code that operates faster than if it used library calls to perform floating-point operations.The x87 instructions are compatible with the
IEEE-754 standard for floating-point. However, x87 does not perform operations according to strict IEEE-754 formats, since it uses wide registers internally. A given sequence of arithmetic operations may thus behave differently on a x87 and a processor implementing strict IEEE-754 formats. [David Monniaux, " [http://hal.archives-ouvertes.fr/hal-00128124/en The pitfalls of verifying floating-point computations] ", to appear in ACM TOPLAS]The x87 does not organise its registers as a register array, as most computer architectures do, but as a "register stack", meaning that only the top two registers are available for operations, and that accessing the other registers requires stack-manipulation operations. While convenient for human programmers, this organisation makes it difficult for compilers to schedule x87 code effectively.
Starting from the
Pentium 4 , the SSE unit implements single-precision, then in later versions double-precision, IEEE-754 formats. The x87 unit is largely deprecatedFact|date=September 2008 on the 64-bitx86-64 architecture and associated 64-bit implementations of operating systems such asMicrosoft Windows ,Mac OS X , Solaris, andLinux though it is still well supported for full compatibility with older applications.List of x87 generations
*
Intel 8087
*Intel 80C187
*Intel 80287
*Intel 80387
*Intel 80487 - actually a full-blown 80486DX processor
* NexGenNx587 - the only memberReferences
* Intel Corp., "IA-32 Intel Architecture Software Developer's Manual Volume 1: Basic Architecture", order number 253665-017
ee also
*
x86
*MMX
*SSE,SSE2 ,SSE3 ,SSSE3 ,SSE4 ,SSE5
*3DNow!
*SIMD External links
* [http://www.coprocessor.info Coprocessor.info : x86 Coprocessor development & history knowledge]
* [http://wiretap.area.com/Gopher/Library/Techdoc/Cpu/coproc.txt Everything you always wanted to know about math coprocessors]
Wikimedia Foundation. 2010.