All have on-die ECC, which always operates. It is relatively rare to have external; something like Kingston Server Premier, and then you would need a motherboard to support it e.g. some of the Asrock ones, or just a server motherboard (MSI D3051, etc.)
AFAIK there's a performance hit using external ECC, as it adds an extra cycle. I think errors get reported to the OS differently. Beyond that, I know nothing.
Just to dispel this myth - here's all my electronic devices that have replaceable memory, and which of them support ECC:
ECC support (and using ECC memory):
- my old home server (an old Xeon E5-2630v2, DDR3, Supermicro MB, slated for disposal)
- my new home server (a Ryzen V3C48 embedded system, solid-run, uses DDR5 SO-DIMM)
- my desktop (a Ryzen 1700X, DDR4, ASrock mainboard)
Broken ECC due to BIOS:
- my laptop (HP Elitebook 845 G9, Ryzen 6950HS, DDR5 SO-DIMM, CPU supports ECC; BIOS hangs on boot when I insert ECC memory)
No ECC:
- none, actually.
(dis-)honorable mentions, no ECC, but memory not replaceable anyway:
- my geriatric wifi router (some TP-link, about to be ditched)
- my 2 extra wifi APs (also some TP-link)
This rate of ECC support is probably a bit exceptional, but… the primary reason ECC support is hit-and-miss is that Intel decided to fuse it off on their desktop CPUs to do market segmentation.
When people say ECC is rare, they’re not talking about you.
This may be the case in some specific implementations but nothing in the DDR5 spec prevents you from pipelining the ECC calculations alongside the cycles you already need for cache management anyway. The memory itself and the interface don't care, they just do 72bit instead of 64bit.
Haven't heard that before. What are you basing it on?
I only learned enough to buy some and put it in my last build, and I've only gone as far as checking that dmesg says the memory bus is 72 bits wide; no benchmarks, no overclocking. Then again, my goal is stability and not performance.
You only caught errors on DDR5 because it's stability is very brittle. Market forces push it to the limit - everybody cares about the MT/s and runs XMP unlike previous generations.
I have, however, had very good luck so far just buying faster DDR5 and then running it a little slower at the same timings, which is how I arrived at the idea that DDR5 XMP is usually too fast to be actually stable.
For some point of comparison: Intel 12~14th gen operate DDR5 at 4GHz with 2DPC (DIMMS per channel), AMD Ryzen 7xxx at 3.6GHz with 2DPC.
With 1DPC the numbers are slightly better, with Intel 12th at 4.8GHZ and 13th/14th at 5.6GHz and AMD Ryzen 7xxx at 5.2GHz.
All a far cry from the ridiculous overclocks at 6GHz and above.
Some DDR4 also uses on-die ECC. The specs for the Raspberry Pi 4B list DDR4 ECC RAM.