Ce este o unitate cu virgulă flotantă?

O unitate în virgulă mobilă este un bloc funcțional al unui procesor de computer care efectuează operații aritmetice în virgulă mobilă. Cunoscută și prin acronimul FPU, o unitate în virgulă mobilă poate fi și un co-procesor separat fizic. Un FPU accesează de obicei datele prin aceleași moduri de adresare ca și restul procesorului și, în general, include propriile registre. Un procesor folosește un FPU pentru a calcula funcții trigonometrice, logaritmice și aritmetice de bază în virgulă mobilă. De asemenea, folosește un FPU pentru a încărca, stoca și compara numere în mai multe tipuri de date întregi și în virgulă mobilă.

Multe procesoare nu includ o unitate în virgulă mobilă. Majoritatea microprocesoarelor produse de Intel Corporation și Motorola Incorporated înainte de sfârșitul anilor 1980 nu includ unul, de exemplu. Multe procesoare RISC (Reduced Instruction Set Computing) și controlere încorporate nu au nici unul. Aceste cipuri includ o unitate logică aritmetică (ALU) pentru a efectua funcții de bază aritmetice întregi și logice pe biți. Cu toate acestea, matematica cu virgulă mobilă este gestionată de un co-procesor extern sau de o bibliotecă de software.

Majoritatea procesoarelor și sistemelor software implementează standardul Institute of Electrical and Electronics Engineers (IEEE) pentru operațiuni în virgulă mobilă. Standardul IEEE-754 a fost lansat pentru prima dată în 1985 și extins în 2008 pentru a include tipuri de date suplimentare. Acesta definește mai multe tipuri de date întregi și în virgulă mobilă, fiecare cu propria sa precizie, reprezentare și interval numeric. De asemenea, definește multe operații aritmetice, metode de rotunjire și de gestionare a excepțiilor, cum ar fi o împărțire la zero. Indiferent dacă matematica este efectuată de o unitate în virgulă mobilă sau nu, standardul IEEE în virgulă mobilă garantează rezultate identice.

Pe lângă adunare, scădere, înmulțire și împărțire, o unitate în virgulă mobilă poate efectua multe alte operații. Acestea includ adesea calcule de scalare, rădăcină pătrată și logaritmice. Funcțiile trigonometrice sinus, cosinus și tangentă parțială sunt de asemenea furnizate. Numerele întregi și în virgulă mobilă pot fi comparate cu FPU și convertite de la o precizie la alta. De asemenea, pot fi rotunjite în orice direcție și stocate direct în memoria principală a procesorului.

FPU-ul unui procesor grafic poate include funcții adesea repetate comune pentru rotația sau animația tridimensională a obiectelor. Multe controlere încorporate sunt proiectate cu procesoare optimizate pentru procesarea semnalului digital (DSP). Acestea pot fi utilizate în aplicații audio și de comunicații și pot conține FPU-uri, care sunt bune la transformările rapide Fourier (FFT), de exemplu. Procesoarele de criptare includ adesea un FPU pentru calcularea de mare viteză a algoritmilor de criptare matematici. Procesoarele generale cu mai multe nuclee pot include, de asemenea, o unitate în virgulă mobilă pentru fiecare nucleu de procesor obișnuit.