Unbuffered versus Registered ECC Memory – Difference between ECC UDIMMs and RDIMMs

14
Posted March 9, 2011 by Patrick Kennedy in News

Today, the vast majority of memory used by desktops, notebooks, and mobile devices is unbuffered non-ECC (Error Checking and Correction) DRAM. In fact, unless one is running an Intel or AMD CPU that can support ECC memory unbuffered ECC DRAM is the only choice for most users. Intel Xeons, for example, support ECC memory, while even the new Core i7’s do not. AMD has much broader ECC support at the CPU level, but many AMD motherboards do not support ECC memory features so it is not universal.

ECC Memory What it Does

Error Checking and Correction (ECC) memory is mostly considered essential in enterprise environments these days. Single bit error checking and correction within an 8-bit byte allows for single bit errors to be both detected and corrected when they occur. Interestingly enough, the way this single bit ECC works is not all that unlike RAID 4 and RAID 5 where an XOR algorithm is used to generate parity bits. Instead of losing usable memory capacity, memory makers tend to add an additional chip to ECC memory for every eight storage chips. When a single bit error is detected, the parity information is used to reconstruct the data with an error. Again, this is conceptually similar to how RAID 4 and RAID 5 can scrub and fix data errors in storage arrays. Larger errors than multi-bit can be detected but not corrected by the single bit ECC type of parity scheme.

For desktops, this is less important as a lot of figures put single-bit errors in the range of 1 per 1GB or 1 per 2GB of memory each month. To a desktop user, this may cause a program to crash, or at worst require a reboot. In servers, ECC is essential to maintaining both data integrity and uptime. With the current minor cost differential of ECC versus non-ECC unbuffered DIMMs, there is little reason to get non-ECC memory for a server.

Unbuffered ECC versus Registered ECC Memory

Adding to the ECC concept, there are two concepts at play, unbuffered and registered ECC memory modules. The basic difference is that memory commands in unbuffered memory configurations go directly from the controller to the memory module, while in registered memory configurations the commands are sent first to the memory banks’ registers prior to being sent to the modules. This concept may sound difficult, but here is the very simple/ conceptual view regarding what is going on.

In the above example the memory controller accesses the memory banks directly. The above assumes that the memory controller resides within the CPU package as it does in modern CPU architectures. Looking at older systems, the memory controller resided within the CPU northbridge. Compare this to the registered memory example below.

Simple Unbuffered ECC DRAM Model

Simple Unbuffered ECC DRAM Model

Here the CPU communicates with the registers for the banks of memory on each module. From there, these registers communicate with the DRAM. The implications of this are twofold. First, on a negative side, instructions take approximately one CPU cycle longer due to the intermediary of the bank register. On the positive side, this buffering reduces the strain on the CPU’s memory controller because it points to the dedicated intermediary register versus accessing the DRAM directly. It is easier on the memory controller to deal with a fewer number of targets.

Simple Registered ECC DRAM Model

Simple Registered ECC DRAM Model

This feature is very important in server scenarios because, for example, an Intel 3400 series platform, such as the Supermicro X8SI6-F or Intel S3420GPLC supports 16GB unbuffered ECC and 32GB registered ECC memory. Likewise, in dual processor systems, such as the E5600 series based Supermicro X8DTH-6F recently reviewed on ServeTheHome, the delta is much greater with up to 48GB of unregistered ECC or 192GB of registered ECC memory. For virtualization environments where memory, and memory bandwidth is key to achieving high consolidation and density metrics, Registered ECC memory is generally the way to go. If one purchases a server with unregistered ECC DIMMs, then requires additional capacity, then the upgrade operation will require a pull and replace all UDIMM modules making it an expensive proposition.

Conclusion

In this article hopefully one can get a conceptual view of the difference between the unbuffered ECC memory and registered ECC memory to help inform selection decisions. This was not an overly technical article because memory modules tend to be items that people order with or add to their systems and do little work on until they need more memory.

Feel free to discuss this article on the ServeTheHome.com Forums!


About the Author

Patrick Kennedy

Patrick has been running ServeTheHome since 2009 and covers a wide variety of home and small business IT topics. For his day job, Patrick is a management consultant focused in the technology industry and has worked with numerous large hardware and storage vendors in the Silicon Valley. The goal of STH is simply to help users find some information about basic server building blocks. If you have any helpful information please feel free to post on the forums.

