The encyclopedia · Engineering & Operations · Technical decision · 1947–1950
Hamming let a machine find and fix its own flipped bits.
By overlapping parity checks so each bit is covered by several, Hamming codes locate a single error and correct it, instead of just detecting it and rerunning.
Bell Telephone Laboratories
the move
In 1947 Richard Hamming, the man at Bell Labs who showed colleagues how to use computers, came in expecting results from a large relay machine that had run unattended over the weekend. It had failed early, and there was nothing to hand over. He asked the question that started it: if a machine can find out there is an error, why can't it locate where it is and fix it?
The machines he worked with used a parity check that could detect an error but not correct it, so any single flipped bit meant the job stopped and had to be redone. Hamming added overlapping parity bits so each data bit is covered by several checks, making a flipped bit produce a distinctive pattern that points to its own location.
That let the computer correct a single error and even detect two errors and correct one, without stopping. The method reached print in his 1950 paper in the Bell System Technical Journal and became the family of codes that bear his name, used in computers, telephone switching and later in everything from space probe telemetry to audio discs.
why it works
- Overlapping checks make each bit's failure pattern unique, so the error can be located.
- A machine that self-corrects avoids stopping and rerunning a long job.
- Redundancy overhead falls as the data block grows, so the fix gets cheaper.
- It turned error protection from a detection tool into a correction tool.
what transfers
Detecting an error is cheap but correcting it is what removes the waste; structuring the check bits to pinpoint the culprit buys the fix for free.
what came after
Hamming codes became the start of coding theory and the model for later, more powerful codes that now protect RAM, magnetic and optical storage, and data lines. Hamming received the IEEE Computer Society Pioneer Award in 1980, and the IEEE named its medal for information sciences after him.
references
spotted an error? The archive wants to know.