Skip to content

Niveau 8 · Chapitre 8.5

Disques optiques et bandes

Comment les CD, DVD et Blu-ray stockent les bits sous forme de creux, pourquoi un CD transforme chaque octet en 14 bits et a encore besoin de trois niveaux de correction d’erreurs (avec une démonstration interactive de l’entrelacement), pourquoi l’optique a décliné, et pourquoi la bande LTO conserve encore les archives du monde entier.

Tout en bas de la hiérarchie mémoire de Tanenbaum se trouvent deux types de stockage lents d’accès mais bon marché par octet : les disques optiques et la bande magnétique. Le livre consacre dix pages aux premiers et expédie la seconde en une phrase — les bandes seraient « rarement utilisées, sauf pour la sauvegarde, et il n’y a de toute façon pas grand-chose à en dire ». Une décennie plus tard, le verdict s’est inversé. Les disques optiques ont pour l’essentiel quitté l’informatique, tandis que la bande stocke discrètement une grande part des données archivées du monde. Ce chapitre traite des deux, et des astuces de codage qui les rendent fiables.

Creux, plats et laser

Un CD est un disque de polycarbonate de 120 mm de diamètre, qui porte une unique piste en spirale de creux (pits) microscopiques pressés dans sa surface, recouverte d’une fine couche de métal réfléchissant et d’un vernis. Les zones planes entre les creux sont les plats (lands). Le lecteur éclaire la piste par en dessous avec un laser infrarouge focalisé et mesure la lumière réfléchie avec une photodiode.

Les creux ont une profondeur d’environ un quart de longueur d’onde (mesurée à l’intérieur du plastique). La lumière réfléchie par le fond d’un creux parcourt une demi-longueur d’onde de plus que celle réfléchie par le plat qui l’entoure, si bien que lorsque le spot chevauche le bord d’un creux, les deux réflexions s’annulent en partie et le détecteur reçoit moins de lumière. (Stocker un bit : charge, magnétisme et lumière, au niveau de la physique, traite de l’optique.)

Le lecteur ne lit pas un creux comme un 1 et un plat comme un 0. Une transition — le bord d’un creux, là où la lumière réfléchie change — signifie 1, et une portion sans transition signifie des 0. La longueur de chaque creux et de chaque plat code le nombre de 0 qui passent avant le 1 suivant.

Comme la musique doit être jouée à débit constant, la piste d’un CD défile devant le laser à vitesse linéaire constante : le disque tourne plus vite quand la tête est près du centre que près du bord. Un disque dur, au contraire, tourne à vitesse angulaire constante. Les lecteurs informatiques plus récents, en quête de vitesse, faisaient souvent tourner le disque à vitesse angulaire constante et acceptaient un débit variable.

Pourquoi un octet devient 14 bits

Le laser ne peut pas lire n’importe quel motif de bits. Des creux et des plats trop courts ne peuvent pas être distingués par le spot du laser, et des portions trop longues ne donnent au lecteur aucune transition pour garder son horloge calée sur les données. Un CD n’écrit donc jamais directement les bits de l’utilisateur. Il utilise la modulation huit-quatorze (EFM, eight-to-fourteen modulation) : chaque octet de 8 bits est remplacé par un motif de 14 bits tiré d’une table, choisi pour que deux 1 soient toujours séparés par au moins 2 et au plus 10 zéros. Sur les 16 384 motifs de 14 bits possibles, 267 respectent la règle, assez pour couvrir les 256 octets. Trois bits de fusion entre les motifs maintiennent la règle d’un octet à l’autre, si bien que chaque octet coûte 17 bits sur le disque.

Tanenbaum décrit l’EFM comme s’il s’agissait d’un code correcteur d’erreurs — 14 bits suffisant « à coder un octet de 8 bits en Hamming, avec 2 bits de reste » — et affirme que les CD corrigent les erreurs d’un seul bit « à l’intérieur d’un symbole ». Ce n’est pas ce que fait l’EFM. C’est un code de modulation (un code à longueur de plage limitée, ou run-length-limited) : il n’ajoute aucune redondance pour corriger les erreurs, il ne fait que mettre en forme le signal pour que le laser puisse le lire et que l’horloge puisse le suivre. Un motif EFM mal lu donne simplement un octet faux, que le niveau suivant doit corriger.

Trois niveaux de correction d’erreurs

