The Definitive
BIOS Optimization Guide

by Adrian Wong

 

 






DRAM Data Integrity Mode

Common Options : ECC, Non-ECC

Details

ECC, which stands for Error Checking and Correction, enables the memory controller to detect and correct single-bit soft memory errors. The memory controller will also be able to detect double-bit errors though it will not be able to correct them. This provides increased data integrity and system stability. However, this feature can only be enabled if you are using special ECC memory modules.

Now, this type of memory module is special because it has extra memory chips and a wider path. This is because the chipset needs to append a certain number of extra ECC bits (called ECC code) to each data word that's written to the memory module. When the data word is read back, the memory controller will recalculate the ECC code of the read data word and compare them to the original ECC code that were written to memory earlier. If the codes are identical, then the data is valid.

But if there's a single-bit error in the data word, the memory controller can identify the defective bit by analyzing the differences in the two ECC codes. That bit can then be corrected by simply flipping it to the opposite state (from 0 to 1 or vice versa).

Just for general information, here's a list of ECC code length required for various data path widths using the current Hamming code algorithm standard :-

    8-bit data path  =  5 ECC bits
  16-bit data path  =  6 ECC bits
  32-bit data path  =  7 ECC bits
  64-bit data path  =  8 ECC bits
128-bit data path  =  9 ECC bits

Because present day processors use 64-bit wide data paths, 72-bit (64-bit data + 8-bit ECC) ECC DRAM modules are required to implement ECC. Note that the maximum data transfer rate of the 72-bit ECC DRAM module is the same as the 64-bit DRAM module. The extra 8-bits is only for ECC codes and do not carry any data.

In fact, because the memory controller has to calculate the ECC code for every data word that is read or written, there will be some performance degradation, roughly in the region of 3-5%. This is one of the reason why ECC DRAM modules aren't that popular. Throw in the fact that ECC DRAM modules are both expensive and harder to get; and you have the top three reasons why ECC DRAM modules will never be mainstream solutions.

But if data integrity is of utmost importance to you and you can't afford to have your system down due to errant cosmic rays or radiation from the DRAM packaging, ECC DRAM is the only way to go. The loss of 3-5% in DRAM performance is minor compared to the peace of mind afforded by ECC.

In any case, the matter of this BIOS function is much easier to settle. If you are using standard 64-bit DRAM DIMMs, you must set this function to Non-ECC. But if you already spent the extra dollar to get 72-bit ECC DRAM, set this function to ECC. No matter what people say about losing that 3-5% of performance. It doesn't make sense to buy expensive ECC DRAM DIMMs and then disabled ECC. Remember, you are not really losing performance. You are just trading it for greater stability and data integrity.

  

  

Comments?

If you have a comment or two about this guide, please post them here.

Thanks for your time and I hope you enjoyed the guide! :)

Adrian Wong
Adrian's Rojak Pot
http://www.rojakpot.com/
http://www.adriansrojakpot.com/

 

 
 

 

 
     
   

 

 
 

 
   

 

 
 
Last Updated 22-01-2002

All trademarks used are properties of their respective owners.
Copyright © 1998-2002 Adrian Wong. All rights reserved.

 
Visit the new Tech ARP @ http://www.techarp.com/ !