14 Comments


  1.  
    Nils-H

    So basically it’s only a question of how much RAM you want? No data integrity differences?




    •  

      There are other considerations like performance that come into play. As far as reliability and/ or data integrity I have heard people argue both ways.




  2.  

    Good article and overview.

    Nils-H,
    The reason to go registered boils down to capacity and reliability. Speed is often the same, but can a negligibly slower when using registered memory.

    The main issue with having a large number of memory chips connected to a memory controller (whether in a chipset or in the CPU) is the amount of electrical loading. Each chip takes a bit of electrical current from the memory controller affects the impedance memory bus. In unbuffered memory, the RAS, CAS, Data and other control lines must connect to multiple memory chips. By the time 4 DIMMS are added, that loading starts to get pretty high because 4 DIMMS might equal 4×18=72 chips. All other things equal, the more memory CHIPS (not just DIMMs) connected to the memory controller, the higher the electrical load.

    Registered memory has a “register” or a buffer. Digitally, registered and unregistered look almost the same to the memory controller, but electrically, registered memory looks like a single chip rather than a series of chips. The register “hides” the effects of all the chips that are behind it. This improvement in electrical load also improves stability and thus reliability.

    There is registered ram that is parallel and then there is FBDRAM which is serial in nature. The _minimum_ additional delay for parallel registered memory compared to unbufferred memory is likely to be about 2 clock cycle. (a clock cycle can be less than a CPU cycle. ie. multiple clock cycles form 1 CPU cycle, especially on CISC processors, but I don’t know how the memory controller is clocked or synchronized with the Intel CPUs to know how much additional delay this works out to be.) With FBDRAM, because it’s serial in implementation, there’s much higher latency than with regular registered memory. When the CPU no longer wants a burst of data and wants to change to a new address, the new address has to be serially clocked to the FBDRAM. Multiple serial lines are used, like PCIe, so it’s not a 64-clock delay, but it’ll be more several clocks of latency that the memory system must wait before it can put out any data. Thus, FBDRAM can be noticeably slower in random access because of it’s higher latency, but it can makes up for some of that via higher bandwidth which increases with each FBDIMM added.

    Unless you need to put in a lot of DIMMs, I’d recommend using unbuffered ECC memory. It’s cheaper, arguably faster, and uses less energy. ECC will protect from random errors so reliability is less of a consideration when choosing between the two.




  3.  
    Magn0x

    I recently tried to upgrade a DELL T110 server with a 2GB registered RAM ( HMT125R7TFR8C-H9 2GB 2Rx8 PC3-10600R-9-10-B0 ) and the server would not boot correctly. DELL tell me that their motherboard will not recognise the ‘registered’ memory module and that ‘unbuffered’ memory is needed. Is there any explanation for this?




  4.  
    SeverPro

    MagnOx
    Thats because Dell servers are not worth a shit, they want to make things so you have to use thier hardware and software in them and non else…..Only Dell would use un buffered in a server …What brain child at Dell came up with that? …..Use it for a boat anchor.. T 110 is old school dump it….




    •  
      roach

      SeverPro, I think you’ll find all the DEll 1950’s running FB-DIMMS. Not a Dell fan but your statement was completely unfounded.




  5.  

    MagnOx – the Sandy Bridge LGA1155 based CPUs only take unbuffered DDR3. LGA1156 Xeons can use registered ECC DIMMs. If you are going to 32GB+ on a UP platform, there is still some great value in the previous generation parts.




  6.  
    zlatev

    so on an ASUS A8N-SLI Deluxe mobo… the Registered DRAM wont work? I currently use 4x512MB unbuffered-ECC, but wish to install some cheaply available (ebay) ecc-registered before I upgrade to a new system.




  7.  
    RimBlock

    Just to add an update on this.

    From Sandy bridge through to Ivy Bridge, Unbuffered ECC compatibility is dependent on the motherboard chipset and actual wiring to the ram socket. It is no longer based on the processor.

    Intel try to hide this fact to stop people using i3s and the like in ECC UDimm server boards which support Unbuffered ECC ram.

    If you take a look at the technical specs for the Sandy Bridge processors you will see this statement.

    ” The type of memory supported by the processor is dependent on the PCH SKU in the target platform— Desktop PCH platforms support non-ECC un-buffered DIMMs only”

    What it does not mention is boards using Server PCH SKUs.

    The Sandy Bridge Server PCH SKUs C20(2/4/6) all support the G6XX, i3-21XX and E3 Xeon processors. Only the C206 supports unbuffered Dimms (i.e. non ECC) as well as uDIMM ECC ram. I have had both an i3 and an E3 Xeon in a Supermicro X9SCM board with ECC ram without any issue. Both reported the same ECC ram details in the BIOS. The major players also provide servers using desktop processors (G620s or i3-21XX models) with ECC ram.

    Sandy Bridge server PCHs were restricted so they would fail to boot with an i5 or i7 which effectively meant you could not run an i5 or i7 on a motherboard with ECC support.

    The original gen 1 LGA1156 processors had the support on the processor it’self though. I believe this is where a lot of the confusion comes from. That and Intel refusing to state the fact clearly.

    Registered ECC is a whole different ballgame however.




  8.  
    loic

    Thank you very much for this useful article. I’m trying to know if my servers are equipped with rdimm or udimm, but cant find a way to do it using wmi. Do you know anyway to get this info ?




  9.  
    Hotstuff

    I’m not an expert, so after reading many endless and conflicting expert opinions regarding whether server-type DDR2 buffered ECC RAM could in fact be used in my home PC’s (one has an Intel mobo, and the other is AMD), I’ve concluded that the simplest way to see is probably to just try it and see! Wish me luck..




    •  
      Yatti420

      Does your CPU support ECC? Does your motherboard chipset support ECC? Do you have the correct type of ECC ram for your mobo (udimm vs rdimm)?

      It’s as simple as this to use ECC..




  10.  
    Venkat

    Hi ,

    I am about to buy a ‘Asrock C2750D4I Mini-ITX Motherboard’ for testing VMWARE Esxi 5.5 and I already have some spare ram modules available which we purchased for ‘Dell PowerEdge T320′ .
    This is the link of the actual 16GB Ram modules we have from dell – http://accessories.us.dell.com/sna/productdetail.aspx?c=us&l=en&s=bsd&cs=04&sku=a6996789

    It says on the specifications > Featutes > Dual rank, Low Voltage , registered.

    I am very confused whether these modules are supported by the motherboard or not.

    Please clarify.

    Thank you in advance for your time.





Leave a Response

(required)


Newly Reviewed
 
  • Purch Anandtech
  • Seagate 1200 v Toshiba PX02SMF040 400GB ATTO Write Benchmark
  • Intel S3700 and 710
  • pfSense Hyper-V 2.2-RC
  • Toshiba PX02SMF080 800GB
  • Amazon AWS Logo2