We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you a podcast all about Citrix Workspace, moving to the cloud, and analytics & intelligence. Episode 2 coming soon!Listen Now


Ecc Memory

mattkr asked
Medium Priority
Last Modified: 2008-03-06
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.

Watch Question

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

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.