I have heard that error correcting codes are used to store and retrieve data in hard-drives but are they used in the processors in common laptops? Is the information encoded before it is processed?
1 Answer
Error correction means extra bits are stored along with the data. Think of it as a advanced checksum. A checksum can detect when the data is corrupt. A error correcting "checksum" allows recovering some limited numbers of errors, usually a single bit error in the chunk of data being protected by the checksum.
Since this isn't free, it is done only when the benefits are important. In some cases it's cheaper to allow for a higher native bit error rate, but add bits to get the effective overall bit error rate back down via error correcting codes. This is often done with dynamic RAM modules that plug into ordinary PC motherboards. Whether laptops use them or not is best determined by reading the documentation for individual laptops. Magnetic disks is another common application. This time it's because their native bit error rate is unacceptably low for the densities and read/write speed people demand.
The error correcting bits are usually determined and checked with dedicated combinatorial logic running in parallel with fetches and stores. That way this process largely doesn't get in the way of memory operations, and is largely transparent to the entity that is reading/writing data from/to the memory.