奔腾浮点除错误()是英特爾公司的舊版本Pentium浮点运算器的一個錯誤。错误起源于奔腾系列的浮点除(FDIV)指令。這錯誤所引發的後續效應導致了英特爾的公關災難,並導致英特爾在1994年受到4.75億美元的損失。
發現
1994年10月,美國弗吉尼亞州數學系教授為研究孿生質數,發現用電腦處理長除法時一直出錯。他用一個數字去除以824,633,702,441時,答案一直是錯誤的。事後發現原因是英特爾為了加速運算,將整個乘法表燒錄在處理器上面,但是2048個乘法數字中,有5個輸入錯誤。這些錯誤其實不容易出現,在運算過程中,它會自動修復錯誤,只有幾個二進位的數字組,才會造成完全錯誤的結果。
影響
根據工程師指出,大約90億個長除法中會有一個錯誤。依照計算,平均故障間隔(MTBF)大概是七百年,所以幾乎是不可能發生。但是同样有人声称实际上遭遇到这个错误的频率要高得多。英特尔公司后来召回了有缺陷的产品。
受影響型號
此問題僅在原先Pentium處理器的某些型號上出現。該錯誤只在某些Pentium系列處理器低於120 MHz的時鐘速度出現。在受影響的型號上,英特爾處理器頻率ID程式會檢查是否存在此錯誤。
下面列出了10個受影響的處理器。這些處理器的39個S-spec並未列在英特爾處理器規格網頁中。
参考文献
參見
- 韌體
- 微程式
- 布朗常數─導致奔騰浮點除錯誤被發現的數學常數,其定義為所有孿生質數倒數之和。
外部連結
- [https://web.archive.org/web/20160712050001/http://www.trnicely.net/#PENT 本錯誤發現者:Dr. Nicely的個人網站]
- [http://www.cs.earlham.edu/~dusko/cs63/fdiv.html 本錯誤的精確資訊網頁]
- [http://www.maa.org/mathland/mathland_5_12.html 本錯誤在Mathland由Ivars Peterson的描述]
- [https://web.archive.org/web/20050208091628/http://www.mathworks.com/company/newsletters/news_notes/pdf/win95cleve.pdf A Tale of Two Numbers],by Cleve Moler of The MathWorks
** [http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=1666&objectType=file 包含更多詳細資訊的ZIP壓縮檔案]
评论 (0)