本网站可以从本页的链接获取会员委员会。使用条款。
CPU几乎永远不会失败。在给定PC中的所有组件中,CPU历来的是最不可能遭受失败的。这尚未改变 - 但是有令人不安的证据表明,随着流程节点缩小,可靠性正在变得更加坚固,适用于AMD和英特尔以保证。
谷歌研究人员发表了一篇文章,描述了他们称之为“Mercurial”核心。 Mercurial Cores是谷歌呼叫“腐败执行错误”或CEES的影响。一张关键的一部分是他们是沉默的。
我们希望CPU以一些明显的方式失败,当它们错误地分配一个值时,是否导致操作系统重新启动,应用程序崩溃,错误消息或乱码输出。在这些情况下不会发生这种情况。 cees是谷歌呼叫“沉默数据损坏”的症状,或者在没有立即检测到腐败的情况下写入时损坏的数据损坏的能力。
这项工作仍处于早期阶段,作者强调他们不知道。他们所做的是一个模型,即CEE失败通常看起来像:
失败似乎是非确定性的,它们出现在可变速率下。缺陷的核心反复和间歇性失败。问题往往会随着时间的推移而恶化。他们写:
我们有一些证据表明老龄化是一个因素。在多核处理器中,通常只始终如一地核对一个核心。 CEES似乎是一个整个行业的问题,而不是任何供应商,但CPU产品的速率并不统一。
讨论缺陷核心的“许多数量级”据说腐败率不同。工作负载类型,频率,电压和温度都可以影响核心是否抛出CEE。作者观察失败利率“每千台机器的几个Mercurial Cores的顺序”。请记住,机器可能在八至64个CPU内核之间有某个位置,具体取决于它的年龄。
谷歌有证据表明违反了锁语义的核心核心;负载,商店和矢量操作期间损坏数据;储存垃圾收集期间的数据损坏;在多个字符串中翻转相同的位位置;并损坏内核状态。有一个人观察到的问题值得引用:
一个确定性AES错误计算,它是“自我反转”:在同一核心上加密和解密产生了身份函数,但在其他地方的解密产生了Gibberish。
生成代码的想法,该代码只能由地球上的一个CPU解密是从安全性的角度识别和从运营中的可怕。谷歌没有透露它是如何意识到这一问题的,而是这样的问题肯定会引发对潜在事业的详细分析。
谷歌仍在收集有关此问题的数据。该公司不相信它必须检测到各种CEE或确定了使特定芯片更有可能在未来发展一个的特征。文本中有几个引用到思想中,当应用程序优化导致更频繁地使用新指令时,可以触发此问题。
如果AVX-512或AVX2等SIMD指令集的优化已被识别为这些问题的原因,则谷歌不会说明,或者是指其他指令。但它确实确实确实确实确实确实确实确实确实确实确实确实确实确实确实确实强调不同的指令的代码更改可以触发一个未知以前存在的问题。
这不是一个特别令人惊讶的发展。填充到芯片的晶体管越多,其中一些晶体管的几个晶体管在某种程度上缺陷。现代芯片架构师在假设某些晶体管无法正常工作的假设下重复一些功能。这消耗了很少的额外模具空间并增加产量。
CPU随着晶体管密度的增加,CPU将变得不那么可靠的想法是一个主题,英特尔1995年Pentium Pro上的Lead Designer在20年前谈论了鲍勃Colwell。 这是我在那个时候见过的第一个报告,表明来自AMD和英特尔的CPU现在可以遭受各种沉默错误,否则可能在此时未被发现,问题是行业范围内的。 这一事件与旧奔腾的FDIV Bug有一些相似之处,但只有名义上。 在大多数情况下,FDIV缺陷是沉默的,但问题影响了每个奔腾英特尔建造的,它立即影响了他们。 根据谷歌,一些芯片没有显示缺陷的证据,直到他们处于一定的年龄。 谷歌积极研究写作软件来检测CEES,它呼吁英特尔和AMD在运送它们之前更有效地测试CPU。