Ecc Memory

Can someone please explain the differenc between ECC memory and True Parity Memory.  I thought that ECC was a function of the Memory controller and not the SIMM chip.

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

This text is from GoldenRam and I couldn't have written it
better myself:

ECC is similar to parity. However, where parity can only detect errors, ECC can actually correct most errors. By correcting memory errors, mission critical computer operations can continue.

ECC memory uses extra bits to store an encrypted code with the data. When the data is written to memory, the ECC code is simultaneously stored. Upon being read back, the stored ECC code is compared to the ECC code generated when the data was read. If the codes don't match, they are decrypted to determine which bit in the data is incorrect. The erroneous bit is "flipped" and the memory controller releases the corrected data.

Errors are corrected "on-the-fly," and corrected data is rarely placed back in memory. If the same corrupt data is read again, the correction process is repeated. Replacing the data in memory would require processing overhead that could accumulate and significantly diminish system performance. If the error occurred because of random events and isn't a defect in the memory, the memory address will be cleaned of the error when the data is overwritten with other data.

By encrypting the ECC code and correcting only single bit errors, very few additional bits are required. Unlike parity, the number of ECC bits doesn't increase at the same rate as the bits per word or data bandwidth. As word size doubles, parity bits double, but ECC bits increase by one. So, if a system uses an 8 bit
word, it would need 1 bit for parity checking, but 5 bits for ECC. However, a 32 bit word needs 4 bits for parity or 7 bits for ECC. Increase the bandwidth to 64 bits and 8 bits are required for both parity or ECC. Below is a chart comparing the bits required for different data bandwidths for ECC and parity:

   Word Bits   ECC Bits   Parity Bits
        8          5            1
       16          6            2
       32          7            4
       64          8            8
      128          9           16

As you can see, at the 64 bit level, it is equally efficient to use ECC or parity. This is how manufacturers use 36 bit memory modules in groups of 2 or more to create an ECC environment. Compaq's Tri-Flex memory bus is such a system. The Tri-Flex bus uses 4 SIMM groups, for a 128 bit bandwidth. Since the 4
modules have 16 spare bits between them, the 9 bits needed for ECC are easily satisfied. Other systems may use special ECC memory modules, but the cost benefit and availability of industry standard 36 bit SIMMs appeals to designers and end-users.

/// John

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.