tft每日頭條

 > 圖文

 > 國際上的芯片巨頭

國際上的芯片巨頭

圖文 更新时间:2024-12-26 04:13:05

1993年,CPU 巨頭Intel推出了Pentium處理器。

新的品牌順利地擺脫了AMD等公司對286,386,486等數字系列的品牌“抄襲”,樹立了全新的領先者的形象。

國際上的芯片巨頭(讓芯片巨頭虧了5億美金)1

再加上90年代初斥巨資成功推進的Intel Inside計劃, Intel 成功地從一家主要向電腦制造商供貨的公司,轉變成一家直接面向消費者的品牌。

國際上的芯片巨頭(讓芯片巨頭虧了5億美金)2

不知道哪位天才把Pentium翻譯成霸氣的“奔騰”,真是驚豔全場的神來之筆。

新産品,新品牌,Intel 可謂意氣風發,準備一統天下。

但誰也沒想到的是,這個被寄予厚望的CPU内部居然隐藏着一個Bug!

1

Bug被發現的過程也頗為傳奇,我們得從數學上的一個概念說起。

早在希臘時代,歐幾裡得就已經證明質數有無窮多個,并且數字越大,質數分布得越稀疏。

神奇的是,盡管分布得很稀疏,但隻要出現一個質數,就可以在附近找到另外一個, 例如41 和 43、101 和 103、10007 和 10009,他們之間相差都是2。

數學家給這些相差為2的連續質數起了一個名稱:孿生質數。

1919年,挪威數學家 Viggo Brun證明了一件有趣的事情,就算有無窮多的孿生質數,它們倒數的和會收斂于一個常數,這個常數被稱為“布朗常數”。

國際上的芯片巨頭(讓芯片巨頭虧了5億美金)3

但是讓數學家頭疼的是:他們不知道這個布朗常數是不是無理數。

随着計算機的出現,有些人就想到一個招數:用計算機強大的算力,暴力求解。

美國 Lynchburg College 的數學教授Thomas Nicely就是其中的一員,他的實驗室恰巧裝備了新的奔騰計算機。

國際上的芯片巨頭(讓芯片巨頭虧了5億美金)4

嚴謹的Nicely為了防止算錯,用了兩種算法做雙保險,如果答案不同,肯定是某個地方出了問題。

Nicely滿懷希望地開始了計算,可是結果讓他失望:兩種算法的結果真的不一樣!

深入研究以後,Nicely發現:824 633 702 441和824 633 702 443這兩個孿生質數,它們的倒數的小數點後的第10位被算錯了!

Nicely換了一台老舊的486電腦來計算,答案算對了。

他再用奔騰電腦來重新計算,錯誤重現。

到底是自己的程序寫錯了?還是電腦的問題?

Nicely開始做排除法,排除自己代碼的錯誤,Borland編譯器的錯誤,芯片組的錯誤,花了整整4個月的時間,終于找到了Bug的起源地:奔騰CPU。

2

1994年10月24号,Nicely打電話給Intel的技術支持部門,告知他們這個問題,Intel說幾天内就會有回複,但是從此杳無音信。

原因很簡單,Intel早在1994年6月就知道了這個問題:浮點除法運算(FDIV)出錯。

奔騰CPU的FDIV引入了一種全新的、快速的實現方法,使用了一個2048項的硬件查找表,但是由于意外,有5個值沒有被正确地設置,他們本應該是2,但是卻設置成了0。

這個Bug隻有在高精度計算的時候才會被觸發,普通用戶很難碰到,Byte雜志估計,出錯的概率是90億分之一。

既然影響不大,Intel的選擇是:隐瞞,悄悄修複,不公布任何細節。

畢竟已經售出幾百萬片CPU了,大規模召回損失太大。

又不是不能用!

3

收不到回音的Nicely很不爽,10月30号,他開始給一些IT著名人士和雜志發郵件,包括Byte雜志,PC Week,InfoWorld,PC Magazine。

