Jules Richardson wrote:
Pete Turnbull wrote:
ECC stands for error correction code, and is a
multi-bit arrangement
capable of not only detecting errors but providing enough information
to correct some of them. How much it detects and provides correction
for, depends on how many bits and how they're organised.
How much "redundancy" is common? I know my NCR Tower uses 7 bits of ECC
per 32 bits of data, but presumably there are all sorts of different
arrangments...
Depends on what you are protecting. You need to increase the
"Hamming distance" between valid code words so that you can
detect/correct the desired number of bits.
E.g., simple parity detects a single error and corrects 0 errors.
For a "detect 2, correct 1" code, you usually need log2(bits)+1
extra bits. (e.g., 6 bits for a 32 bit datum -- assuming you
don't have to deal with protecting individual bytes, etc.)
It used to annoy me having an extra 7MB
"wasted" memory in a 32MB
machine [1]
[1] Machine was built circa 1988, so 32MB back then was pretty
respectable I suppose (albeit on a multi-user machine) - I didn't get
that much on a PC until the mid-90's.