Intel奔騰FDIV Bug終於找到根源三十年懸案真相大白
硬體歷史學家Ken Shirriff取得了重大發現,他透過顯微鏡分析確定了導致1994年Intel奔騰處理器「FDIV Bug」的確切電晶體。這項錯誤導致了Intel的首次產品召回,直接損失達4.75億美元,同時這也是第一個成為全球頭條新聞的電腦硬體問題。
Shirriff檢查了第一代奔騰處理器的可程式邏輯陣列(PLA),精確定位了這一歷史性運算缺陷的根本原因。
這是Intel首款採用P5架構的CPU,採用800奈米製程製造,擁有310萬個晶體管,也正因如此,Shirriff才能夠借助顯微鏡分析處理器的裸片,並找到具體晶體管,在擁有數百億在一個電晶體的現代CPU上,這項操作幾乎很難實現。
錯誤源自於Pentium的先進浮點單元,它採用了SRT除法演算法,使運算速度是先前處理器的兩倍。
此演算法需要一個2048單元的查找表,以112行排列,值從-2到2由電晶體的存在或缺失編碼。
他發現該表中有五個缺失了所需的晶體管,預設為0而非正確的值2,不僅如此,Shirriff還發現了額外的11個缺失資料點,但這些點並沒有造成錯誤,他形容這是「由於運氣」。
Intel最終在後續的Pentium版本中透過填入所有未使用的表項為2來解決問題,這是一個簡單而有效的解決方案,節省了未來Pentium版本上的晶片空間。
Shirriff計劃在未來幾天內在他的部落格上發表對他調查的更深入分析,包括是否可能透過物理修改受影響的Pentium晶片來糾正這個三十年老問題的討論。