ECC 与 DDR5
支持更广泛采用 ECC(纠错)RAM 的人认为,内存密度不断提高、出错概率上升以及静默数据损坏的风险,足以让 ECC 成为默认选项,甚至可以通过对非 ECC 模块征税或监管来推动。反对者则指出,典型消费场景中的错误率很低,DDR5 的片上 ECC 已经缓解了许多故障,而强制 ECC 会抬高成本并限制选择,尤其会影响游戏和低端系统。讨论还涉及 DDR5 片上 ECC 的技术不确定性、错误报告的重要性、CPU 和主板厂商造成的市场分割,以及现实中的故障案例与缺乏大规模公开可靠性数据之间的对比。
强制 ECC vs. 消费者选择
- 有人主张 ECC 应当普及,甚至可以通过监管或对非 ECC RAM 征税来实现,因为静默数据损坏会带来隐性的社会成本。
- 也有人认为这属于越权或“保姆式国家主义”,坚持 RAM 的选择应由个人决定,除非存在很强的外部性(例如安全关键系统)。
- 争论还包括:不可靠的 RAM 是否可类比为有缺陷或有危险的产品,从而足以支持消费者保护法。
成本、可用性与市场分割
- 据称 ECC UDIMM 比非 ECC 贵得多,也稀有得多;RDIMM 在二手市场上可能很便宜,但需要兼容的平台。
- 多条评论将当今的分化追溯到厂商有意的市场分割(服务器/工作站线 vs. 消费级产品线,Xeon vs. 主流 CPU)。
- 有人认为,如果 ECC 成为强制标准,或作为默认标准,规模经济以及去除人为分割会缩小价格差距。
技术可靠性与错误来源
- 报告的 ECC 错误率差异很大:有人多年从未遇到;也有人会周期性出现可纠正错误,偶尔还会有 DIMM 故障。
- 讨论中的原因包括宇宙辐射(尤其在高海拔地区)、rowhammer、插槽接触不良/氧化、模块老化、电噪声以及超频。
- 对宇宙射线究竟有多主导,还是设计缺陷或机械/电气问题更重要,存在争论。
DDR5 片上 ECC vs. 端到端 ECC
- 普遍共识是,DDR5 的片上 ECC 主要是把内部单元可靠性恢复到上一代水平,并不能保护 CPU–DIMM 之间的链路。
- 有人担心片上 ECC 是不透明的:它会静默纠错,通常不会向操作系统暴露错误计数。
- 还有人担心片上 ECC 与系统级 ECC 之间会有复杂交互;也有人表示 DDR5 的编码应当能确保多比特错误变得可检测,但同时指出缺乏权威数据。
数据完整性、文件系统与 ZFS
- 多条评论强调,ECC 加上带校验和的文件系统(例如 ZFS、Btrfs)可以提供很强的端到端保护,并有助于诊断故障硬件。
- 另一些人认为非 ECC 往往也足够,因为许多软件层已经使用校验和、重试和冗余;他们认为没有 ECC 时发生灾难性损坏的情况很少。
- 一个长期流传的“ZFS 必须配 ECC”的说法被明确质疑,并附带了反驳性文档链接。