Ce niveau suivant, c’est le CIRC (cross-interleaved Reed–Solomon code, code de Reed–Solomon à entrelacement croisé), identique sur les CD audio et les CD-ROM. L’unité de base est la trame : 24 octets de données, plus 8 octets de parité Reed–Solomon en deux étages, plus 1 octet d’informations de contrôle. Chacun de ces 33 octets devient 17 bits après l’EFM, et un motif de synchronisation complète la trame : 33 × 17 + 27 = 588 bits sur le disque pour 24 octets de données.

La clé du CIRC, c’est l’entrelacement (interleaving). Une rayure ou une trace de doigt n’abîme pas des bits au hasard : elle efface une rafale d’octets consécutifs le long de la piste. Un code capable de réparer deux ou trois octets par mot de code est impuissant face à une rafale de plusieurs centaines d’octets dans un même mot de code. Les octets de chaque mot de code sont donc répartis le long de la piste, mêlés à ceux de nombreux autres mots de code. Une longue rafale devient alors quelques octets manquants dans chacun de nombreux mots de code, ce que le code sait corriger. Le CIRC corrige entièrement des rafales d’environ 3 500 bits (à peu près 2,4 mm de piste), et masque les plus longues dans la musique en interpolant entre les échantillons voisins.

Le principe tient dans un petit programme. Quatre mots de code, de 5 octets de données et 1 octet de parité XOR chacun — la même parité que le RAID 5 —, sont écrits sur la « piste » de façon entrelacée : l’octet j du mot de code i va à la position 4·j + i. Puis une rayure détruit quatre octets consécutifs :

Live · L’entrelacement change une rayure en quatre petites erreurs réparables

À essayer : Appuyez sur Step pour exécuter une instruction, Run pour animer ou Continue pour aller au bout ; les boutons L2 à L7 changent de niveau, vers le bas ou le haut.

C source — click a line number for a breakpoint
  1. char word[4][6]; /* 4 codewords: 5 data bytes + 1 XOR parity byte */
  2. char disc[24]; /* the order the bytes are written along the track */
  3. char lost[24]; /* the drive knows which bytes it failed to read */
  4. int main() {
  5. char *text = "SCRATCHES_ARE_LONG!!"; /* 20 data bytes */
  6. for (int i = 0; i < 4; i++) {
  7. word[i][5] = 0;
  8. for (int j = 0; j < 5; j++) {
  9. word[i][j] = text[i * 5 + j];
  10. word[i][5] ^= word[i][j];
  11. }
  12. }
  13. for (int i = 0; i < 4; i++) /* interleave: byte j of word i */
  14. for (int j = 0; j < 6; j++) /* goes to position j*4 + i */
  15. disc[j * 4 + i] = word[i][j];
  16. for (int k = 8; k < 12; k++) { /* a scratch: 4 bytes in a row */
  17. disc[k] = 0;
  18. lost[k] = 1;
  19. }
  20. int fixed = 0;
  21. for (int i = 0; i < 4; i++) { /* de-interleave and repair */
  22. int miss = -1, x = 0;
  23. for (int j = 0; j < 6; j++) {
  24. if (lost[j * 4 + i]) miss = j;
  25. else x ^= disc[j * 4 + i];
  26. }
  27. if (miss >= 0) { disc[miss * 4 + i] = x; fixed++; }
  28. }
  29. for (int i = 0; i < 4; i++)
  30. for (int j = 0; j < 5; j++) putchar(disc[j * 4 + i]);
  31. putchar('\n');
  32. return fixed;
  33. }
step 0
Loading emulator…
Your program as you wrote it: the current line, its variables by name, and its output.

Il affiche le texte intact et renvoie 4 : un octet réparé dans chaque mot de code. Les positions 8 à 11 contenaient l’octet 2 de chaque mot de code, donc chacun a perdu un octet, que sa parité restaure. Écrites sans entrelacement, les positions 8 à 11 auraient été quatre octets du même mot de code, et un seul octet de parité ne peut pas en restaurer quatre. Le vrai CIRC utilise des codes de Reed–Solomon qui corrigent plusieurs octets par mot de code et entrelace sur plus d’une centaine de trames, mais l’idée est exactement celle-ci.

