原標題:英特爾 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。