3

According to AMD Ryzen supports ECC memory, but they did not validate it, so we don't know whether this feature works properly. Is there a way to test whether ECC is working properly? Afaik. memtest86+ has some ECC related tests, but is that enough for validation?

2 Answers 2

2

There is a detailed article here:

http://www.hardwarecanucks.com/forum/hardware-canucks-reviews/75030-ecc-memory-amds-ryzen-deep-dive.html

For posterity here the conclusion:

In conclusion, what is currently available on the AM4 platform is an incomplete implementation of ECC. This is very likely why motherboard manufacturers have been relatively hesitant about claiming that their products support ECC memory in ECC mode. Based on our findings, there is clearly some level of ECC functionality that is working right now, but it does not cover the full spectrum of memory error detection and correction.

1
  • 1
    I read a lot about this recently (I already read the article you linked). The main problem here that mobo manufacturers does not want to add ECC support to the cheaper B350 boards despite that Ryzen supports not all, but some ECC features. Afaik. only the X370 boards have ECC support by Asus, Giga, Asrock. Their price is in the same category as server grade boards. So I think I'll wait, maybe there will be a B350 board with ECC. If not, then I'll buy a Xeon for my microserver instead. Probably Naple if they will have cheaper 4/8 ones.
    – inf3rno
    May 14, 2017 at 5:51
1

If ECC works and corrects errors, some logs will contain that info.

A few soft errors per year can naturally occur, but if you really want to produce more of them, then probably rowhammerjs can help. It does not work on every architecture and with every memory settings however.

By AMD processors you can try to force enable ECC with the following code in Linux.

modprobe -v amd64_edac_mod ecc_enable_override=1

If it fails, then you can be certain that ECC is not supported. There are rumors that recent systems with Ryzen do not support this, and ofc. it is generally not recommended to force enable this feature.

Afaik. memtest86+ is good to, since it tries to check whether the ECC works, not just the meta data about whether it is turned on, which can't be really trusted.

I did a little research in the topic. According to forums and articles here is a list of a few boards:

Motherboard                         ECC support
ASRock AB350 Pro4                   1? (above 2.20 BIOS version)
ASRock Fatal1ty AB350 Gaming K4     0
ASRock X370 Killer SLI              1
Asrock X370 Taichi                  1
Asus PRIME B350-PLUS                0?
Asus PRIME B350M-A                  0?
Asus PRIME X370-PRO                 1
Biostar B350GT5                     0
Biostar X370GT3                     0?
Gigabyte GA-AB350-Gaming            0
Gigabyte GA-AB350-Gaming 3          0
Gigabyte GA-AB350M-HD3              0
Gigabyte GA-AX370-Gaming K7         1
MSI B350 PC MATE                    0?
MSI B350 TOMAHAWK                   0?
MSI B350M GAMING PRO                0
MSI X370 KRAIT GAMING               0?
MSI X370 SLI PLUS                   0?

By Biostar and MSI board there is no documentation about this in the manual, the other vendors tend to mention whether the board supports ECC in non-ECC mode. Most of the X370 boards support the feature. Afaik. Gigabyte don't want to support the feature on its B350 boards. Not a clue about Asus by the same chipset. According to a forum in dutch the ASRock AB350 Pro4 supports the feature from 2.20b BIOS version, but it is not confirmed with tests.

4 things are needed to have a working ECC:

  1. memory controller that supports ECC (in the CPU nowadays)
  2. ECC memory
  3. some circuitry on the mobo to deliver the extra bits to the CPU (I am not a electrical engineer, so I don't know the exact terms)
  4. a short mobo microcode to enable the feature

In some cases only the 4th is missing and latter BIOS updates can enable this feature.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .