En 1947, Richard Hamming, l'homme des Bell Labs qui montrait à ses collègues comment utiliser les ordinateurs, s'attendait à recevoir les résultats d'une grande machine à relais qui avait fonctionné sans surveillance tout le week-end. Elle était tombée en panne tôt, et il n'y avait rien à récupérer. Il posa la question qui fut à l'origine de tout : si une machine peut découvrir qu'il y a une erreur, pourquoi ne peut-elle pas localiser où elle se trouve et la corriger ?
Les machines avec lesquelles il travaillait utilisaient un contrôle de parité qui pouvait détecter une erreur mais pas la corriger, de sorte que tout bit inversé faisait arrêter la tâche, qu'il fallait recommencer. Hamming ajouta des bits de parité entrelacés afin que chaque bit de données soit couvert par plusieurs contrôles, ce qui fait qu'un bit inversé produit un motif distinctif qui indique sa propre position.
Cela permit à l'ordinateur de corriger une erreur unique et même de détecter deux erreurs et d'en corriger une, sans s'arrêter. La méthode fut publiée dans son article de 1950 dans le Bell System Technical Journal et devint la famille de codes qui porte son nom, utilisée dans les ordinateurs, la commutation téléphonique et plus tard dans tout, de la télémétrie des sondes spatiales aux disques audio.
Ajouter des bits qui localisent l'erreur, et pas seulement qui la signalent
Des contrôles entrelacés rendent unique le motif de défaillance de chaque bit, ce qui permet de localiser l'erreur.
Une machine qui se corrige elle-même évite de s'arrêter et de relancer une longue tâche.
La surcharge de redondance diminue à mesure que le bloc de données grandit, si bien que la correction coûte moins cher.
Cela a transformé la protection contre les erreurs d'un outil de détection en un outil de correction.
Détecter une erreur coûte peu, mais c'est la corriger qui élimine le gaspillage ; structurer les bits de contrôle pour pointer le coupable permet d'obtenir la correction gratuitement.
Suites
Les codes de Hamming marquèrent le début de la théorie du codage et servirent de modèle aux codes ultérieurs plus puissants qui protègent aujourd'hui la mémoire RAM, le stockage magnétique et optique, et les lignes de données. Hamming reçut le Pioneer Award de l'IEEE Computer Society en 1980, et l'IEEE nomma sa médaille pour les sciences de l'information en son honneur.
VÉRIFIEZ LES SOURCES
Les sources
- Richard Wesley Hamming — Computer Pioneers IEEE Computer Society · history.computer.org
- Algebraic Coding Theory / Error Detection and Correction University of Puget Sound · math.pugetsound.edu