Opteron/A64 and registered ECC requirement - WHY?!

glugglug

Diamond Member
Jun 9, 2002
5,340
1
81
Ever since PCs starting having 64-bit data buses with the original 66MHz Pentium, the memory controllers in many motherboard chipsets have been able to do ECC error correction using the parity bits, as long as you use parity (72-bit) rather than 64-bit non-parity DIMMs.

This is substantially cheaper than implementing the ECC logic in the DIMM. Also, the ECC logic is obviously built into the Opteron anyway because to satisfy requirements of the server market, it does ECC error correction on the L1 and L2 cache. Why can't this same ECC circuitry be used by the Opteron's internal memory controller to do error correction on normal unbuffered parity DIMMs, reducing RAM costs and more than likely improving latency?

For those that don't know, the number of "extra" bits required to do single-bit-error ECC on a block of data is n+2, where 2^n is the first power of 2 >= the number of bits in the block. So for a data bus that transfers 64-bits at a time, 8 extra bits are required for ECC, which is the exact same number required for parity with 1 parity bit per byte, and the reason that chipsets started doing this when CPUs got 64-bit busses. It wasn't doable with 486 and earlier processors with 32-bit or smaller busses, because there would normally be only 4 parity bits to 32 data bits, but you need a minimum of 7 bits to do ECC on 32 bits. If AMD was really crafty they could take advantage of the fact that the Opteron bus is actually not just 64 bits but 128 bits, which would have 16 parity bits coming from normal DIMMs when only 9 are needed for ECC on 128 bits, and use the extras for correcting some 2 and 3 bit errors on each 128-bit block rather than just single bit errors.
 

mechBgon

Super Moderator<br>Elite Member
Oct 31, 1999
30,699
1
0
The base Athlon 64 is supposed to run with unbuffered non-parity (n00b-talk: "normal") modules. With Hammer's claim to fame including the ability to use ji-normous amounts of RAM, and with the high-capacity 2GB+ modules being exclusively Registered ECC, as it seems, maybe they decided not to disrupt the harmony of the spheres by demanding some other kind of RAM when designing the Opteron's onboard memory controller. Opteron being the hardcore server CPU, people expect it to fall in line with other hardcore server CPUs, which always use...? Yeah, R-ECC.

*shrug* Just a theory, anyway. But really, if you ask that question then you have to ask why all the other ECC-capable memory controllers in the world seem to also need 72-bit-wide DIMMs.

 

glugglug

Diamond Member
Jun 9, 2002
5,340
1
81
Needing 72-bit wide DIMMs to do ECC makes sense that is of course required. But with the other common memory controllers, the ECC is done *in the memory controller* not in the DIMM, so you can use normal unbuffered DIMMs as long as they are 72-bit. Also, the others let you use 64-bit DIMMs you just can't enable the ECC feature with those.

Examples of ECC capable chipsets that DON'T require this:

Intel 430FX, 430HX, 440FX, 440BX, 810E, 810EP, 815E, 845E, 845PE, 850
AMD750, 760,
VIA KT266A, 333, 400
ALI Alladin V
 

mechBgon

Super Moderator<br>Elite Member
Oct 31, 1999
30,699
1
0
I agree, it would've been nice if they'd run on non-ECC modules as well :D