Floating-point unit

De floating-point unit (FPU) is het gedeelte van een processor dat berekeningen met zwevendekommagetallen (floating-point numbers) kan uitvoeren. Basisoperaties zijn optellen, aftrekken, vermenigvuldigen, delen en worteltrekken. Sommige systemen laten ook zogenaamde transcendente functies toe, zoals exponentiële en trigonometrische bewerkingen, al vindt men deze in moderne systemen meestal geïmplementeerd in software.

Verzameling x87-coprocessoren ontwikkeld en gefabriceerd door Intel.

Terminologie bewerken

De Engelse uitdrukking floating point wordt in de praktijk vaak vertaald met drijvende komma, wat oorspronkelijk als anglicisme werd beschouwd. Het destijds als correct beschouwde zwevende komma of vlottende komma komt nu nauwelijks meer voor.

Ontwikkeling bewerken

In het verleden was de FPU een aparte chip (coprocessor) die naar wens bijgeplaatst kon worden. Voor de Intel x86-familie was bijvoorbeeld de 80287 de FPU die bij de 80286-CPU hoorde en de 387 was de FPU van de 386-CPU. Ook Intel-concurrent Motorola werkte aanvankelijk voor hun 68000-familie met een externe FPU, zoals de 68882. Behalve FPU's van de fabrikant van de CPU waren er ook onafhankelijke types als de AMD 9511 die voor bijvoorbeeld de Apple II gebruikt kon worden en de chips van Weitek die als sneller alternatief voor de Intel-FPU leverbaar waren.

Zowel Intel als Motorola brachten rond 1990 de eerste processoren met geïntegreerde FPU op de markt. Bij Intel werd vanaf de 486 de FPU op de CPU zelf geïntegreerd en verdween de behoefte aan losse FPU's. Eenzelfde ontwikkeling vond plaats bij concurrent Motorola. Waar de 68030 nog met een externe FPU moest werken, had de 68040 als eerste lid van de 68000-familie deze eenheid in geïntegreerde vorm.

Moderne processoren kunnen zelfs meer dan één FPU geïntegreerd hebben, zodat ze tegelijkertijd verschillende bewerkingen kunnen uitvoeren.

Een speciale FPU die vele berekeningen tegelijkertijd kan uitvoeren wordt ook wel vectorprocessor genoemd. Vectorprocessoren waren verkrijgbaar voor sommige minicomputers en maken vaak ook deel uit van supercomputers.