Présentation
EnglishRÉSUMÉ
Les processeurs ne travaillant que sur des chiffres binaires, un codage est nécessaire pour représenter les différents types de nombres. Les formats entiers et flottants traités par les processeurs généralistes sont présentés avec les opérations arithmétiques de base et la manière dont elles sont implantées dans les jeux d’instructions des processeurs. Des formats plus spécifiques (virgule fixe, décimal, flottants réduits, nombres Posit) sont aussi présentés et discutés.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleAuteur(s)
-
Daniel ETIEMBLE : Ingénieur de l’INSA de Lyon - Professeur émérite à l’université Paris Saclay
INTRODUCTION
Comme les processeurs et plus généralement les systèmes électroniques digitaux opèrent uniquement sur des chiffres binaires appelées bits, le traitement des nombres nécessite un codage.
Les différentes représentations impliquent plusieurs aspects :
-
la présentation des formats ;
-
les opérations arithmétiques de base (addition, soustraction, multiplication, division) avec les problèmes éventuels de dépassement de capacité ;
-
les instructions des jeux d’instructions pour les différentes opérations, avec les variantes selon les jeux d’instructions.
Les formats entiers sur n bits représentent des nombres entiers non signés ou signés. Si les nombres positifs ont toujours la même représentation, différentes représentations des nombres négatifs ont été définies : signe et valeur absolue, complément à 1, complément à 2, cette dernière étant la seule utilisée depuis des dizaines d’années. Pour les opérations sur les entiers, le nombre de bits en sortie est différent du nombre de bits en entrée. Une addition n bits + n bits fournit un résultat sur n+1 bits et une multiplication n bits * n bits fournit un résultat sur 2n bits. Le traitement des retenues (addition) ou des n bits de poids fort (multiplication) pose des problèmes à la fois pour les instructions scalaires et pour les instructions SIMD des différents jeux d’instructions.
Les formats flottants simple précision (32 bits) et double précision (64 bits) ont été normalisés depuis le milieu des années 1980 (IEEE 754). Ils sont présentés ainsi que des formats réduits 16 bits et 8 bits plus récents, utilisés dans les réseaux de neurones profonds. Les formats flottants par bloc et les flottants décimaux sont aussi présentés. Le format Posit, proposé par J.L. Gustafson comme alternative à l’utilisation des formats flottants IEEE 754, est présenté et discuté.
Alors que les formats entiers et flottants existant depuis des dizaines d’années sont utilisés dans les processeurs généralistes, des modèles de calcul comme ceux des réseaux de neurones et les problèmes de consommation énergétique ont conduit à l’apparition de formats réduits qui peuvent être ajoutés à certains jeux d’instructions d’usage général ou implantés dans des processeurs spécialisés, des IP, des FPGA, etc.
MOTS-CLÉS
format entier format flottant format virgule fixe opérations arithmétiques BCD flottants 16 et 8 bits nombres Posit
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
9. Flottants décimaux
La norme IEEE-754-2008 définit des formats 32, 64 et 128 bits pour les flottants décimaux. Le format 32 bits est utilisé pour le stockage. Les flottants décimaux sont utilisés pour des applications de type gestion, comptabilité pour lesquelles des calculs décimaux précis sont nécessaires. Cela explique que la norme soit rarement implantée en matériel. Les processeurs IBM depuis le Power6 et les mainframes depuis IBM Systemz9 implantent ce format. Dans les processeurs récents, on peut citer le processeur Sparc64 X/X+ de Fujitsu qui implante les formats 32 et 64 bits. Intel utilise une bibliothèque logicielle pour les flottants décimaux.
Le format flottant décimal, présenté en figure 14, est défini par (s,q,C) où :
-
s est le bit de signe ;
-
q est l’exposant et E est la partie exposant : E = q + Biais ;
-
C correspond à la partie fraction.
Il existe deux codages différents : BID a un codage binaire de la fraction. DPB a un codage décimal de la fraction. La partie haute de la fraction (C0) est combinée avec la partie exposant en un champ combo de w + 5 bits. Le reste de la fraction a p-1 chiffres ou 4(p-1) bits. Le détail du décodage n’est pas présenté ici. Le lecteur intéressé trouvera tous les détails dans la spécification de la norme IEEE754 et la spécification du Sparc64 de Fujitsu .
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Flottants décimaux
BIBLIOGRAPHIE
-
(1) - HARRIS (D.), OBERMAN (S.), HOROWITZ (M.) - SRT Division: Architectures, Models, and Implementations (PDF) (Technical report). Stanford University, - 9 September 1998.
-
(2) - - IEEE Standard for Floating-Point Arithmetic, https://irem.univ-reunion.fr/IMG/pdf/ieee-754-2008.pdf
-
(3) - * - Intel® Advanced Vector Extensions 512 – FP16 Instruction Set for Intel® Xeon® Processor Based Products.
-
(4) - - BFloat16 processing for Neural Networks on Armv8-A, https://comunity.arm.com/arm-community-blogs/b/ai-and-ml-blog/posts/bfloat16-processing-for-neural-networks-on-armv8_2d00_ahttps://www.ti.com/lit/an/spra948/spra948.pdf
-
(5) - ROUHANI (R.) et al - Pushing the Limits of Narrow Precision Inferencing at Cloud Scale with Microsoft Floating Point, - 34th conference on Neural Information Processing Systems (NeuroIPS 2020à, Vancouver, Canada. https://www.microsoft.com/en-us/research/publication/pushing-the-limits-of-narrow-precision-inferencing-at-cloud-scale-with-microsoft-floating-point
-
...
DANS NOS BASES DOCUMENTAIRES
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive