An important thing to understand about ECC and parity memory is that ECC and
Parity memory modules DO NOT perform any error detection or correction function
themselves. Error checking and correction functions are carried out on the
system board, not on the memory module itself. The modules simply provide the
space required to store the extra bits of data that represent the condition of
the real data. The computer always calculates parity and ECC data for every read
and write.
Parity
'Parity' is a form of error detection that uses a single bit to represent the odd or even quantities of '1's and '0's in the data. Parity usually consists of one parity bit for each eight bits of data.
On most systems, a parity error detection results in the computer system freezing entirely and the displaying of a 'Parity Error' message on the screen. The system must then be restarted.
Because parity only identifies odd or even quantities, two incorrect bits can
go undetected.
Parity has lost favor over the years for several reasons:
For many users, the cost of the extra chips isn't justified by the low level of protection.
ECC
'ECC' or Error Checking and Correcting permits error detection as well as correction of certain errors. Typically, ECC can detect single and dual bit errors, and can correct single bit errors.
Corrected errors are usually transparent to the operating system. The memory controller chip on the system board performs the correction and always sends corrected data to the CPU. The memory controller can inform the OS when errors are corrected, but most have no means of logging the corrections or informing the user. So, the user may never know an error ever occurred.
Multi-bit errors are so rare that further detection and correction capabilities are required only in extreme cases, and would require custom memory components. For that level of protection 100% redundancy would probably be less expensive by using single bit correction memory modules on two separate memory subsystems.
The double-bit detection, single-bit correction ECC functions may require more or fewer extra bits than parity depending on the data path. For example:
As you can see, there's a break-even point at 64 bits. At this point, the security of ECC costs the same (in DRAM) as the less capable parity. In our opinion, the efficiency of ECC versus parity in today’s 64-bit processors and the inevitably wider data paths of future processors makes continued use of parity highly improbable.
EOS
'EOS' stands for ECC-On-SIMM. Like ECC and parity, EOS memory modules contain extra data storage for error correction data. Unlike ECC and parity, EOS memory modules actually perform the error detecting and correcting on the module using customized logic chips on each module. EOS corrects errors before they're sent to the system so that the ECC function is transparent to both the OS and the system itself. EOS memory modules can be used on systems that normally would not be capable of ECC, thus giving them most of the security advantages of ECC.
For systems designed to use EOS, the EOS module uses normally unused pins on the memory module to inform the computer system of error corrections.
The disadvantages are many:
That means EOS will cost much more, take longer to get or replace, and statistically less reliable than normal ECC.