All Topics  
X87

 

   Email Print
   Bookmark   Link






 

X87



 
 
x87 is a math-related instruction subset of the x86 architecture
X86 architecture

The generic term x86 refers to the most commercially successful instruction set architecture in the history of personal computing. It derived from the model numbers, ending in "86", of the first few processor generations Backward compatibility with the original Intel 8086....
  of processors
Central processing unit

A central processing unit is an electronic circuit that can execute computer programs. This broad definition can easily be applied to many early computers that existed long before the term "CPU" ever came into widespread usage....
. It is so called because initially such instructions were processed by an external coprocessor
Coprocessor

A coprocessor is a computer processor used to supplement the functions of the primary processor . Operations performed by the coprocessor may be floating point arithmetic, graphics, signal processing, string processing, Savitsky-Golay derivation, or encryption....
 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.






Discussion
Ask a question about 'X87'
Start a new discussion about 'X87'
Answer questions from other users
Full Discussion Forum



Encyclopedia


x87 is a math-related instruction subset of the x86 architecture
X86 architecture

The generic term x86 refers to the most commercially successful instruction set architecture in the history of personal computing. It derived from the model numbers, ending in "86", of the first few processor generations Backward compatibility with the original Intel 8086....
  of processors
Central processing unit

A central processing unit is an electronic circuit that can execute computer programs. This broad definition can easily be applied to many early computers that existed long before the term "CPU" ever came into widespread usage....
. It is so called because initially such instructions were processed by an external coprocessor
Coprocessor

A coprocessor is a computer processor used to supplement the functions of the primary processor . Operations performed by the coprocessor may be floating point arithmetic, graphics, signal processing, string processing, Savitsky-Golay derivation, or encryption....
 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
Trigonometric function

In mathematics, the trigonometric functions are function s of an angle. They are important in the trigonometry of Triangle and modeling Periodic function, among many other applications....
 or cosine
Trigonometric function

In mathematics, the trigonometric functions are function s of an angle. They are important in the trigonometry of Triangle and modeling Periodic function, among many other applications....
 of a value.

All Intel and AMD processors since the 80486DX
Intel 80486

The Intel i486, otherwise known as the 80486, was the first tightly pipeline x86 design. Introduced in 1989, it was also the first x86 chip to use more than a million transistors, due to a large on-chip cache and an integrated floating point unit....
 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
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
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.

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
Pentium 4

The Pentium 4 brand refers to Intel's line of single-core mainstream Desktop computer and laptop central processing units introduced on November 20, 2000 ....
, the SSE
Streaming SIMD Extensions

In computing, Streaming SIMD Extensions is a SIMD instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD's 3DNow! ....
 unit implements single-precision, then in later versions double-precision, IEEE-754 formats. The x87 unit is largely deprecated on the 64-bit x86-64
X86-64

x86-64 is a superset of the x86. x86-64 Central processing units can run existing 32-bit or 16-bit x86 programs at full speed, but also support new programs written with a 64-bit address space and other additional capabilities....
 architecture and associated 64-bit implementations of operating systems such as Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
, Mac OS X
Mac OS X

Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
, Solaris, and Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 though it is still well supported for full compatibility with older applications.

List of x87 generations

  • Intel 8087
    Intel 8087

    The 8087 was the first math coprocessor for 16 bit processors designed by Intel ; it was built to be paired with the Intel Intel 8088 and Intel 8086 microprocessors....
  • Intel 80C187
  • Intel 80287
    Intel 80287

    The Intel 80287 was the math coprocessor for the Intel 80286 series of microprocessors. It was used to perform floating point arithmetic operations directly in hardware and normally ran at two thirds the speed of the 286 CPU....
  • Intel 80387
    Intel 80387

    The Intel 80387 was the math coprocessor for the Intel 80386 series of microprocessors, and the first Intel coprocessor to implement the IEEE 754 standard in every detail....
  • Intel 80487
    Intel 80487

    The Intel's i487 is a floating point unit coprocessor for Intel 486SX machines. It was essentially a full-blown 486DX chip. When installed into an i486SX system, the i487 disabled the main CPU and took over all CPU operations....
     - actually a full-blown 80486DX
    Intel 80486

    The Intel i486, otherwise known as the 80486, was the first tightly pipeline x86 design. Introduced in 1989, it was also the first x86 chip to use more than a million transistors, due to a large on-chip cache and an integrated floating point unit....
     processor
  • NexGen Nx587 - the only member


See also


  • x86
  • MMX
  • SSE
    Streaming SIMD Extensions

    In computing, Streaming SIMD Extensions is a SIMD instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD's 3DNow! ....
    , SSE2
    SSE2

    SSE2, Streaming SIMD Extensions 2, is one of the IA-32 SIMD instruction sets. SSE2 was first introduced by Intel with the initial version of the Pentium 4 in 2001....
    , SSE3
    SSE3

    SSE3, also known by its Intel code name Prescott New Instructions , is the third iteration of the Streaming SIMD Extensions instruction set for the IA-32 architecture....
    , SSSE3
    SSSE3

    Supplemental Streaming SIMD Extension 3 is Intel's name for the Streaming SIMD Extensions instruction set's fourth iteration. The previous version was SSE3, and Intel have added an S rather than increment the version number, as they appear to consider it merely a revision of SSE3....
    , SSE4
    SSE4

    SSE4 is an instruction set used in the Intel Intel Core microarchitecture microarchitecture and AMD_K10. It was announced on September 27, 2006 at the Fall 2006 Intel Developer Forum, with vague details in a white paper; more precise details of 47 instructions became available at the Spring 2007 Intel Developer Forum in Beijing, in the prese...
    , SSE5
    SSE5

    The SSE5 , announced by Advanced Micro Devices on August 30, 2007, is an extension to the 128-bit Streaming SIMD Extensions core instructions in the AMD64 instruction set for the Bulldozer processor core, due to begin production in 2011....
  • 3DNow!
    3DNow!

    3DNow! is the trade name of a multimedia extension created by AMD for its processors, starting with the K6-2 in 1998. It is an addition of SIMD instructions to the traditional x86 instruction set, designed to improve a central processing unit's ability to perform the vector processing requirements of many graphic-intensive applications....
  • SIMD
    SIMD

    In computing, SIMD is a technique employed to achieve data level parallelism....


External links