据 AMD 称 Ryzen 支持 ECC 内存,但他们没有验证它,所以我们不知道此功能是否正常工作。有没有办法测试 ECC 是否正常工作?据我所知。memtest86+ 有一些与 ECC 相关的测试,但这足以进行验证吗?
答案1
这里有一篇详细的文章:
这里为后人得出结论:
总之,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 正常工作,需要满足以下四个条件:
- 支持 ECC 的内存控制器(目前在 CPU 中)
- ECC 内存
- 主板上的一些电路将额外的位传送到 CPU(我不是电子工程师,所以我不知道确切的术语)
- 一个简短的主板微代码来启用该功能
在某些情况下,仅缺少第 4 个,后续的 BIOS 更新可以启用此功能。