Originally posted by: The Pentium Guy
Anyone care to tell me what ECC does?
Depending upon the text that you refer to, ECC stands for either, (1) Error Checking and Correcting, or (2) Error Checking Code.
If you begin with basic parity memory, it stores 9-bits/byte instead of 8-bits/byte. The 9th bit is generated by adding up the first 8-bits. The value of the 9th bit indicates whether the total is odd or even. When the byte is eventually read from memory, the status of the total is recalculated and compared to the stored parity bit. If they don't match, that means one of the data bits has changed. Unfortunately, there is no way to determine which bit has changed.
ECC memory uses a more refined approach that not only detects that the data has changed, but actually repairs it. Basic ECC memory can handle a single bit-error.
To implement ECC, you need both ECC memory modules, and a motherboard that implements the technique. ECC memory modules are typically 15% to 45% more expensive, are available from limited sources, are available in limited speeds, and introduce an additional wait state to perform the calculation. This means that the system runs slightly slower.
The intended use of the computer usually dictates if there is a need for parity memory. For example, if a single bit-error occurs while playing a game, the result would likely be undetectable. If you're editing in Photoshop, you might have a misplaced pixel. In Word, you could introduce a spelling error. None of these results are particularly onerous. However, if you are working with financial data, a spreadsheet entry could be changed that could impact a financial decision, or a transaction. In the engineering world, if you were designing an aircraft wing or a building, it could result in deaths or injury.
Therefore, the obvious goal is to prevent data errors in the first place. Unfortunately, this is impossible. Even if every device in your PC was perfect, and the power source was perfect, errors would still occur. Our planet is under constant bombardment by cosmic rays, and the thickness of a cosmic ray shield must be measured in miles. When a cosmic ray hits a memory storage element in the right place (or rather the wrong place), it can cause a data error.
So, the bottom line is how accurate do your results have to be? Since I will be running calculations that will take 2-3 months to complete, and that must be accurate, ECC is a requirement.