新年之初,Linus 一则关于 ECC(纠错码)内存的帖子引起技术社区的广泛关注与讨论。作为 Linux 的缔造者,Linus Torvalds 指责英特尔阻止纠错内存的普及,并“以糟糕的市场细分方式毁掉了整个 ECC 行业”。
ECC,即 error-correcting code,即纠错码。ECC 内存使用单独的奇偶校验位来验证从内存处读取到的数据与写入数据是否相同。如果不进行此项检查,则内存极易受到偶发损坏的影响,包括因宇宙背景辐射而引发的内存记录翻转等。
此外,内存还可能受到 Rowhammer 攻击技术的影响。此项技术能快速重复读取同一内存位置上的数据,并导致相邻位置的比特改变其存储状态。
而 ECC 内存则能很好地解决这些问题(特别是在应对 Rowhammer 攻击方面),已经拥有 50 多年历史,但在大多数个人计算机上还不见其踪影。当然,成本是个重要因素,但真正令 Linus 感到困惑的是,英特尔已经开始在其至强系列芯片中支持 ECC,相当于把这项功能引入了服务器与高端工作站;但是在酷睿等芯片家族中,ECC 仍然继续缺席。
图片截自英特尔宣传视频
英特尔在官网的一段宣传视频中解释称,“随着当今 CPU 与内存运行速度快速提升,软内存错误的发生频率也越来越高……关键数据的损坏,可能对业务绩效乃至企业声誉造成灾难性影响。英特尔至强处理器与纠错码——或称 ECC 内存——协同运作,能够自动查找并修复软内存错误。”
英特尔的另一则广告则宣称“约有三分之一的系统每年会遇到至少一项可纠正的内存错误……目前,ECC 内存仅供服务器使用,桌面 PC 尚不受支持。”
在 Real World Tech 论坛上,关于 AMD 全新 Zen 3 Ryzen 9 5000 系列处理器的讨论中也出现了这个话题。目前,AMD 大多数处理器均具有半官方支持的 ECC 功能。一位神经大条的贡献者表示“我觉得 AMD 不提供官方支持的 ECC 也没什么关系,我们一样能做。”
但 Linus 反驳道,“ECC 非常重要,这里表达的是一种态度。从 ECC 实施策略的角度来看,英特尔简直是在毒害整个行业乃至每位用户。如果大家不相信我,请回顾看看 Rowhammer 这东西已经出现了多少代。每更新一代,英特尔和存储器制造商就得为修复头痛好一阵子……没错,这些问题的根源,就是英特尔提出的'消费者不需要 ECC'这个错误的假设,这个假设还让 ECC 存储器市场彻底消失了。”
值此安全问题得到高度关注的时期,这项争议开始快速升温。
总结来讲,批评一方认为英特尔的市场营销决策阻碍了用户使用更加安全的技术(Rowhammer 只是众多潜在攻击手段之一),也妨碍了 PC 设备在稳定性方面的正常发展。
Linus 指出,“其实 ECC 这件事根本没什么可争的。现在就连存储器制造商自己都在内部开发 ECC 方案,很明显,他们证明了事情就该这么办。”
他还强调至强系列的高售价影响了产品普及。“我一直在关注至强 CPU 产品,但里面的账,恕我算不清楚。英特尔的脑回路清奇,总是逼着消费者用 5 倍价钱购买 2 倍性能。所以在个人工作站上,我最终还是选择了英特尔的消费级 CPU。虽然随着 Ryzen 与 Threadripper 的出现,至强芯片的价格有所下降,但降幅还是太小、变化也来得太晚。”
正所谓做人留一线、日后好相见。Torvalds 又缓和了一下紧张气氛,“当然,除了在 ECC 这事上有点立场问题,我对英特尔的消费级产品总体还是很满意的。”
ECC 内存还需要主板与 CPU 的配合支持,而面对 AMD 逐步将 ECC 作为产品卖点,英特尔恐怕也将很快拿出相应的营销策略。Torvalds 指出,“英特尔这种操纵市场的行为放大了用户对于其他替代产品的需求。ARM 很乐意拿出解决方案,而目前看来 AMD 的行动还更快。”
AMD Ryzen 系列芯片已经能够支持 ECC。但由于不属于官方功能,因此在不少主板上无法实现,产品宣传中也极少提及,导致大多数商业用户并不敢过多依赖这种不够稳妥的功能。
原文链接:
https://www.theregister.com/2021/01/04/linus_torvalds_intel_killed_ecc/
评论 1 条评论