Architetture dei processori/Floating Point Unit

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search
Esempio di FPU

La Floating Point Unit (FPU), unità di calcolo in virgola mobile, è una parte della CPU specializzata nello svolgere i calcoli in virgola mobile. La maggior parte delle operazioni svolte sono di semplice aritmetica (come addizioni o moltiplicazioni), ma alcuni sistemi sono in grado di svolgere calcoli esponenziali o trigonometrici (come estrazioni di radice o il calcolo del seno).

Non tutte le CPU possiedono una FPU dedicata: alcune usano degli emulatori per svolgere il calcolo in virgola mobile con una ALU; ciò risparmia il costo di una unità di calcolo aggiuntiva, ma il procedimento è sensibilmente più lento.

In alcune CPU il calcolo in virgola mobile è gestito in modo completamente separato dal calcolo intero, con registri dedicati e schemi di clock indipendenti. Le operazioni di addizione e di moltiplicazione sono generalmente eseguite all'interno di una pipeline, ma operazioni più complicate, come la divisione, a volte non lo sono, e alcuni sistemi hanno addirittura un circuito dedicato alla divisione.

Fino alla metà degli anni '90 era comune che le FPU fossero completamente separate dalle CPU all'interno degli home computer ed essere tutt'al più incluse solo come optional, utile solo per applicazioni con intenso calcolo matematico. Ne sono esempi i i387 e i487 della Intel, da affiancarsi rispettivamente all'Intel 80386 e all'Intel 80486 SX, e il Motorola 68881, usato nei processori della famiglia Motorola 68000, diffusi nei computer Macintosh. Da allora, la FPU ha cominciato ad essere integrata nei processori.