In der heutigen Welt ist Gleitkommaeinheit zu einem Thema von Interesse für ein breites Spektrum der Gesellschaft geworden. Die Relevanz von Gleitkommaeinheit überschreitet Grenzen und Kontexte und hat erhebliche Auswirkungen auf die Art und Weise, wie wir leben und miteinander umgehen. Von seinem Einfluss auf Politik, Wirtschaft, Kultur und Technologie bis hin zu seinen Auswirkungen auf das tägliche Leben der Menschen nimmt Gleitkommaeinheit einen prominenten Platz auf der öffentlichen Agenda ein. In diesem Artikel werden wir die verschiedenen Dimensionen von Gleitkommaeinheit und seine Bedeutung in der heutigen Welt untersuchen und eine umfassende Analyse anbieten, die ein tiefes Verständnis seines heutigen Umfangs und seiner Relevanz ermöglicht.
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.
Wenn ein Computer Gleitkommaoperationen ausführen soll, gibt es zwei prinzipielle Möglichkeiten:
Frühe CISC-Prozessoren verfügten meist nicht über eingebaute Mechanismen zur Behandlung von Gleitkommazahlen. Gleitkommaberechnungen und mathematischen Funktionen wurden per Software durch den Hauptprozessor erledigt, was einerseits den Hauptprozessor beanspruchte und andererseits erheblich langsamer als eine spezialisierte Hardwarelösung war. Daher ging man dazu über, spezialisierte Koprozessoren zusätzlich zu implementieren. Da sie vorwiegend komplexere Operationen wie Multiplikation, Division oder Wurzelziehen und transzendente Funktionen durchführen können, werden sie auch „mathematische Koprozessoren“ genannt.
Bei CISC-Mikroprozessoren konnten die Systeme dann teilweise mit zusätzlichem Koprozessor ausgerüstet werden. Das waren z. B. von AMD der AM9511 bzw. AM9512 (lizenziert von Intel als Intel i8231 bzw. i8232), die als periphere Bausteine angesprochen wurden. Bei späteren CISC-CPUs wie den Intel x86-Prozessoren (bis zum 486er) oder den Motorola-68k-CPUs gab es die Möglichkeit, einen Koprozessor direkt auf dem Motherboard nachzurüsten. Beispiele waren die Koprozessoren von Intel 8087, 80287, 80387 und 80487. Mit fortschreitender Integration wurden die FPUs in die CPU integriert (z. B. Intel Pentium).
Eingeläutet wurde das Zeitalter der integrierten FPUs durch mehrere Faktoren:
Die Anwesenheit einer FPU ermöglicht eine erhebliche Leistungssteigerung 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 8087) 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 (Ein Fehler in einer solchen Tabelle war Ursache des sogenannten 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.