Présentation

Article

1 - INTRODUCTION

2 - REPRÉSENTATION DES NOMBRES ENTIERS

3 - MULTIPLICATION D’ENTIERS SIGNÉS

4 - DIVISION D’ENTIERS SIGNÉS

5 - REPRÉSENTATION VIRGULE FIXE

6 - REPRÉSENTATION VIRGULE FLOTTANTE

7 - FLOTTANTS PAR BLOC

8 - CODAGE DU DÉCIMAL

9 - FLOTTANTS DÉCIMAUX

10 - FORMAT POSIT

11 - REMARQUES POUR CONCLURE

Article de référence | Réf : H1210 v1

Introduction
Codage des nombres dans les ordinateurs

Auteur(s) : Daniel ETIEMBLE

Date de publication : 10 nov. 2023

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

RÉ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’article

Auteur(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.

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h1210


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

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais English

1. Introduction

Les processeurs des ordinateurs travaillent uniquement sur des chiffres binaires (0,1) appelés bits. Pour représenter des nombres, il faut donc passer par un codage. Le nombre de bits utilisés pour coder un nombre détermine la quantité de nombres représentables : avec N bits, on peut disposer de 2N nombres différents. Les types de codage les plus utilisés sont les nombres en représentation entière et les nombres en représentation flottante que l’on trouve dans tous les processeurs d’usage général, ainsi qu’un certain nombre de représentations que l’on trouve dans des processeurs plus spécialisés, comme les processeurs de traitement du signal.

Les processeurs généralistes 32 bits disposent des entiers 32 bits, ainsi que des sous-ensembles 16 bits et 8 bits, et des flottants 32 bits et 64 bits. Les processeurs généralistes 64 bits ajoutent les entiers 64 bits à la liste précédente.

Pour faire face aux contraintes de performance, de consommation énergétique et d’occupation mémoire, des formats flottants 16 bits et 8 bits sont maintenant utilisés, notamment pour l’implantation des réseaux de neurones. D’autres formats, comme les entiers 4 bits, sont aussi utilisés. L’implantation sur FPGA ou dans des IP (Intellectual Property) permet d’utiliser ces formats différents des formats classiques.

Dans cet article, nous présentons les différentes représentations en discutant leurs propriétés et leurs limites.

HAUT DE PAGE

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

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

ABONNEZ-VOUS

Lecture en cours
Introduction
Sommaire
Sommaire

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

  • ...

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

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

ABONNEZ-VOUS