Bit
Le bit est l'unité la plus simple dans un système de numération, ne pouvant prendre que deux valeurs, désignées le plus souvent par les chiffres 0 et 1. Un bit ou élément binaire peut représenter aussi bien une alternative logique, exprimée par faux et vrai, qu'un chiffre du système binaire.
Dans la théorie de l'information, un bit est la quantité minimale d'information transmise par un message, et constitue à ce titre l'unité de mesure de base de l'information en informatique. La quantité d'information effectivement transmise s'exprime en shannons, et ne peut dépasser la taille du message en bits.
Les systèmes numériques traitent exclusivement des informations réduites en bits, en général associés dans des groupes de taille fixe appelés bytes (/bait/).
Usages
Le mot « bit » est la contraction des mots anglais binary digit, qui signifient « chiffre binaire », avec un jeu de mot sur bit, « petit morceau ». On en doit la popularisation à Claude Shannon, qui en attribue l'invention à John Tukey[1].
Élément binaire
Le bit ou élément binaire est l'élément constitutif du système de numération binaire[2]. Ce système, le plus analytique de tous les systèmes de numération, est à la base de presque tous les systèmes informatiques[3].
Unité d'information
Selon la théorie mathématique de l'information de Shannon, lorsque l'on reçoit l'information correspondant à l'occurrence d'un évènement ayant 1 chance sur 2 de se produire, on reçoit un bit d'information.
Lors du tir à pile ou face de l'engagement d'un match de football, quand l'arbitre indique que la pièce est tombée sur pile, il transmet un bit d'information aux 2 capitaines des équipes en compétition, parce qu'avant cette annonce, la probabilité d'obtenir l'un ou l'autre résultat était égale.
Le nom de l'unité élémentaire d'information est le shannon, symbole Sh[4].
Dans un encodage idéal de l'information, tout bit (élément binaire) porterait un shannon d'information. Ce n'est pas le cas, parce que les informations environnant un bit dans un flux peuvent affecter sa probabilité d'avoir l'une ou l'autre valeur. L'information contenue dans un flux de n bits est au maximum de n shannons. Elle est en général moindre, parce que toutes les combinaisons ne correspondent pas à des messages valides de probabilité égale.
Pour assurer une détection d'erreur, on transmet volontairement des informations excédentaires, qui se déduisent des données transmises. Un des systèmes les plus simples consiste à coder sur 8 bits un mot de 7 bits, le huitième, appelé bit de parité, étant calculé de telle sorte que le nombre total de 1 dans l'ensemble soit toujours soit pair, soit impair, selon la convention en vigueur.
Un tel ensemble de 8 octets n'a que 27 valeurs possibles, et transporte 7 et non 8 shannons.
Outre ces redondances volontaires, introduites dans le but de corriger les erreurs de transmission, les encodages contiennent une part de répétition que l'on conserve parce qu'elles facilitent le traitement des données numériques.
En informatique, on code souvent les grandeurs en nombres à virgule flottante. La norme IEEE 754 fixe, pour le codage sur 32 bits, un encodage qui détermine 4 286 578 689 valeurs valides sur les 232, soit 4 294 967 296 possibles.
Un nombre en virgule flottante de 32 bits apporte ainsi 31,997 et non 32 shannons d'information.
En outre, les communications humaines contiennent une part involontaire de répétition, qui peut être partiellement réduite par l'analyse statistique. La compression de données vise à rapprocher le nombre de bits d'un message de la quantité d'information qu'il transmet, élevant ainsi le nombre de shannons par bit.
Lorsqu'on ne se préoccupe pas de l'efficacité de l'encodage, un bit et un shannon sont pratiquement équivalents.
Ensembles ordonnés de bits
Il ne faut pas confondre un bit avec un byte, mot anglais qui se prononce /bait/ et se traduit par multiplet[5], ensemble ordonné de bits. En informatique, le byte est généralement un ensemble ordonné de 8 bits, ce qui dans ce cas fait un octet. Quand le nombre d'éléments binaires qui le compose est différent, cela est normalement précisé. On peut ainsi trouver les formes « doublet », « triplet », et plus généralement, « n-uplet »[6].
Notation des valeurs
Un bit ne peut prendre que deux valeurs. Selon le contexte, numérique, logique (voir algèbre de Boole), électronique numérique, ou magnétique, on les appelle « zéro » et « un » ce qui équivaut respectivement à « faux » et « vrai », « ouvert » et « fermé », ou « nord » et « sud » :
Contexte | Valeurs | |
---|---|---|
Numérique | 0 | 1 |
Logique | faux | vrai |
non | oui | |
Espace | ici | là |
Interrupteur | ouvert | fermé |
Magnétique | nord | sud |
Optique | noir | blanc |
Technologiquement parlant, il existe une grande variété de moyens d'encodage binaire de l'information, selon le support de stockage ou de transmission utilisé : les propriétés physiques telle que la polarisation magnétique, la charge, le courant ou la tension électrique, l'intensité lumineuse, sont couramment utilisées.
L'essentiel est d'autoriser avec une très bonne fiabilité la distinction entre les deux états 0 et 1 de manière à limiter les erreurs.
Abréviation et symbole
Ordre de grandeur |
Système international (SI) |
Préfixes binaires | ||||
---|---|---|---|---|---|---|
Unité | Notation | Valeur | Unité | Notation | Valeur | |
1 | bit | bit | 1 bit | bit | bit | 1 bit |
103 | kilobit | kbit | 103 bits | kibibit | Kibit | 210 bits |
106 | mégabit | Mbit | 106 bits | mébibit | Mibit | 220 bits |
109 | gigabit | Gbit | 109 bits | gibibit | Gibit | 230 bits |
1012 | térabit | Tbit | 1012 bits | tébibit | Tibit | 240 bits |
1015 | pétabit | Pbit | 1015 bits | pébibit | Pibit | 250 bits |
1018 | exabit | Ebit | 1018 bits | exbibit | Eibit | 260 bits |
1021 | zettabit | Zbit | 1021 bits | zébibit | Zibit | 270 bits |
1024 | yottabit | Ybit | 1024 bits | yobibit | Yibit | 280 bits |
Il n'y a pas de norme universellement acceptée au sujet des abréviations de bit et byte. Un standard fréquemment cité est celui du Commission électrotechnique internationale IEC 60027 (en) qui définit bit comme étant le symbole de l'unité binaire (par exemple, kbit pour kilobit). Le même standard définit o et B pour le byte.
Aujourd'hui, le standard harmonisé ISO/IEC IEC 80000-13:2008 (en) remplace et annule les articles 3.8 et 3.9 de la norme IEC 60027-2:2005 (relatifs à la théorie de l'information et aux préfixes binaires).
Un autre standard souvent cité est IEEE 1541 (en) qui donne b comme symbole d'unité pour bit et B pour byte. Cette convention est fréquemment utilisée en informatique, mais elle s'oppose de plusieurs manières aux usages définis pour le système international d'unités (dont le bit ne fait pas partie)[7] :
- ces deux symboles sont déjà utilisés pour d'autres unités : b pour le barn et B pour le bel ;
- bit est déjà l'abréviation de binary digit, il y a peu de raison de l'abréger encore ;
- dans le système international, seules les unités dont le nom provient de celui d'une personne ont un symbole abrégé en majuscule, le nom de l'unité s'écrivant sans majuscule initiale dans tous les cas[8] : ainsi, l'ampère, du nom de André-Marie Ampère, a pour symbole A ;
- au lieu de byte, le terme octet est utilisé dans certains domaines (par l'UIT notamment) et dans les pays francophones, ce qui rend plus difficile l'adoption d'un standard ;
- b est parfois utilisé comme symbole du byte, ainsi que bit pour le bit.
Le bel est rarement utilisé tel quel, on emploie plutôt le décibel (dB), qu'il est peu probable de confondre avec un décibyte, puisqu'on n'emploie que des multiples du byte en télécommunications et en informatique.
Parallélisation du train de bits
Des années 1970 jusqu'à vers 1986, les fondeurs ont cherché à faire traiter les plus grands nombres entiers possibles par cycle d'horloge par leurs processeurs les plus puissants. En effet il est beaucoup plus efficace en termes de rapidité de faire par une instruction un calcul sur un chiffre codé sur grand nombre d'octets plutôt que de décomposer l'opération en plusieurs opérations qui manipulent des chiffres plus petits. Autrement dit, une multiplication sur 2 octets est beaucoup plus efficace que deux multiplications, un décalage et une addition à retenue sur 1 octet. Par exemple, en Hexadécimal 0x41 * 0x5 (soit 0x145) est plus rapide que 0x4*0x5 (soit 0x14), décalé d'un octet, plus 0x1*0x5. Le résultat est similaire pour les additions.
L'Intel 4004 est le premier microprocesseur. Il manipulait des mots de 4 bits. Les processeurs 8 bits les ont remplacés, ont suivi les 16 bits, les 16-32, les 32 bits, les 64 bits qui équipent les ordinateurs personnels depuis 2002, et ce jusqu'au processeur Very Long Instruction Word.
Traitement parallèle des bits
Les circuits électroniques sont souvent conçus pour traiter plusieurs bits en parallèle. Ceci permet d'accélérer ou d'augmenter les capacités de traitement de l'information.
Il faut une seconde pour transférer un mégaoctet de données à travers un bus informatique de 8 bits cadencé à 1 mégahertz. Si la largeur du bus est doublée à 16 bits, alors une demi-seconde suffit.
Un processeur 32 bits peut adresser directement 4 gibioctets de mémoire informatique. Un processeur 64 bits peut adresser 16 exbibits.
Le sous-dimensionnement des capacités des processeurs est un problème historique posé par l'augmentation des capacités de mémorisation. Ainsi, les compatibles PC ont été initialement basé sur une architecture 16 bits (architecture x86, 1978) qui ne pouvait pas adresser plus de 64 kibioctets de mémoire sans passer par des complications (segmentation, mémoire étendue, mémoire paginée). Les capacités de traitement 32 bits furent introduites dans la famille x86 avec l'Intel 80386 (1986), mais ce n'est qu'avec un système d'exploitation conçu pour tirer parti des capacités 32 bits (Linux, Windows NT, Windows 95) que les 4 gibioctets d'adressage peuvent être pleinement exploités.
Les difficultés rencontrées pour augmenter les capacités en élargissant le nombre de bits traités simultanément constituent un défi technique. En effet, la plupart des opérations courantes utilisées dans un programme informatique ne nécessitent pas des nombres dépassant 16 ou 32 bits. Les jeux d'instructions ont ainsi été étendus de manière à réaliser par exemple deux opérations 32 bits en une fois sur un processeur 64 bits. Malheureusement, il est souvent difficile d'exploiter toujours au mieux les capacités d'un processeur 64 bits. Les gains réels d'un élargissement des capacités d'un processeur sont donc souvent atténués par la difficulté à optimiser la compilation des programmes de manière à tirer parti de ces architectures.
Voir aussi
Articles connexes
- Débit binaire
- Préfixe binaire
- Système binaire
- Octet
- Byte
- Adressage mémoire
- Algèbre de Boole
- Électronique numérique
- Ordre de grandeur des données
- Nat (information)
Notes et références
- ↑ Trésor de la langue française informatisé ; Oxford English Dictionnary, « bit (4) » ; (en) Claude E. Shannon, « A Mathematical Theory of Communication », Bell System Technical Journal, vol. 27, , p. 379-423 et 623-656 (ISBN 0252725484, lire en ligne).
- ↑ Commission électrotechnique internationale, Electropedia 721-02-08 « bit » ; Trésor de la langue française informatisé.
- ↑ Sauf les calculateurs quantiques : « bit », dans Richard Taillet, Loïc Villain et Pascal Febvre, Dictionnaire de physique, Bruxelles, De Boeck, , p. 73.
- ↑ France Terme, citant le Journal officiel de la république française du 14 décembre 2004 ; Electropedia 702-04-21 ; Union internationale des télécommunications, Recommandation UIT-R V.607-2.
- ↑ Dictionnaire anglais-français/français-anglais Harrap's Compact
- ↑ Commission électrotechnique internationale, Electropedia 721-02-18 « octet », 721-05-06 « multiplet », 704-16-20 « multiplet, n-uplet ».
- ↑ Bureau international des poids et mesures, brochure sur le système international d'unités.
- ↑ Exception pour le litre, dont le symbole L est accepté.
- Portail de l’informatique