unité de virgule flottante
Anglais: floating-point unit
Un microprocesseur qui effectue des opérations arithmétiques en virgule flottante. Dans les anciens modèles d'ordinateur, l'unité de virgule flottante n'était pas intégrée au processeur central, mais plutôt comme un coprocesseur si elle était incluse.
FPU : la puce qui gère rapidement les décimales et les petits nombres
Une unité de virgule flottante (FPU) est un cœur de processeur spécialisé, soit intégré au CPU principal, soit fonctionnant comme un coprocesseur séparé, qui exécute des opérations arithmétiques sur des nombres représentés au format virgule flottante. Contrairement à l'arithmétique à virgule fixe qui gère les nombres entiers et les fractions simples, la notation à virgule flottante utilise une mantisse et un exposant (similaire à la notation scientifique) pour représenter des valeurs très grandes, très petites et fractionnaires avec un nombre fixe de bits, généralement 32 ou 64 bits par nombre.
Dans les systèmes de contrôle industriel, le traitement du signal et la simulation numérique, la FPU effectue des opérations de multiplication, de division, de racine carrée et trigonométriques beaucoup plus rapidement que le CPU à usage général ne pourrait le faire par émulation logicielle. Un processeur exécutant de telles instructions sans FPU doit décomposer l'opération en de nombreuses étapes entières, prenant des centaines ou des milliers de cycles. Avec une FPU dédiée, la même opération se termine en quelques cycles, réduisant le temps d'exécution de millisecondes à microsecondes pour les algorithmes gourmands en calcul.
Séparation historique et intégration moderne
Dans les années 1980 et au début des années 1990, les unités de virgule flottante étaient des puces physiquement séparées, des coprocesseurs optionnels ajoutés aux systèmes qui en avaient besoin. L'Intel 8087 était une FPU autonome pour le processeur 8086 ; les familles 386 et 486 existaient en variantes avec ou sans matériel de virgule flottante intégré. À partir de la génération Pentium et dans les architectures ARM et RISC modernes, la FPU est devenue une partie obligatoire de la puce principale, éliminant la pénalité de la communication inter-puces et rendant le calcul mathématique courant plutôt que spécialisé.
Dans les applications industrielles embarquées exécutant des boucles de contrôle en temps réel, des calculs de rétroaction ou de fusion de capteurs, la présence ou l'absence d'une FPU détermine si un calcul se termine dans un budget temporel garanti. Les systèmes sans FPU doivent soit utiliser une approximation entière (introduisant une erreur de quantification), soit fonctionner plus lentement, soit passer à un matériel plus coûteux. Les microcontrôleurs modernes incluent couramment des FPU de simple précision (32 bits) ; les unités de double précision (64 bits) apparaissent dans les processeurs industriels plus performants et les systèmes critiques pour la sécurité où la précision numérique doit dépasser la résolution typique des capteurs.
L'arithmétique à virgule flottante a ses propres pièges : les erreurs d'arrondi s'accumulent dans les longs calculs, les opérations de comparaison doivent tolérer de petites tolérances plutôt que l'égalité, et certains nombres (comme 0,1 en binaire) ne peuvent pas être représentés exactement. Les ingénieurs logiciels industriels doivent tenir compte de ces limitations lors de l'écriture d'algorithmes de contrôle, en particulier dans les systèmes où la dérive de précision pourrait déclencher de fausses alarmes ou une instabilité. La norme IEEE 754 définit la manière dont les FPU conformes gèrent l'arrondi, le débordement et les valeurs spéciales comme l'infini et NaN, garantissant un comportement prévisible sur différents processeurs.
Sources
- Source de la définitionWiktionary