Aller au contenu principal

Le stockage numérique expliqué : des bits aux téraoctets

6 min de lecture
Stockage numériqueTechnologieMesureInformatique

Le stockage numérique expliqué : des bits aux téraoctets

Vous achetez un disque dur de 1 To, vous le branchez, et votre ordinateur indique qu'il contient 931 Go. Pas 1 000 Go. Pas même 999 Go. Vous vérifiez la boîte, le reçu, et vous vous demandez si une erreur a été commise. Personne n'a fait d'erreur. Le disque contient exactement autant d'octets que ce qui est indiqué. Le problème, c'est que le mot « gigaoctet » a deux significations différentes selon qui l'emploie.

Cet écart entre ce que vous attendiez et ce qu'affiche votre écran remonte à un conflit entre deux systèmes de comptage qui persiste depuis des décennies, a généré des procès et a semé la confusion chez des millions de personnes. Voici comment cela fonctionne.

Le bit, l'octet et leurs origines

Toute donnée sur un ordinateur se réduit à des chiffres binaires : des uns et des zéros. Un seul chiffre binaire est un bit. En 1956, Werner Buchholz, informaticien travaillant sur le superordinateur IBM Stretch, a inventé le terme byte (octet) pour décrire un groupe de bits traité comme une unité. Il a délibérément modifié l'orthographe de « bite » pour que personne ne le confonde avec « bit » dans la documentation écrite. Les premiers octets variaient en taille (certains systèmes utilisaient des octets de 6 bits), mais l'octet de 8 bits a finalement prévalu et est devenu universel.

Huit bits vous donnent 256 valeurs possibles (2 à la puissance 8). C'est suffisant pour représenter un seul caractère textuel, un petit nombre ou la valeur de couleur d'un pixel. Tout le reste dans le stockage numérique se construit à partir de cette base de 8 bits.

Deux façons de compter : décimal versus binaire

C'est là que la confusion commence. En mathématiques courantes, « kilo » signifie 1 000. Un kilogramme, c'est 1 000 grammes. Un kilomètre, c'est 1 000 mètres. Un kilooctet devrait donc être 1 000 octets, non ?

Dans le système décimal (base 10), oui. Mais les ordinateurs fonctionnent en binaire (base 2), et la puissance de 2 la plus proche de 1 000 est 1 024 (soit 2 à la puissance 10). Les premiers ingénieurs informatiques ont utilisé « kilooctet » pour désigner 1 024 octets parce que c'était suffisamment proche de 1 000 et correspondait parfaitement à l'architecture binaire. Le même schéma s'est répété vers le haut : « mégaoctet » signifiait 1 024 × 1 024 (1 048 576) octets, et « gigaoctet » signifiait 1 024 × 1 024 × 1 024 (1 073 741 824) octets.

Pour de petites quantités, la différence est minime. Au niveau du kilooctet, elle n'est que de 2,4 %. Mais l'écart s'accumule. À l'échelle du téraoctet, la valeur binaire (1 099 511 627 776 octets) est presque 10 % supérieure à la valeur décimale (1 000 000 000 000 octets). Ces 10 % représentent vos 69 Go « manquants » sur un disque de 1 To.

UnitéDécimal (SI)BinaireDifférence
Kilooctet1 000 octets1 024 octets2,4 %
Mégaoctet1 000 000 octets1 048 576 octets4,9 %
Gigaoctet1 000 000 000 octets1 073 741 824 octets7,4 %
Téraoctet1 000 000 000 000 octets1 099 511 627 776 octets10,0 %

Besoin de convertir entre ces unités ? Le convertisseur gigaoctets en mégaoctets gère les calculs décimaux, et le convertisseur téraoctets en gigaoctets convient aux capacités plus importantes.

La solution de l'IEC : le Kio, le Mio, le Gio

En décembre 1998, la Commission électrotechnique internationale (CEI) a tenté de résoudre ce problème. Elle a publié la norme CEI 60027-2, qui introduisait un nouvel ensemble de préfixes pour les multiples binaires : kibioctet (Kio) pour 1 024 octets, mébioctet (Mio) pour 1 048 576 octets, gibioctet (Gio) pour 1 073 741 824 octets et tébioctet (Tio) pour 1 099 511 627 776 octets. Les noms combinent les deux premières lettres du préfixe SI avec « bi » pour binaire : kibi, mébi, gibi, tébi.

Dans ce système, les anciens préfixes SI (kilo, méga, giga, téra) auraient exactement la même signification qu'ailleurs en science : des puissances de 1 000. Un gigaoctet serait toujours 1 000 000 000 octets. Un gibioctet serait toujours 1 073 741 824 octets. Clair et sans ambiguïté.

