如何测试ECC是否正常工作?

如何测试ECC是否正常工作?

据 AMD 称 Ryzen 支持 ECC 内存,但他们没有验证它,所以我们不知道此功能是否正常工作。有没有办法测试 ECC 是否正常工作?据我所知。memtest86+ 有一些与 ECC 相关的测试,但这足以进行验证吗?

答案1

这里有一篇详细的文章:

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

这里为后人得出结论:

总之,AM4 平台上目前提供的是 ECC 的不完整实现。这很可能就是为什么主板制造商一直不太愿意声称他们的产品在 ECC 模式下支持 ECC 内存。根据我们的发现,目前显然有某种程度的 ECC 功能正在运行,但它并未涵盖内存错误检测和纠正的全部范围。

答案2

如果 ECC 工作并纠正错误,一些日志将包含该信息

每年自然会出现一些软错误,但如果你真的想产生更多软错误,那么可能rowhammerjs可以提供帮助。但是它并不适用于所有架构和所有内存设置。

通过 AMD 处理器,您可以尝试在 Linux 中使用以下代码强制启用 ECC。

modprobe -v amd64_edac_mod ecc_enable_override=1

如果失败,那么可以肯定不支持 ECC。有传言称,最近搭载 Ryzen 的系统不支持此功能,当然,通常不建议强制启用此功能。

据我所知。memtest86+ 很好,因为它会尝试检查 ECC 是否有效,而不仅仅是检查它是否已打开的元数据,而这实际上并不可信。

我对该主题做了一些研究。根据论坛和文章,以下是一些板块的列表:

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?

Biostar 和 MSI 主板手册中没有关于此内容的文档,其他供应商倾向于提及主板是否在非 ECC 模式下支持 ECC。大多数 X370 主板都支持该功能。据我所知。技嘉不想在其 B350 主板上支持该功能。华硕是否支持同一芯片组则不得而知。根据荷兰语论坛的说法,华擎 AB350 Pro4 从 2.20b BIOS 版本开始支持该功能,但尚未通过测试确认。

要使 ECC 正常工作,需要满足以下四个条件:

  1. 支持 ECC 的内存控制器(目前在 CPU 中)
  2. ECC 内存
  3. 主板上的一些电路将额外的位传送到 CPU(我不是电子工程师,所以我不知道确切的术语)
  4. 一个简短的主板微代码来启用该功能

在某些情况下,仅缺少第 4 个,后续的 BIOS 更新可以启用此功能。

相关内容