Les CD-ROM, qui ne peuvent pas se contenter de l’interpolation qui masque les erreurs dans la musique, ajoutent un troisième niveau. Chaque secteur mode 1 de 2 352 octets (le contenu de 98 trames) contient 12 octets de synchronisation, un en-tête de 4 octets avec l’adresse du secteur et le mode, 2 048 octets de données utilisateur et 288 octets de détection et de correction d’erreurs. Le prix de ces trois niveaux : 98 trames × 588 bits = 7 203 octets sur le disque pour 2 048 octets de données, un rendement d’environ 28 %.

Les chiffres du livre se vérifient. Un lecteur standard lit 75 secteurs par seconde, soit 153 600 octets/s de données utilisateur — le « 1× ». Un disque de 74 minutes compte 74 × 60 × 75 = 333 000 secteurs, 681 984 000 octets, c’est-à-dire 650 Mio. Un disque de 80 minutes compte 360 000 secteurs, 703 Mio : le familier CD-R de « 700 Mo ».

CD-R, CD-RW, DVD et Blu-ray

Les disques enregistrables ne peuvent pas presser de creux, alors ils les imitent. Un CD-R porte une couche de colorant organique qu’un laser plus puissant assombrit définitivement là où doit se trouver un « creux ». Un CD-RW utilise à la place un alliage à changement de phase : chauffé par le laser à une certaine température puis refroidi rapidement, il devient amorphe et terne ; chauffé à une température plus basse, il recristallise et redevient réfléchissant, ce qui permet de le réécrire.

Chaque génération suivante a fait tenir plus de données sur le même disque de 120 mm, principalement en focalisant le laser sur un spot plus petit. La taille du spot est proportionnelle à la longueur d’onde divisée par l’ouverture numérique (ON) de la lentille :

CDDVDBlu-ray
laser780 nm, infrarouge650 nm, rouge405 nm, bleu-violet
ouverture numérique0,450,600,85
pas de piste1,6 µm0,74 µm0,32 µm
capacité par coucheenviron 0,7 Go4,7 Go25 Go

La surface du spot varie comme (longueur d’onde / ON)², qui s’est améliorée d’un facteur 2,6 du CD au DVD et de 13 du CD au Blu-ray. Le reste du gain d’un facteur 35 du Blu-ray vient d’une modulation et de codes correcteurs d’erreurs plus efficaces. Le DVD et le Blu-ray empilent aussi des couches : le laser traverse une couche supérieure semi-transparente pour se focaliser sur celle du dessous.

Tanenbaum affirme qu’un disque Blu-ray double face contient environ 50 Go. Le disque de 50 Go est en réalité double couche, sur une seule face ; les disques Blu-ray standard sont simple face. Les variantes BDXL atteignent 100 Go avec trois couches et 128 Go avec quatre.

Pourquoi l’optique a quitté l’informatique

Dans le livre, les disques optiques sont le moyen de distribuer les logiciels, les livres et les sauvegardes. Ce rôle a disparu. Logiciels, films et musique se téléchargent ou se diffusent en streaming ; la plupart des ordinateurs sont livrés sans lecteur optique ; les sauvegardes vont sur des disques, dans le cloud ou sur bande. Les chiffres l’expliquent : un disque Blu-ray contient 25 à 50 Go, alors qu’une clé USB ou une carte SD en contient davantage, se réécrit librement et tient dans une poche, et qu’un disque dur en contient mille fois plus. En février 2025, Sony a arrêté la fabrication des disques Blu-ray enregistrables, sans successeur prévu.

Les disques pressés subsistent pour les films et les consoles de jeu, où la duplication de masse à bas coût compte encore, ainsi que pour certaines archives à long terme. Mais comme stockage informatique, les supports optiques sont désormais une couche historique de la hiérarchie.

La bande : toujours là

La bande magnétique stocke les bits comme un disque dur, sous forme de régions aimantées, mais sur un long et mince ruban de plastique enroulé sur une bobine à l’intérieur d’une cartouche. La bande défile devant une tête fixe qui écrit de nombreuses pistes parallèles à la fois. Arrivée au bout, la tête se décale latéralement et écrit le groupe de pistes suivant dans l’autre sens, et ainsi de suite, en allers et retours : c’est l’enregistrement en serpentin, où la tête passe de nombreuses fois sur le même ruban pour le remplir.

Le format dominant est le LTO (Linear Tape-Open), un standard ouvert avec une nouvelle génération toutes les quelques années.