La réalité est que l'adoption a été lente. Les distributions Linux ont adopté les préfixes CEI il y a des années. macOS a fait le changement en 2009, c'est pourquoi un Mac affiche un disque de 1 To comme « 1 To » plutôt que « 931 Go ». Windows utilise encore l'ancienne interprétation binaire en l'étiquetant « Go », ce qui entretient la confusion pour la plus grande part des utilisateurs de bureau. La plupart des gens n'ont jamais entendu le mot « gibioctet ».

Pourquoi votre disque affiche moins que ce qui est annoncé

Les fabricants de disques utilisent la définition décimale. Lorsque Western Digital, Seagate ou Samsung imprime « 1 To » sur une boîte, ils veulent dire 1 000 000 000 000 octets. C'est techniquement correct selon les normes SI. Votre système d'exploitation, cependant, peut diviser ce nombre d'octets par 1 024 à chaque niveau au lieu de 1 000. Résultat : 1 000 000 000 000 divisé par 1 024, puis par 1 024, puis encore par 1 024, donne environ 931 Go affiché par le système.

Cet écart n'a pas été que théorique. Au début des années 2000, des recours collectifs ont visé des fabricants de disques durs dont Western Digital et Seagate. Les plaignants soutenaient que la publicité en gigaoctets décimaux était trompeuse parce que les systèmes d'exploitation signalaient moins d'espace. Western Digital a conclu un accord en 2006, offrant des logiciels de sauvegarde gratuits à environ un million de clients concernés. Seagate a conclu un accord similaire, proposant des remboursements en espèces ou des logiciels gratuits. Les disques contenaient toujours chaque octet imprimé sur l'étiquette. L'argument portait sur les attentes des consommateurs, pas sur des données manquantes.

Ce qui tient réellement sur un disque

Des décomptes d'octets abstraits ne signifient pas grand-chose sans contexte. Voici un guide approximatif de ce à quoi ressemblent les fichiers réels, en utilisant les mesures décimales standard de mégaoctets en kilooctets et de gigaoctets en téraoctets.

Type de fichierTaille typiquePour 1 GoPour 1 To
Document texte (5 pages)50 Ko~20 000 docs~20 millions
Chanson MP3 (4 min)4 Mo~250 chansons~250 000 chansons
Photo JPEG (12 MP)3-5 Mo~250 photos~250 000 photos
Photo RAW25-50 Mo~25 photos~25 000 photos
Film 1080p (2 h)1,5-4 Go~1 film~300 films
Film 4K (2 h)8-15 Gofilm partiel~80 films

Ces chiffres varient selon la compression, les paramètres de qualité et les codecs. Un flux 1080p fortement compressé depuis un service de streaming peut peser 1,5 Go, tandis qu'une copie Blu-ray du même film peut dépasser 30 Go.

La hiérarchie : des bits aux pétaoctets

Pour référence, voici l'échelle complète des unités de stockage courantes en notation décimale :

  • 1 octet = 8 bits
  • 1 kilooctet (Ko) = 1 000 octets
  • 1 mégaoctet (Mo) = 1 000 Ko = 1 million d'octets
  • 1 gigaoctet (Go) = 1 000 Mo = 1 milliard d'octets
  • 1 téraoctet (To) = 1 000 Go = 1 billion d'octets
  • 1 pétaoctet (Po) = 1 000 To = 1 000 milliards d'octets

Les appareils grand public atteignent actuellement quelques téraoctets pour les SSD et jusqu'à environ 30 To pour les disques durs d'entreprise. Les fournisseurs de cloud comme Google, Amazon et Microsoft gèrent des volumes de stockage mesurés en exaoctets (1 000 Po). Le convertisseur gigaoctets en mégaoctets est pratique lorsque vous devez comparer des tailles de fichiers à différentes échelles.

En résumé

Les fabricants de disques comptent en puissances de 1 000. Certains systèmes d'exploitation comptent en puissances de 1 024. La CEI a créé de nouveaux préfixes (Kio, Mio, Gio) pour éliminer l'ambiguïté, mais le monde a été lent à les adopter. Votre disque de 1 To contient exactement 1 000 milliards d'octets. Que cela s'affiche « 1 To » ou « 931 Go » à l'écran dépend entièrement de la définition que votre système d'exploitation applique au mot « gigaoctet ».

Personne ne vous trompe. Les octets sont tous là. Les étiquettes n'ont simplement pas rattrapé les mathématiques.


Sources : CEI 60027-2, NIST, IEEE, Werner Buchholz / IBM (1956)