原标题:英特尔 4.75 亿美元的错误
文章来源:AI前线
内容字数:25204字
Pentium FDIV 漏洞:一场由查找表错误引发的公关危机
本文总结了 Ken Shirriff 撰写的关于 Pentium FDIV 漏洞的文章,该漏洞于 1994 年被发现,并导致英特尔损失了 4.75 亿美元。文章深入探讨了漏洞的根本原因、英特尔的应对以及该的影响。
1. 漏洞的发现与英特尔的初期反应
1994 年,数学教授 Nicely 在使用 Pentium 处理器进行孪生素数计算时发现了浮点除法错误 (FDIV 漏洞)。英特尔最初轻描淡写地将其视为小问题,但该漏洞迅速成为媒体关注的焦点,引发了广泛批评。
2. Pentium 除法算法及漏洞根源
Pentium 使用 SRT 除法算法,该算法依赖于一个查找表 (PLA) 来加速运算。文章指出,英特尔声称该漏洞源于脚本错误导致表中遗漏了 5 个条目,但 Shirriff 的分析表明,实际上是由于查找表定义中的数学错误导致 16 个条目缺失,其中 5 个缺失条目触发了漏洞。
3. PLA 的实现与错误的数学边界
Pentium 的查找表存储在一个可编程逻辑阵列 (PLA) 中,该阵列以一种紧凑的方式实现了查找表的功能。文章详细解释了 PLA 的工作原理,并指出漏洞的根本原因在于英特尔在定义查找表边界时使用了错误的数学公式,导致一些单元格的值错误。进位保存加法器和进位预测加法器也参与其中,它们导致查找表索引可能比预期值低一个单元格,加剧了错误的概率。
4. 英特尔的修复方案与错误的解释
英特尔最终为所有客户更换了有问题的芯片。文章揭示,英特尔的修复并非简单地添加缺失的条目,而是通过修改 PLA 的设计,利用填充未使用的表项来简化逻辑,从而减少了 PLA 的大小。文章驳斥了英特尔关于脚本错误的说法,认为其根源在于数学错误。
5. FDIV 漏洞的影响与争议
FDIV 漏洞的实际影响远小于公众的恐慌。触发错误的概率极低,且错误通常只出现在小数点后几位。然而,该漏洞的确定性以及易于重现性,使得英特尔难以忽视,最终导致了大规模召回。
6. 英特尔其他处理器错误及微代码更新
文章还简要回顾了英特尔其他处理器(如 386 和 Pentium)出现的错误,并解释了 Pentium Pro 中引入的可修补微代码技术,该技术使得后续处理器能够通过软件更新来修复漏洞。
7. 总结
Pentium FDIV 漏洞是一场由微小的设计错误引发的重大公关危机。它凸显了处理器设计中即使是细微的错误也可能造成巨大的经济损失,同时也反映了公众对产品质量和准确性的期望。
联系作者
文章来源:AI前线
作者微信:
作者简介:面向AI爱好者、开发者和科学家,提供大模型最新资讯、AI技术分享干货、一线业界实践案例,助你全面拥抱AIGC。