Le LTO-9, de 2021, contient 18 To par cartouche et écrit à 400 Mo/s ; le LTO-10, annoncé en 2025, porte la capacité native à 30 To. (Les capacités « compressées », 2,5 fois plus élevées, supposent des données qui se compressent bien.) Depuis le LTO-5, le système de fichiers LTFS permet de monter une cartouche comme un disque, avec des fichiers et des répertoires, ce qui rend les bandes lisibles sans le logiciel de sauvegarde qui les a écrites.

Le point faible de la bande, c’est le temps d’accès. Pour lire un fichier, un robot va chercher la cartouche sur une étagère de la bibliothèque, la charge dans un lecteur, et le lecteur enroule la bande jusqu’au bon endroit : des dizaines de secondes à quelques minutes avant que le premier octet arrive, contre quelques millisecondes pour un disque. Mais une fois positionnée, la bande débite vite : 400 Mo/s, c’est plus rapide qu’un disque dur. Remplir une cartouche LTO-9 prend 18 To / 400 Mo/s = 45 000 s, environ 12,5 heures.

La bande perdure parce que, pour des données qui doivent être conservées mais sont rarement lues, elle l’emporte sur presque tout le reste :

  • Le coût par téraoctet : la cartouche n’est qu’un ruban et une coque en plastique ; les pièces coûteuses, le lecteur et le robot, sont partagées entre des milliers de cartouches.
  • L’énergie : une cartouche sur une étagère ne consomme rien. Un disque qui contient les mêmes données doit tourner, ou au moins être alimenté et vérifié.
  • L’isolement physique (air gap) : une cartouche éjectée de la bibliothèque est physiquement déconnectée de tout réseau. Un rançongiciel ou l’erreur d’un administrateur peut effacer tous les disques en ligne et toutes les sauvegardes en ligne ; il ne peut pas atteindre une bande sur une étagère. C’est la sauvegarde que le RAID n’est pas.
  • La longévité et la fiabilité : les fabricants garantissent les bandes pour des décennies de stockage, et les lecteurs de bande relisent les données avec des taux d’erreur très faibles, chaque bloc étant protégé par des codes correcteurs d’erreurs puissants et vérifié, au moment même de l’écriture, par une tête de lecture placée juste derrière la tête d’écriture.

La hiérarchie mémoire du livre tient donc toujours en bas, avec un changement : la couche du bas est la bande, pas l’optique. Les grandes organisations et les fournisseurs de cloud conservent leurs données les plus froides — sauvegardes, données scientifiques, archives de films, documents de conformité — dans des bibliothèques de bandes contenant des milliers de cartouches.

À retenir

  • Un CD stocke les bits sous forme de creux et de plats sur une unique piste en spirale ; le bord d’un creux signifie 1. Des creux profonds d’un quart de longueur d’onde font s’annuler les réflexions.
  • L’EFM fait correspondre chaque octet à 14 bits (plus 3 bits de fusion) pour que les 1 soient séparés par 2 à 10 zéros. C’est un code de modulation, pas une correction d’erreurs, contrairement à ce que dit le livre.
  • Le CIRC protège des trames de 24 octets avec des codes de Reed–Solomon et l’entrelacement, qui répartit une rafale sur de nombreux mots de code ; le mode 1 des CD-ROM ajoute un troisième niveau. 2 048 octets de données occupent 7 203 octets sur le disque.
  • Le DVD et le Blu-ray stockent plus de données grâce à des longueurs d’onde plus courtes et des ouvertures numériques plus grandes (780 → 650 → 405 nm). Le Blu-ray de 50 Go est double couche, et non double face comme le dit le livre.
  • Les supports optiques ont quitté l’informatique : le téléchargement, la mémoire flash et les disques les ont remplacés, et Sony a arrêté de fabriquer des Blu-ray enregistrables en 2025.
  • La bande est bien vivante : le LTO-9 contient 18 To natifs à 400 Mo/s, le LTO-10 30 To. Lente à atteindre, rapide à lire en continu, bon marché, sans consommation et physiquement isolée sur son étagère — la couche d’archivage que le livre avait écartée.

Dans ce niveau

  1. 8.1Le transistor comme interrupteur
  2. 8.2Construire des portes en CMOS
  3. 8.3Du sable à la puce
  4. 8.4Disques durs, SSD et RAID
  5. 8.5Disques optiques et bandes
  6. 8.6Claviers, écrans, imprimantes et caméras
  7. 8.7Des modems à Ethernet : envoyer des bits sur un fil