Qu’un byte compte huit bits, aucune loi de la logique binaire ne le dicte : c’est une décision d’IBM prise au début des années soixante, pendant la conception du System/360, et elle est sortie de l’une des discussions internes les plus dures du projet. D’un côté, Gene Amdahl, architecte en chef du matériel, partisan d’un byte plus petit. De l’autre, Fred Brooks, directeur du projet, qui a imposé les huit bits. Amdahl a perdu, a quitté IBM en 1970 et a fini par monter une entreprise qui vendait des mainframes compatibles IBM, construits, bien sûr, sur le byte de huit bits.
Les points clés de la raison pour laquelle un byte fait 8 bits en 30 secondes
- Werner Buchholz a inventé le mot byte dans une note d’IBM de juin 1956, pour des groupes de un à six bits.
- Sur le System/360, Gene Amdahl défendait un byte plus court et Fred Brooks a imposé celui de huit bits.
- La raison principale était commerciale : deux chiffres décimaux tiennent dans un byte de huit bits.
- Amdahl a fondé en 1970 sa propre entreprise, qui vendait des machines compatibles IBM.
- Fujitsu a racheté l’intégralité d’Amdahl Corporation en 1997.
Cette histoire aide à comprendre quelque chose que l’on tient aujourd’hui pour acquis dans n’importe quel centre de données : les tailles des unités de données avec lesquelles nous travaillons, de la mémoire aux paquets réseau, ont été fixées pour des raisons commerciales et de compatibilité autant que pour des raisons techniques.
Un byte né ajustable
Le mot byte est apparu dans une note du 11 juin 1956 signée Werner Buchholz au sein du projet Stretch, le superordinateur à transistors qu’IBM développait alors (le futur IBM 7030). Selon ce que Buchholz a lui-même raconté dans une lettre publiée par la revue BYTE en février 1977, lors de ce premier usage un byte pouvait compter n’importe quel nombre de bits en parallèle, de un à six, car les équipements d’entrée et de sortie de l’époque traitaient six bits à la fois. La possibilité de passer à des bytes de huit bits a été évoquée en août 1956 et intégrée à la conception de Stretch peu après. Le nom jouait sur bite, morsure, en changeant la voyelle pour qu’on ne le confonde pas par erreur avec bit.
Six contre huit : la discussion du System/360
Amdahl organisait sa proposition autour d’un byte court et de mots de 24 bits, qu’il jugeait suffisants et moins chers à fabriquer ; les versions de ceux qui ont travaillé avec lui parlent de six bits et, dans un cas, de sept. L’alternative, avec des bytes de huit bits et des formats de 32 et 64 bits, avait le soutien de Brooks. D’anciens collègues se souviennent que Brooks renvoyait Amdahl dans son bureau avec la consigne de ne pas revenir tant que les tailles ne seraient pas des puissances de deux, car sinon ils ne savaient pas le programmer.
L’argument de fond était commercial. Quatre bits suffisent pour un chiffre décimal, donc un byte de huit en stocke deux, empaquetés, ce qui est précieux pour la paie, la comptabilité et les registres remplis de chiffres. Huit bits donnaient aussi 256 combinaisons pour les caractères, contre 64 pour six bits, avec de la place pour les minuscules et les symboles. Les partisans des six bits avaient des raisons scientifiques : plus de précision que nécessaire allongeait les calculs, une préoccupation réelle compte tenu du coût des machines de l’époque.
Selon ce que Brooks a raconté des années plus tard, le jour de la décision, lui comme Amdahl ont présenté séparément leur démission, et un dirigeant les a récupérés le lendemain. Brooks en est venu à considérer le passage au byte de huit bits comme sa plus grande contribution à l’informatique. Amdahl a pourtant gagné une partie : les adresses du System/360 ont été de 24 bits, quoique stockées dans des mots de 32, une décision qui a permis, avec le temps, d’étendre l’architecture.
Ce sont les calculs scientifiques qui ont payé le prix
Le System/360 a en outre adopté une virgule flottante hexadécimale, qui décale les nombres par tranches de quatre bits. Selon l’article des architectes eux-mêmes, elle a été choisie parce qu’elle réduisait la fréquence des décalages et des dépassements lors des additions, ce qui améliorait les performances des grands modèles et rendait les petits moins chers. L’inconvénient était la perte de précision.
Les clients scientifiques l’ont remarqué aussitôt. Lors de la réunion de SHARE, le groupe d’utilisateurs d’IBM, tenue à Toronto en août 1966, des travaux ont été présentés sur les bizarreries de la virgule flottante du System/360, et le mathématicien William Kahan, alors à l’Université de Toronto, a documenté les problèmes du portage de programmes numériques depuis la génération précédente. Le défaut le plus grave était l’absence de chiffre de garde en double précision : multiplier un nombre par 1,0 pouvait modifier son dernier chiffre hexadécimal. IBM a fini par ajouter ce chiffre de garde à l’architecture en 1968 et a modifié toutes les machines déjà installées.
L’architecte qui a vendu le byte dont il ne voulait pas
Amdahl est resté chez IBM jusqu’en 1970. Cette année-là, il a fondé Amdahl Corporation, basée à Sunnyvale, pour fabriquer des mainframes compatibles prise à prise avec ceux d’IBM : des machines qui exécutaient le même logiciel, un peu plus rapides et un peu moins chères. Pour obtenir un financement, il s’est tourné vers Fujitsu, qui est entré au capital au début des années soixante-dix avec une participation qu’il a augmentée au fil des ans.
Le premier 470V/6, numéro de série 00001, a été livré à la NASA en juin 1975 et concurrençait le System/370 Modèle 168 d’IBM. Comme il exécutait le logiciel d’IBM, il devait copier son architecture, byte de huit bits compris. L’entreprise est entrée en Bourse en 1976 et a été pendant deux décennies le principal rival d’IBM sur les mainframes compatibles.
La fin est venue avec l’effondrement du marché des mainframes dans les années quatre-vingt-dix. Le 30 juillet 1997, Fujitsu, qui détenait déjà environ 42 % des actions, a accepté d’acheter le reste à 12 dollars le titre, soit environ 850 millions de dollars au total, et Amdahl est devenue une filiale à 100 % du groupe japonais.
À ce moment-là, le byte de huit bits était déjà universel. Lorsque les réseaux ont commencé à relier des machines différentes, les ingénieurs ont évité l’ambiguïté avec un autre mot : la spécification d’IPv4, la RFC 791 de 1981, parle d’octets, des groupes de huit bits, précisément parce que tous les ordinateurs n’utilisaient pas la même taille de byte. Aujourd’hui la distinction paraît un détail technique, mais elle rappelle que le huit a été un choix.
Questions fréquentes
Qui a inventé le mot byte ?
Werner Buchholz, ingénieur d’IBM, dans une note du projet Stretch datée du 11 juin 1956.
Pourquoi un byte fait-il 8 bits ?
Parce qu’IBM l’a fixé ainsi dans le System/360, annoncé en 1964. Huit bits permettaient de stocker deux chiffres décimaux et 256 caractères différents, et l’influence de cette famille d’ordinateurs a répandu le standard.
Quelle taille de byte voulait Gene Amdahl ?
Une taille plus courte, avec des mots de 24 bits. La plupart des témoignages parlent de six bits ; l’un mentionne sept.
Qu’est devenue Amdahl Corporation ?
Elle a fabriqué des mainframes compatibles IBM à partir de 1975 et, en 1997, est devenue une filiale à 100 % de Fujitsu, qui a payé environ 850 millions de dollars pour les actions qu’il ne détenait pas encore.
Sources :
- Computer History Museum : note Link System de W. Buchholz (1956)
- Amdahl, Blaauw et Brooks : Architecture of the IBM System/360 (1964)
- Heidelberg Laureate Forum : conversation avec Fred Brooks
- W. Kahan : 7094-II System Support for Numerical Analysis (1966)
- D. Goldberg : What Every Computer Scientist Should Know About Floating-Point Arithmetic
- SEC : communiqué de Fujitsu et Amdahl (30/07/1997)