- Jun 6, 2013
- 1,230
- 529
- 136
People will surely ask, what is Buffered and ECC? They're both memory modules features that are highly prized for Servers.
Buffered Memory Modules (Also know as "Registered") got an extra buffer chip that while it adds latency that reduces performance slighty (Albeit on old benchmarks I recall, it was quite minor, on the order of 3% or so), it allows to use more RAM that you can with your typical Desktop memory modules. Because the Memory Controller only talks to that buffer chip instead of the individual chips, it generates a lower load on it, so you can use more chips on a Buffered Memory Module, or even Quad Rank modules (32 RAM chips on a single module, standard is 16 for Double Sided and 8 for Single Sided). When you need tons of RAM, you need tons of chips, and Buffered modules allows for that.
You don't really need this on a typical Desktop. However, for people that recalls how things were a decade ago, you may remember that many Processors like the Socket 939 Athlon 64 Winchester had some special rules for the IMC depending on how many Ranks/Chips you wanted to run it with. So if you use a pair of Single Sided DDR Memory Modules it would run at 400 MHz with 1T Command Rate, if they were Double Sided (Or four Single Sided) Command Rate was 2T, and if you wanted to run four Double Sided, they fall back to 333 MHz with 2T (Assuming my memory is correctly, that data is ancient already). I suppose that, assuming that you could use Buffered on Desktop, it would alleviate issues like that where the IMC downclocks the RAM due to the load that you're putting on it, so even through it is slower at the same Frequency, you could, for example, run DDR3 Buffered modules @ 1600 MHz while if you were running Unbuffered modules, maybe they downclocked to 1333 MHz offering overally lower performance.
ECC stands for Error Checking Correction. It is also an extra chip on the module with a minor performance penalty. Due to cosmic rays, radiation, and trash like that, even on a perfectly functional module, sometimes a bit with a value of 0 may turn into a 1, or viceversa, corrupting the data. This may mean that an application may crash or even cause a BSOD. The incidence rate for this was like one corrupted bit per month of 24/7 operation or so, so it was very rare, but if you want a perfectly stable 24/7 system, ECC would be useful if you want top notch stability.
Historically, Server memory modules has been quite more expensive that your standard Desktop memory modules. This doesn't seems to hold true any longer, as I was thinking of adquiring two kits of these (AMD Performance 2 * 8 GB 1866 MHz) for a 32 GB build, but I also saw Server modules like these (Mushkin Proline Buffered/ECC 16 GB 1600 MHz) at around the same price. Considering I was going to go for a 32 GB build, I also considered two of the latter, so I would still have Dual Channel.
Both DDR, DDR2 and DDR3 Memory Modules had four "types":
Unbuffered - This is your standard Desktop memory module
Unbuffered w/ECC - These were extremely rare, but became more common when AMD migrated their Opterons 1xx from Socket 940 to 939 infrastructure and called for Unbuffered ECC as their memory of choice for these entry level Servers. Intel did the same with the Xeon E3 line, that uses your typical LGA 1155 and 1150.
Buffered - Standard RAM for Servers that needs tons of RAM, but usually, for any serious Servers you need ECC too, so I don't think they are very popular. They were the RAM of choice for Socket 940 Athlons 64 FX, remember them?
Buffered w/ECC - Standard RAM for Servers, because you want the best stability with tons of RAM.
DDR2 also had a Fully Buffered variant (FB-DIMM), but the slot is different and physically incompatible, so skip that one.
I also readed around that it was possible on some platforms possible to mix memory modules with and without ECC, and they would all work like if ECC was not present, but I don't need data about different modules types.
On Threads of people asking this on Google, most people replying to these guys would say that I should stick with typical Unbuffered memory modules, but that is not the response I want. From a compatibility standpoint I would agree, however, considering that right now I can get Server grade RAM for the same price that enthusiast Desktop RAM, I would always pick the first because I expect Server stuff to be of higher quality, after all, chances are that they're assuming 24/7 operation. Brand name is important in that market. After all, what I am losing? 5% performance for Server grade stability? I'm in!
Now, the question is about what sort of scenarios there are, and what would happen on them.
For ECC I think you only need BIOS and Memory Controller support. When both AMD and Intel migrated their Uniprocessor Opterons and Xeons line to Desktop infraestructure, these entry level Server platforms were mean to be used with Unbuffered w/ECC Memory Modules. Because these entry level Servers uses pretty much the same infrastructure that Desktop (Processors uses usually the very same physical die with enabled/disabled features and fit in the same Socket, Chipsets may also be the same, etc), I would say that Unbuffered w/ECC should work.
I have seen many AMD ASUS Motherboards that got some ECC options in the BIOS, but never, ever, heared if someone tested that. Intel essencially disables ECC support on the Core i series and only leaves it enabled for the Xeons E3, so you also need Processor support for it, but as far that I am aware AMD doesn't do that. And assuming no BIOS support, I would expect that they DO work, but with ECC disabled like if they were normal Unbuffered.
However, from the Buffered side, I know absolutely NOTHING regarding support on Desktop. I would love to know if someone got them working in a Desktop platform (And that means that the Memory Controller on those Processors support it, so you just need to get Motherboard/BIOS that works with them). What I do recall, is that on some platforms, like AMD Socket 940, you were forced to use Buffered memory modules if you wanted for your Server to boot at all.
Point is that due to the fact that Haswell Xeon V3 are competitively priced against similar Core i5/i7 parts, I was thinking about getting one to use on a Desktop Motherboard for my new build, and with a Xeon, ECC makes sense as I could use it. Yes, with both ECC RAM and a Xeon, suddently a Server Motherboard makes sense, too, but I didn't researched what features I am winning/losing against a Desktop one and the price difference.
On the other hand, requiring Unbuffered w/ECC would limit my memory modules choices instead of being able to use Buffered, as I don't know if they do work.
This would be easier if I were to purchase everything together (Better yet, a proper Dual Processor server. But those are FAR from my budget), but I'm aiming for RAM first and it would have to work on a AMD Socket AM3 Desktop Motherboard until I get cash for Haswell. So compatibility test along some range of Hardware would be interesing to see, even if it was just to see if it works, as that could allow me to purchase Server RAM knowing that I could use it on some Desktop platforms then migrate these modules to a new Server, or combinations like that.
Buffered Memory Modules (Also know as "Registered") got an extra buffer chip that while it adds latency that reduces performance slighty (Albeit on old benchmarks I recall, it was quite minor, on the order of 3% or so), it allows to use more RAM that you can with your typical Desktop memory modules. Because the Memory Controller only talks to that buffer chip instead of the individual chips, it generates a lower load on it, so you can use more chips on a Buffered Memory Module, or even Quad Rank modules (32 RAM chips on a single module, standard is 16 for Double Sided and 8 for Single Sided). When you need tons of RAM, you need tons of chips, and Buffered modules allows for that.
You don't really need this on a typical Desktop. However, for people that recalls how things were a decade ago, you may remember that many Processors like the Socket 939 Athlon 64 Winchester had some special rules for the IMC depending on how many Ranks/Chips you wanted to run it with. So if you use a pair of Single Sided DDR Memory Modules it would run at 400 MHz with 1T Command Rate, if they were Double Sided (Or four Single Sided) Command Rate was 2T, and if you wanted to run four Double Sided, they fall back to 333 MHz with 2T (Assuming my memory is correctly, that data is ancient already). I suppose that, assuming that you could use Buffered on Desktop, it would alleviate issues like that where the IMC downclocks the RAM due to the load that you're putting on it, so even through it is slower at the same Frequency, you could, for example, run DDR3 Buffered modules @ 1600 MHz while if you were running Unbuffered modules, maybe they downclocked to 1333 MHz offering overally lower performance.
ECC stands for Error Checking Correction. It is also an extra chip on the module with a minor performance penalty. Due to cosmic rays, radiation, and trash like that, even on a perfectly functional module, sometimes a bit with a value of 0 may turn into a 1, or viceversa, corrupting the data. This may mean that an application may crash or even cause a BSOD. The incidence rate for this was like one corrupted bit per month of 24/7 operation or so, so it was very rare, but if you want a perfectly stable 24/7 system, ECC would be useful if you want top notch stability.
Historically, Server memory modules has been quite more expensive that your standard Desktop memory modules. This doesn't seems to hold true any longer, as I was thinking of adquiring two kits of these (AMD Performance 2 * 8 GB 1866 MHz) for a 32 GB build, but I also saw Server modules like these (Mushkin Proline Buffered/ECC 16 GB 1600 MHz) at around the same price. Considering I was going to go for a 32 GB build, I also considered two of the latter, so I would still have Dual Channel.
Both DDR, DDR2 and DDR3 Memory Modules had four "types":
Unbuffered - This is your standard Desktop memory module
Unbuffered w/ECC - These were extremely rare, but became more common when AMD migrated their Opterons 1xx from Socket 940 to 939 infrastructure and called for Unbuffered ECC as their memory of choice for these entry level Servers. Intel did the same with the Xeon E3 line, that uses your typical LGA 1155 and 1150.
Buffered - Standard RAM for Servers that needs tons of RAM, but usually, for any serious Servers you need ECC too, so I don't think they are very popular. They were the RAM of choice for Socket 940 Athlons 64 FX, remember them?
Buffered w/ECC - Standard RAM for Servers, because you want the best stability with tons of RAM.
DDR2 also had a Fully Buffered variant (FB-DIMM), but the slot is different and physically incompatible, so skip that one.
I also readed around that it was possible on some platforms possible to mix memory modules with and without ECC, and they would all work like if ECC was not present, but I don't need data about different modules types.
On Threads of people asking this on Google, most people replying to these guys would say that I should stick with typical Unbuffered memory modules, but that is not the response I want. From a compatibility standpoint I would agree, however, considering that right now I can get Server grade RAM for the same price that enthusiast Desktop RAM, I would always pick the first because I expect Server stuff to be of higher quality, after all, chances are that they're assuming 24/7 operation. Brand name is important in that market. After all, what I am losing? 5% performance for Server grade stability? I'm in!
Now, the question is about what sort of scenarios there are, and what would happen on them.
For ECC I think you only need BIOS and Memory Controller support. When both AMD and Intel migrated their Uniprocessor Opterons and Xeons line to Desktop infraestructure, these entry level Server platforms were mean to be used with Unbuffered w/ECC Memory Modules. Because these entry level Servers uses pretty much the same infrastructure that Desktop (Processors uses usually the very same physical die with enabled/disabled features and fit in the same Socket, Chipsets may also be the same, etc), I would say that Unbuffered w/ECC should work.
I have seen many AMD ASUS Motherboards that got some ECC options in the BIOS, but never, ever, heared if someone tested that. Intel essencially disables ECC support on the Core i series and only leaves it enabled for the Xeons E3, so you also need Processor support for it, but as far that I am aware AMD doesn't do that. And assuming no BIOS support, I would expect that they DO work, but with ECC disabled like if they were normal Unbuffered.
However, from the Buffered side, I know absolutely NOTHING regarding support on Desktop. I would love to know if someone got them working in a Desktop platform (And that means that the Memory Controller on those Processors support it, so you just need to get Motherboard/BIOS that works with them). What I do recall, is that on some platforms, like AMD Socket 940, you were forced to use Buffered memory modules if you wanted for your Server to boot at all.
Point is that due to the fact that Haswell Xeon V3 are competitively priced against similar Core i5/i7 parts, I was thinking about getting one to use on a Desktop Motherboard for my new build, and with a Xeon, ECC makes sense as I could use it. Yes, with both ECC RAM and a Xeon, suddently a Server Motherboard makes sense, too, but I didn't researched what features I am winning/losing against a Desktop one and the price difference.
On the other hand, requiring Unbuffered w/ECC would limit my memory modules choices instead of being able to use Buffered, as I don't know if they do work.
This would be easier if I were to purchase everything together (Better yet, a proper Dual Processor server. But those are FAR from my budget), but I'm aiming for RAM first and it would have to work on a AMD Socket AM3 Desktop Motherboard until I get cash for Haswell. So compatibility test along some range of Hardware would be interesing to see, even if it was just to see if it works, as that could allow me to purchase Server RAM knowing that I could use it on some Desktop platforms then migrate these modules to a new Server, or combinations like that.