國際上的芯片巨頭(讓芯片巨頭虧了5億美金)5

這件事情很快在網絡上發酵,一大批牛人開始了問題定位的接力賽:

第一棒選手是上面提到的Nicely。

第二棒則是挪威的Terje Mathis,他很快确認了Nicely的問題,并且寫了一個簡單的彙編測試程序,發到了comp.sys.intel新聞組中(沒錯,那時候别說社交網絡了,就連BBS還不流行)

第三棒是德國的Andreas Kaiser ,他找到了24個數字,它們的倒數在奔騰CPU隻能得到單精度的結果。

第四棒是一位設計FPU(floating-point-unit)的專業人士,加州Vitesse半導體設計師Tim Coe。

他根據24個數字的線索,推測出奔騰CPU采用了基數為 4 的 SRT 算法,每個時鐘周期可以生成兩位的商,使得速度比原來快兩倍。

事實也确實如此,内部專業人士的确厲害。

到了第五棒,一個超級大牛出現了,MATLAB之父:Cleve Moler

國際上的芯片巨頭(讓芯片巨頭虧了5億美金)6

Moler總結了之前的數據,找到了Bug的規律。

可見犯了錯誤以後,想捂是捂不住的,你越想捂,這世界上越有人要把你扒個底朝天。

但是到目前為止,Intel奔騰這個硬件Bug還主要在科技圈中轉悠,破圈還需要等待一個重要時刻。

4

1994年11月24号,JPL(噴氣推進實驗室,錢學森是重要創始人)有兩名工程師得知了這個Bug,建議實驗室停購奔騰電腦。

CNN的記者史蒂夫·楊聽說了JPL的事情,嗅覺靈敏的他立刻聯系Moler,進行采訪,當天晚上JPL的新聞和Moler的采訪就在電視台播放,紐約時報、波士頓環球報等大肆報道,文章鋪天蓋地而來。

奔騰CPU這個本來很難出現的Bug一下子成為街頭巷尾的熱議話題。

在媒體的重壓之下,Intel終于承認了浮點計算的漏洞,但依然嘴硬,它聲稱并不嚴重,并且隻給那些能證明自己受到影響的用戶更換CPU。

這種想蒙混過關的處理态度引發衆怒,動搖了消費者對Intel CPU的信心。

其他廠商也順時而動,IBM暫停銷售裝有Intel CPU的個人電腦,導緻Intel股票大幅下跌。

1994年12月,撐不住的Intel終于宣布:召回所有有缺陷的處理器。

這也是曆史上第一次全面召回計算機芯片。

Intel為此付出的代價是:4.75億美元,名譽的損失更是難以估量。

5

故事到此并沒有結束。

照理說硬件出了問題,無法修改,隻能替換。

但是不要忘了我們剛提到的那一群天才,MATLAB之父Cleve Moler ,Tim Coe,阿貢國家實驗室的 Peter Tang 以及來英特爾的幾位工程師,他們通力合作,在12月5号居然開發出了一個非常巧妙的軟件修複辦法。

細節這裡就不贅述了,大概是:在特定情況下,将被除數和除數都乘以15/16,就可以進入安全狀态。

這個修複辦法被發到新聞組中,讓所有人免費使用。

精明的Cleve Moler讓公司發布了一個可以檢測和糾正除法錯誤的MATLAB版本,并且立刻發了一個新聞稿《MathWorks修複了Intel奔騰浮點數Bug》。

就在奔騰的Bug鬧得沸沸揚揚,全國知的時候,新聞稿出現在了美國各大媒體的傳真機上。

Cleve Moler成功地實施了一次完美營銷,這一年,他的公司MathWorks隻是一家不到250人的小公司,随後便走上了快車道,成為這一領域的巨頭。

國際上的芯片巨頭(讓芯片巨頭虧了5億美金)7

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved