| Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées | ||||||
Une unité de calcul en virgule flottante (FPU) ou un coprocesseur arithmetique est un ou une partie d'un processeur spécialement conçue pour effectuer des opérations sur des nombres à virgule flottante. Les opérations typiques sont de l'arithmétique avec chiffres décimaux (telle que l'addition et la multiplication), mais quelques systèmes sont tout autant capables d'exécuter des calculs exponentiels ou trigonométriques (comme les racines carrées ou les cosinus).
Tous les processeurs n'ont pas d'unité à virgule flottante dédiée. En son absence, le processeur utilise un programme microcode pour émuler une fonction du FPU en utilisant l'arithmétique de l'unité logique (ALU). Cette microprogrammation est plus lente qu'un câblage, mais bien plus économique et bien moins dissipatrice d'énergie parce que moins complexe. De plus, cela reste bien plus rapide que le même calcul programmé, puisque tout le calcul se fait dans l'antémémoire.
Le Pentium avait une unité flottante microprogrammée, et le remplissage incomplet d'une table du microcode était à l'origine de son fameux bug.
Dans quelques architectures d'ordinateur, les opérations à virgule flottante sont effectuées complètement séparément des opérations sur les nombres entiers, avec les registres dédiée aux virgules flottantes et des horloges indépendantes. Les opérations en virgule flottante comme l'addition et la multiplication sont typiquement pipeliné, mais les opérations plus compliquées, comme la division, ne peuvent pas l'être, et quelques systèmes peuvent même avoir un, voir plusieurs circuit(s) dédié(s) à la division de nombre à virgule flottante.
Dans les machines à architecture RISC, le problème se pose en des termes différents : c'est souvent une instruction unique (multiply and add qui effectue simultanément les deux opérations flottantes. La raison en est le grand nombre d'opération matricielles en calcul scientifique.
Jusqu'au milieu des annès 1990, il était normal que la FPU soit entièrement séparée du processeur dans les ordinateurs personnels. Elle constituait, une option facultative, achetée seulement si nécessaire pour accélérer ou permettre d'utiliser des applications qui exigeaient une FPU. Notons que les applications d'illustration vectorielle comme Corel Draw, bien que fortement consommatrices de fonctions trigonométriques, n'utilisaient pas la virgule flottante, mais des approximations ingénieuses travaillant sur des valeurs entières (car de toute façon on ne cherche jamais à adresser plus précisément que le pixel d'écran). Aussi l'éditeur canadien précisait-il bien dans sa documentation qu'il ne fallait pas chercher à accélérer le produit en achetant un coprocesseur flottant.
Exemple de coprocesseurs :
De nos jours, les FPU sont généralement inclus dans le processeur parce que l'échelle d'intégration le permet pour un coût à peu près nul, tandis que les câblages manuels (ou assistés) coûtent pour leur part plus cher que l'impression d'un circuit intégrant tout dès le départ.


