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; compilers 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-bit x86-64 architecture and associated 64-bit implementations of operating systems such as Microsoft Windows, Mac OS X, Solaris, and Linux 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
* NexGen Nx587 - the only member


* Intel Corp., "IA-32 Intel Architecture Software Developer's Manual Volume 1: Basic Architecture", order number 253665-017

ee also


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.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • x87 — bezeichnet eine Untermenge des Befehlssatzes der x86 Architektur für Gleitkommaberechnungen. Es ist die älteste Befehlssatzerweiterung für diese Architektur. Ihre Befehle sind nicht notwendig, um funktionierende Programme zu erzeugen, aber sie… …   Deutsch Wikipedia

  • X87 — x87  это специальный набор инструкций для работы с математическими вычислениями, являющийся подмножеством архитектуры процессоров x86. Такое название он получил, потому что первоначальные отдельные математические сопроцессорные чипы имели… …   Википедия

  • X87 — Saltar a navegación, búsqueda x87 es un subconjunto de instrucciones relacionadas con las matemáticas de la familia de procesadores x86 de Intel. Se le llama así porque inicialmente dichas instrucciones eran procesadas por un chip externo cuyo… …   Wikipedia Español

  • x87 — es un subconjunto de instrucciones relacionadas con las matemáticas de la familia de procesadores x86 de Intel. Se le llama así porque inicialmente dichas instrucciones eran procesadas por un chip externo cuyo nombre acababa en 87. Como otras… …   Wikipedia Español

  • X87 — Tabelle von Koprozessoren für die x86 CPUs: AMD Typ für CPU Eingeführt Taktfrequenzen Gehäuse Technologie Beschreibung Am80C287 …   Deutsch Wikipedia

  • x86 — This article is about Intel microprocessor architecture in general. For the 32 bit generation of this architecture which is also called x86 , see IA 32. x86 Designer Intel, AMD Bits 16 bit, 32 bit, and/or 64 bit Introduced 1978 Design …   Wikipedia

  • Математический сопроцессор — 80x287 в колодке на базовой плате персонального компьютера …   Википедия

  • 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 CPU s ability to perform the… …   Wikipedia

  • X86-64 — is a superset of the x86 instruction set architecture. x86 64 processors 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.The x86 64… …   Wikipedia

  • Control register — A control register is a processor register which changes or controls the general behavior of a CPU or other digital device. Common tasks performed by control registers include interrupt control, switching the addressing mode, paging control, and… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”