X87

x87 (auch numeric processor extension[1], NPX) 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 bieten Hardwareimplementierungen für häufige numerische Aufgaben, die damit wesentlich (10× bis 30×) schneller erledigt werden. Bevor die x87-Befehle von den Prozessoren verarbeitet werden konnten, mussten Compiler oder Programmierer langsame Software-Bibliotheksprozeduren aufrufen, um derartige Gleitkommaoperationen durchzuführen. Diese Vorgehensweise ist in vielen preiswerten eingebetteten Systemen noch immer häufig notwendig. Alternativ wird in Systemen, die keine Gleitkommaeinheit aufweisen, Festkommaarithmetik eingesetzt, da diese in Integer-Recheneinheiten effizient implementiert werden kann.

Bis zum Intel 80386 bzw. i486SX wurden die x87-Befehle durch einen separaten Koprozessor implementiert. Dieser Koprozessor musste gesondert erworben und in den dafür vorgesehenen Sockel auf der Hauptplatine eingesetzt werden. Gegenüber der Emulation durch Software war die Gleitkommarechnung auf einer 80x87-FPU 75- bis 100-mal schneller.[2]

In späteren x86-Prozessorgenerationen, aber schon ab dem (teureren) i486DX war der FPU-Teil meist schon im Hauptprozessor integriert. Der Begriff x87 wird aber immer noch verwendet, um die Untermenge des Befehlssatzes zu bezeichnen, die ursprünglich in den x87-Koprozessoren verarbeitet wurde. Seit der Einführung von SSE2 haben x87-Einheiten viel von ihrer früheren Bedeutung verloren. Für Berechnungen, die eine Mantisse von 64 Bit erfordern, wie sie mit den 80 Bit breiten x87-Registern möglich ist, sind sie aber weiterhin wichtig.

  1. 8087 Math Coprocessor. (PDF) Intel, Oktober 1989, S. 3, abgerufen am 4. Oktober 2018 (englisch).
  2. STEVE FARRER: High Speed Numerics with the 80186/80188 and 8087. Hrsg.: Intel Corporation. APPLICATION NOTE 258, 1986 (intel.com [PDF; 270 kB]).

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy