Stands for "Error Correction Code."
ECC is a method of verifying the integrity of data written to and read from system memory. Special RAM modules, called ECC RAM, use ECC to protect data from corruption and are often used in systems where reliability and uptime are critical. Workstations, servers, medical and scientific equipment, and aircraft control computers typically use ECC RAM.
Most computer memory errors are single-bit errors caused by an individual bit's value flipping from 0 to 1 (or vice versa) due to some sort of electromagnetic interference. These errors often result in system instability or corrupted data — for example, changing a single character of text or the color value of a pixel. ECC memory can locate single-bit errors and fix them, flipping the affected bit back to its original value.
When a system writes data to an ECC memory module, it does two things that help it track errors. First, it adds an extra bit of data to each word (or group of bits), called a parity bit, which keeps track of how many bits in a particular word have a value of 1. It also generates an error correction code using a built-in algorithm based on the positions of 0s and 1s in the word. If the number of 1s changes due to a single-bit error, the parity bit won't match. The ECC circuitry in the memory module refers back to the error correction code it generated to identify which bit flipped, then flips it back to its original state.
ECC memory modules are more complex due to the extra circuitry, which makes them more expensive than non-ECC memory. They require more memory chips than non-ECC memory modules in order to store the parity bits. ECC memory also performs slower than non-ECC memory, thanks to the extra steps required to generate error correction codes and check the parity bit. Because of the cost and performance hit, a typical desktop or laptop computer uses non-ECC RAM, leaving ECC RAM for high-uptime servers and workstations.