![如果英特尔 CPU 的缓存中出现随机位错误会发生什么情况?](https://linux22.com/image/639661/%E5%A6%82%E6%9E%9C%E8%8B%B1%E7%89%B9%E5%B0%94%20CPU%20%E7%9A%84%E7%BC%93%E5%AD%98%E4%B8%AD%E5%87%BA%E7%8E%B0%E9%9A%8F%E6%9C%BA%E4%BD%8D%E9%94%99%E8%AF%AF%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%EF%BC%9F.png)
我有一个带有 ECC RAM 和 Xeon E3 CPU 的系统。
我的理解是,RAM 上的 ECC 电路将检测 RAM 芯片中随机位错误的损坏。
但是,英特尔 CPU 中存储的内存中的随机位错误会发生什么情况?例如缓存和/或寄存器?
是否存在一个覆盖漏洞,即好的 RAM 被缓存到 CPU 中,然后这个缓存的 RAM 被损坏,然后被 CPU 稍后使用(而不检查 ECC RAM)?
除了顶级 Xeon E7 之外,我在英特尔网站上找不到有关缓存 ECC 保护的任何信息。
这是否意味着无论您是否使用 ECC RAM,Xeon E7 系列以下的任何英特尔 CPU 都容易受到内存损坏?
答案1
您所写的一切都是正确的,只是您没有列出 ECC 校正的实际原因。我建议阅读下面的文章。现在在实际应用中,系统使用内存校正来实际提高性能,因为某些硬件和软件能够检测数据中的不一致并请求重新处理事务。此外,常见的单比特错误不太可能影响您的工作。事实上,更有可能的是,计算机上的任何电子芯片过热都可能导致绝缘体允许电子跳跃(超频导致计算机故障的原因)。内存校正在大规模计算中非常重要,因为大规模计算不会拥有其他校正手段,例如科学计算的天气建模。任何损坏的数据会重复数十亿次或处理长浮点数的地方。因此,据我记得,所有可以组合单个内核来处理 256 位长浮点数的 PileDriver 和 SteamRoller AMD 内核都在 CPU 的内存中使用 ECC。
一些阅读这里