Are you confused about the RAM term “ECC”? The truth is that this feature doesn’t make much sense for most PC users, since the most common type of RAM is Non-ECC Unbuffered RAM. However, this advanced memory feature can be useful, or even necessary, for certain types of usage.
What Is ECC?
ECC, or Error Correction Coding, is a system of error control used in digital data transmission. As the name “Error Correction Coding” suggests, ECC is a technology that allows computers to correct data related memory errors. The most common type of ECC used in RAM modules is single-bit error correction. This enables the DIMM to detect and correct single-bit errors within a byte. It can also detect double-bit and multiple bit errors, but would be unable to correct them.
How dos ECC work?
For example, take the most common single-bit error correction. For every byte of data sent through the memory bus, a “check-bit” is generated by calculating the byte of data using an algorithm. This check-bit would be stored in an “extra” memory chip. This is why RAM modules with ECC will have DRAM chips arranged in multiples of 9, rather than the multiples of 8 DRAM chips we see with Non-ECC memory modules.
The system will use this check-bit to verify if the data is consistent, and correct any single-bit errors found. The check-bit is sent along with the original byte of data; therefore, the ECC memory bus is 72-bit wide as opposed to the 64-bit bus of non-ECC memory. Remember only 64 bits out of the 72 bits of data are counted for bandwidth and application usage, the other 8 bits are all check-bits, so the effective bandwidth of ECC and non-ECC memory is identical.
What causes “memory errors”?
While the most common cause of these types of errors is caused by simple electrical or magnetic interference inside a system, it is not uncommon for a “defective” DIMM module to cause a similar type or error as well. These days, it’s very common for a server or workstation purchased from an OEM (Original Equipment Manufacturer) to have warning lights and/or beep tones to indicate an excessive number of errors in a particular module.
If you are saying to yourself, “why doesn’t all RAM come with the ability to detect and correct errors?” , allow me to explain. Yes, error correction is great, but it comes with a downside as well. Because of the extra “work” being done by the chip, it is typically slower (2-5% on average) in speed that an identically clocked Non-ECC module. Also, because ECC chips require either one or two extra DRAM chips (small black chips on your RAM) for the ECC function to work, they are more expensive to manufacture and this cost is, of course, moved on to the consumer. It is also more expensive to manufacture motherboards that utilize ECC RAM, thus making it the best choice for situations that require a 100% data integrity rate, as opposed to the faster speeds that most standard consumers prefer.