Gleitkommaeinheit

Gleitkommaeinheit
80287, FPU einer 80286 CPU mit 6 MHz.

Gleitkommaeinheit, FPU (für Floating Point Unit) oder NPU (für Numeric Processing Unit) sind Begriffe aus der Computertechnik und bezeichnen einen speziellen Prozessor, der Operationen auf Gleitkommazahlen ausführt. Da insbesondere bei älteren, Mikrocode-basierten Systemen neben vergleichsweise einfachen Operationen wie Addition, Subtraktion, Multiplikation, Division oder Wurzel ziehen auch transzendeten Funktionen wie die Exponentialfunktion oder diverse trigonometrische Funktionen in Hardware ausgeführt waren, spricht man umgangssprachlich auch vom mathematischen (Ko-)Prozessor.

Bei vielen modernen CPUs ist die Gleitkommaeinheit als Koprozessor realisiert. Die FPU kann auch als externer Chip in einem eigenen Gehäuse sitzen (z. B. Intel 80287) oder in einen bestimmten Bereich innerhalb der CPU integriert sein (z. B. Intel Pentium).

Frühen CISC-Prozessoren fehlte meist Register und Befehle zur Behandlung von Gleitkommazahlen. Derlei Berechnungen und mathematische Funktionen wurden per Software-Bibliotheksaufrufe durch den auf Ganzzahlverarbeitung optimierten Hauptprozessor erledigt. Dies war um den Faktor 10 und 30 langsamer, als wenn diese auf einer FPU ausgeführt worden wären. Daher gab es bei CISC-CPUs wie den Intel x86-Prozessoren (bis zum 486er) oder den Motorola 68k-CPUs die Möglichkeit, einen zusätzlichen Koprozessor auf dem Motherboard nachzurüsten.

Eingeläutet wurde das Zeitalter der integrierten FPUs durch mehrere Faktoren:

  • In CPUs integrierte Caches sind unvereinbar mit externen FPUs. Der letzte Versuch Intels, mit einem externen Coprozessor Geld einzunehmen, endete mit dem 487SX-Coprozessor. Dieser war ein vollständiger Prozessor; für die Verwendung wurde der eigentliche Hauptprozessor (ein 80486 SX) stillgelegt.
  • Mathematische Funktionen wurden zunehmend in „normalen“ Applikationen verwendet, z.B. im Rendern von Zeichensätzen.
  • Gatterfunktionen wurden zunehmend preiswerter, Sockel und Steckverbinder eher teurer.

Funktionsweise und Aufbau

Architektur der FPU i8087 beziehungsweise i80287.
Architektur der FPU i80387 mit 16-Bit-Barrel-Shifter und CORDIC-Einheit

Die Anwesenheit einer FPU ermöglicht einen erheblichen Leistungssprung für gleitkommaintensive Berechnungen. So boten Koprozessoren breitere Register: Schon bei 16- und 32-Bit-CPUs hatte die FPU häufig 64 Bit, 80 Bit oder auch 128 Bit breite Register. Dadurch konnten einfache Berechnungen mit höherer Genauigkeit durchgeführt werden und es wurde ein größerer Wertebereich abgedeckt. Da auch die FPU im Inneren letztendlich eine digitale Recheneinheit darstellt, bedarf es weiterer, trickreicher Methoden, um eine echte Beschleunigung zu erhalten. Viele Modelle (z. B. der 80x87) verfügen über hardwareseitig optimierte Rechenmethoden wie z. B. den CORDIC-Algorithmus für trigonometrische Funktionen, welcher nur durch Addition und Registerverschiebung, aber ohne langwierige Multiplikation auskommt. Oft wird eine große Beschleunigung auch über fest implementierte Lookup-Tabellen erreicht. Das heißt, die Werte werden nicht über mehrmalige Schleifendurchläufe ermittelt, sondern zuerst mit Hilfe von Tabellen näherungsweise und dann durch Interpolationsverfahren bis zu hinreichender Genauigkeit ermittelt. (Eine fehlerhafte Tabelle war übrigens Ursache bei dem berühmten Pentium-Bug.) Weiterhin kann eine FPU ihre Register oftmals als Matrix organisieren und so Vektorrechnungen beschleunigen.

Die meisten FPUs stellen Operationen für die Grundrechenarten (mit höherer Genauigkeit als die CPU), Logarithmus-, Wurzel- und Potenzrechnung und trigonometrische Funktionen, sowie Funktionen für das Rechnen mit Matrizen zur Verfügung.

Die Rechenleistung einer FPU wird meistens in SPECfp gemessen, im Gegensatz zu den SPECint einer CPU.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • FPU — Gleitkommaeinheit ist ein Begriff aus der Computertechnik und bezeichnet einen speziellen Prozessor, der mathematische Funktionen oder Gleitkommazahlen verarbeitet. Bei vielen modernen CPUs ist die FPU als Koprozessor realisiert. FPU oder NPU… …   Deutsch Wikipedia

  • 8087 — Intel 8087 Der Intel 8087 ist eine in NMOS Technologie (HMOS III, 1,5 µm) gefertigte Gleitkommaeinheit. Intel entwickelte den 8087 im Jahr 1980 als x86er Koprozessor für die 8086, 8088,80186 und 80188 Prozessoren. Auf den …   Deutsch Wikipedia

  • Intel 8087 — Der Intel 8087 ist eine in NMOS Technologie (HMOS III, 3 µm)[1] gefertigte Gleitkommaeinheit (englisch floating point unit, kurz FPU). Intel entwickelte den 8087 im Jahr 1980 als x87 Koprozessor für die 8086, 8088 …   Deutsch Wikipedia

  • Koprozessor — AMD 80C287 für Intel Systeme mit 80286 Hauptprozessor, eingeführt 1989 Koprozessor von …   Deutsch Wikipedia

  • Macintosh-Modelle — Liste von Apple Macintosh Modellen sortiert nach CPU Typ: Inhaltsverzeichnis 1 Namenskonventionen 2 Motorola 68k 2.1 Motorola 68000 2.2 Motorola 68020 …   Deutsch Wikipedia

  • Pentium-4 — Intel Pentium 4 Produktion: 2000 bis 2008 [1] Produzent: Intel …   Deutsch Wikipedia

  • Pentium 4 — Intel Pentium 4 Produktion: 2000 bis 2008 [1] Produzent: Intel …   Deutsch Wikipedia

  • Pentium IV — Intel Pentium 4 Produktion: 2000 bis 2008 [1] Produzent: Intel …   Deutsch Wikipedia

  • 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

  • 68060 — Motorola MC 68EC060. Der Motorola 68060 ist ein 32 Bit Prozessor von Motorola. Er wurde 1994 als Nachfolger des Motorola 68040 veröffentlicht. Der 68060 ist der leistungsstärkste Prozessor der 680x0 Prozessorfamilie. Inhaltsverzeichnis …   Deutsch Wikipedia

Share the article and excerpts

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