硬件历史学界近期迎来了一项突破性发现,硬件历史学家Ken Shirriff通过显微镜的精细观察,成功锁定了1994年Intel奔腾处理器中著名的“FDIV Bug”的根源所在,这一发现无疑为计算机硬件历史添上了浓墨重彩的一笔。
这一历史性的计算错误,不仅促成了Intel历史上的首次产品召回事件,还带来了高达4.75亿美元的直接经济损失。更重要的是,它成为了首个轰动全球的计算机硬件问题,让全世界对计算机硬件的可靠性产生了前所未有的关注。
Shirriff的研究聚焦于奔腾处理器的可编程逻辑阵列(PLA)。通过显微镜下的细致分析,他成功找到了引发这一缺陷的具体晶体管。这一发现不仅解答了多年来业界对于该问题的疑惑,也展示了Shirriff深厚的硬件分析功底。
作为Intel首款采用P5架构的CPU,这款奔腾处理器采用800纳米工艺制造,集成了310万个晶体管。得益于这一相对较少的晶体管数量,Shirriff才得以通过显微镜观察到处理器的内部结构,并成功定位到出问题的晶体管。而在现代CPU中,由于晶体管数量已高达数百亿个,这样的操作几乎成为了不可能的任务。
该错误源于奔腾处理器的先进浮点单元,它采用了SRT除法算法,使得计算速度相较于前代处理器有了显著的提升。然而,这一算法需要一个包含2048个单元的查找表,这些单元以112行的形式排列,并通过晶体管的存在或缺失来编码从-2到2的值。
Shirriff发现,在这个查找表中,有五项缺失了必要的晶体管,导致它们默认被设置为0而非正确的值2。他还发现了另外11个缺失的数据点,但幸运的是,这些点并未引发错误。Shirriff将这一现象形容为“纯粹的运气”。
为了解决这个问题,Intel在后续的奔腾版本中采取了简单的填充策略,将所有未使用的表项都设置为2。这一解决方案不仅有效解决了问题,还为未来的奔腾版本节省了裸片空间。
Shirriff计划在接下来的几天内,通过他的博客发布对这一发现的深入分析。他不仅会探讨这一问题的历史背景和技术细节,还将讨论是否有可能通过物理修改受影响的奔腾芯片来纠正这一长达三十年的老问题。