[閒聊]幹古:Intel Pentium FDIV Bug

看板PC_Shopping (個人電腦購買)作者 (K1NG0DyR)時間1月前 (2024/07/28 01:48), 1月前編輯推噓58(591102)
留言162則, 59人參與, 1月前最新討論串1/1
上次Microcode那篇簡單的跟大家回顧了FDIV Bug的問題 今天看到Intel受訪的文章,有種熟悉的既視感,來跟大家幹個古 Intel出包是不太意外,現在電路、晶片設計的規模比以前大很多了 很多細節「人」沒注意到很正常,講這些不是要護航我個人也是受災戶,超頻用平台加上 主力工作站,我手上13~14th gen平台有很多組 講這個是因為Intel技術出包我能諒解,但在當年事件後公關處理居然還能那麼糟糕 目前Intel出過最大包的位置應該要讓給目前的事件了,規模看起來是這樣,實際商譽損失 和財務損失就不得而知了。 1. Bug的發現與背景 FDIV Bug是由University of Lynchburg(以前叫Lynchburg College)的數學系教授 Thomas Nicely在1994年進行prime(質數)相關研究時發現的,教授寫了一系列包含了 twin primes、prime triplet、prime quadruplet的程式碼,其中有計算Brun's constant的程式(所有twin primes的倒數和會趨近一個constant),教授在計算Brun's constant的時候發現不管怎麼算都結果都是錯誤的,研究是在6月進行的,一直到10月 底左右教授才排除其他bug發現是CPU的問題。 教授用的CPU是Pentium(P5),是當年世界上最先進的處理器之一,教授發現在計算 824,633,702,441和824,633,702,443 這兩個數字的倒數時,小數後10位會計算錯誤,為了確定是軟體還是硬體錯誤,他還使 用了前一代CPU i486進行計算,最後才確認是Pentium CPU的問題,並向Intel回報該 Bug 2. FDIV Bug的技術細節 Intel當年為了加速floating point除法的速度,使用了SRT algorithm取代了先前在 486上使用的shift-and-subtract algorithm,SRT在一個Clock cycle可以算出2 bits 的結果,後者只能算出一個,改用SRT algorithm也並不是錯誤的決定。 錯誤在哪裡呢? SRT algorithm使用了2048 cells的PLA(programmable logic array)來 implement,SRT的計算仰賴一張lookup table,這張lookup table要被填入PLA裡,其 中1066個cells應該填入-2、-1、0、+1、+2,原始的array在compile的時候出錯了5個 值應該要是+2但是變成了0,這個錯誤一路傳到到了蝕刻PLA進入chip的設備裡。 SRT的特性之一是recursive(遞迴),所以誤差會不斷累積,最糟的狀況會到第四有效位 數,大部分的錯誤只到第9、10有效位數而已。這邊給大家一個實例4,195,835除以3,14 5,727,正確答案是1.333820449136241002。 這兩個數字在運算的時候要轉換成hexadecimal(16進制),前者是0x4005FB,後者是 0x2FFFFF,0x4005FB的5會需要access前面提到錯誤的array cells,這導致結果是 1.333"739068902037589" 3. Intel的回應與處理 其實這個Bug在一般使用的情況下不太會遇到,統計是90億個長除法才會遇到一個錯誤 ,而且也並不是所有的除法運算都會遇到這個bug,因此Intel在最初的回應中是「這 是個微不足道的錯誤,並不影響大多數的使用者,Intel願意向那些提出證據受到影響 的用戶更換CPU。」 10/24 教授向Intel報告 10/30 教授向學術界的其他人發了有關FDIV bug的報告,這個消息很快就透過網路傳開 了 11/7 該Bug首次出現在媒體上,發表在EE times上的一篇文章 11/22 被CNN報導,同時也被New York Times和the Boston Globe報導 12/20 Intel正式宣布召回所有有Bug的Pentium CPU 1995/1/17 Intel的年度報告中指出處理FDIV bug的成本是4.75億美元(應該相當於現在 的8.多億美元) 這件事件的影響很大,半導體業界使用formal verification的數量明顯增加 1996有一種針對SRT的技術問世,叫做"word-level model checking",Intel在開發 Pentium 4的時候用了STE等方式也發現了很多錯誤,這些沒被發現很可能是規模更大的 召回。但一直到2008年Intel才有架構使用了formal verification作為主要驗證方式 (Nehalem)。 這整件事件除了財務上的損失,公關處理得更是糟糕,Intel是禁止OEM和經銷商進行召 回的,理由是應該由end user決定該bug是否影響他們的使用。 John Romero(雷神之槌 Quake的開發者)曾經在一次的演講說他們當年也因為這個Bug花 費了許多時間在追蹤問題。 商業的部分IBM甚至宣布停賣Intel CPU的產品,當然IBM這個決策是有點爭議的(因為當 時IBM有PowerPC)。 回到一般消費者上,Intel一開始怎麼說呢? 「這件事情影響不大日常不可能受到影響 ,除非你能證明你有被影響,才會更換你的CPU」,Intel的回應引起了不少業界人士的 反彈,到後來媒體和輿論開始發酵後,甚至平常用電腦都不會進行計算的人這類族群也 想採取行動,Intel才終於發現事情不對勁宣布全面召回,消費者對於Intel的信心明顯 是被動搖的。忘了寫補充一下,後續報導證明Intel在1994年6月就發現了問題,但選擇 不披露細節也不召回秘密修補,但最後還是被發現了。 相信看完的你也能明白為甚麼我會想起FDIV的事件,也回應我開頭所講,我很難相信Intel 這種公司在經歷過這種事件後還會犯一樣的公關錯誤。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.165.47 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1722102481.A.E84.html ※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 01:49:55

07/28 01:57, 1月前 , 1F
當年8億鎂(相對今日)解決
07/28 01:57, 1F

07/28 01:58, 1月前 , 2F
現在如果全面召回 要不要花到80億...
07/28 01:58, 2F

07/28 01:58, 1月前 , 3F
這次錯 坦白說intel現在的狀態 扛不起..
07/28 01:58, 3F

07/28 01:59, 1月前 , 4F
筆電似乎沒這個問題!?
07/28 01:59, 4F

07/28 02:03, 1月前 , 5F
查了一下 當年賠掉的是intel年淨利1/10?
07/28 02:03, 5F

07/28 02:04, 1月前 , 6F
現在這賠下去不知道要多少錢 如果要賠掉
07/28 02:04, 6F

07/28 02:04, 1月前 , 7F
1/3年淨利 那就非常痛了
07/28 02:04, 7F

07/28 02:06, 1月前 , 8F
算錯 不到1/10...
07/28 02:06, 8F
現在還查的到當年的annual report,有興趣可以去查看看

07/28 02:10, 1月前 , 9F
看來這間公司的本質就是傲慢
07/28 02:10, 9F

07/28 02:13, 1月前 , 10F
悲劇的是即使用了形式化驗證還是做出有問題
07/28 02:13, 10F

07/28 02:13, 1月前 , 11F
的東西
07/28 02:13, 11F
※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 02:25:20

07/28 02:24, 1月前 , 12F
AMD過去比較大包的應該就只有Phenom TLB bug
07/28 02:24, 12F

07/28 02:32, 1月前 , 13F
推幹古,原po文章寫得挺不錯的
07/28 02:32, 13F
感謝

07/28 02:37, 1月前 , 14F
補充:後來Windows有提供偵測CPU型號
07/28 02:37, 14F

07/28 02:37, 1月前 , 15F
並可以選擇是否關閉FPU的功能
07/28 02:37, 15F

07/28 02:38, 1月前 , 16F
沒被回收的CPU反而成為收藏家的逸品
07/28 02:38, 16F
感謝補充,是的,當年有一系列的software patches,甚至連IEEE上都有一篇論文給出了 一種避免發生錯誤的algorithm ※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 02:43:05

07/28 02:49, 1月前 , 17F
可是20年前的主管早退休了
07/28 02:49, 17F
是沒錯,1994的CEO是Andrew Grove;但G叔當年也還在Intel,2001年就當上CTO了 ※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 02:55:40 ※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 03:10:27

07/28 03:20, 1月前 , 18F
尼用當年角度看這就很微妙惹
07/28 03:20, 18F

07/28 03:20, 1月前 , 19F
當年幾乎只有一種產品
07/28 03:20, 19F

07/28 03:21, 1月前 , 20F
pc也好server也好都同一顆
07/28 03:21, 20F

07/28 03:21, 1月前 , 21F
速度也沒有動態調節
07/28 03:21, 21F

07/28 03:22, 1月前 , 22F
現在問題可以確定pc diy直接影響最大
07/28 03:22, 22F

07/28 03:22, 1月前 , 23F
而這市場很小 最重要在筆電
07/28 03:22, 23F

07/28 03:23, 1月前 , 24F
除非高階低功耗到商用全面大爆炸
07/28 03:23, 24F

07/28 03:23, 1月前 , 25F
不然論危機還太早
07/28 03:23, 25F
確實寫文時忽略了當年的市場背景,規模最大這點我言之過早,但公關處理還是一樣糟糕就 是了... ※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 03:29:28

07/28 03:44, 1月前 , 26F
有Quake有推
07/28 03:44, 26F

07/28 04:48, 1月前 , 27F
文組理工史
07/28 04:48, 27F

07/28 07:22, 1月前 , 28F
拿這件事情來對比也沒錯啊,當初FVI
07/28 07:22, 28F

07/28 07:22, 1月前 , 29F
B是在各種媒體推波助瀾下讓這種少見
07/28 07:22, 29F

07/28 07:22, 1月前 , 30F
用戶錯誤放大到大家都要抵制
07/28 07:22, 30F

07/28 07:27, 1月前 , 31F
現在這問題連幾家公司都跳出來投訴
07/28 07:27, 31F

07/28 07:27, 1月前 , 32F
用intel的機櫃都有常報修的問題,再
07/28 07:27, 32F

07/28 07:27, 1月前 , 33F
加上有名硬體媒體也出來講近期不推
07/28 07:27, 33F
還有 92 則推文
還有 11 段內文
07/28 16:37, 1月前 , 126F
DIY仔就去死吧 何況很多不會發現CPU壞
07/28 16:37, 126F

07/28 16:37, 1月前 , 127F
了 以為是自己問題或其他零件
07/28 16:37, 127F

07/28 16:41, 1月前 , 128F
當初Intel號稱有外星人 技術大幅領先 毛
07/28 16:41, 128F

07/28 16:41, 1月前 , 129F
利又高 召回沒啥差 但最近每季Intel都虧
07/28 16:41, 129F

07/28 16:41, 1月前 , 130F
損十幾億甚至幾十億鎂 24 Q1稍有收斂還是
07/28 16:41, 130F

07/28 16:41, 1月前 , 131F
虧4億鎂喔 他們現在是真的沒有那個能力召
07/28 16:41, 131F

07/28 16:41, 1月前 , 132F
回了 這弄下去直接多幾十億鎂的虧損欸
07/28 16:41, 132F

07/28 16:43, 1月前 , 133F
所以外星人去哪裡了
07/28 16:43, 133F

07/28 16:43, 1月前 , 134F
回家去了 XD
07/28 16:43, 134F

07/28 16:43, 1月前 , 135F
被dell收購了
07/28 16:43, 135F

07/28 16:58, 1月前 , 136F
外星人去了dell那裡了啊 XDD
07/28 16:58, 136F

07/28 19:09, 1月前 , 137F
dell有啥東西發功嗎?小弟沒關注不知道
07/28 19:09, 137F
就是玩梗沒有發功,Dell 2006年收購了一家叫Alienware的公司 ※ 編輯: benmei99 (106.64.136.54 臺灣), 07/28/2024 19:16:53

07/28 19:20, 1月前 , 138F
Dell 的電競電腦系列Alienware 綽號外星人
07/28 19:20, 138F

07/28 20:38, 1月前 , 139F
當年賺爛了 現在賠錢不說 還賠信譽
07/28 20:38, 139F

07/28 20:39, 1月前 , 140F
Pat信誓旦旦要把恢復intel往日榮光,看來
07/28 20:39, 140F

07/28 20:40, 1月前 , 141F
可能只是南柯一夢.
07/28 20:40, 141F

07/28 21:57, 1月前 , 142F
07/28 21:57, 142F

07/28 22:04, 1月前 , 143F
推好文
07/28 22:04, 143F

07/28 22:24, 1月前 , 144F
推 錯誤難免 重要的是解決問題的態
07/28 22:24, 144F

07/28 22:24, 1月前 , 145F
度與方法 這才是決定I家未來的關鍵
07/28 22:24, 145F

07/28 22:58, 1月前 , 146F
那為什麼compile會出錯
07/28 22:58, 146F
這個問題我也不知道,你要去問當年參與P5設計的工程師 ※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 23:05:49

07/29 04:48, 1月前 , 147F
推 就是因為這個 才引入形式化驗證 但之
07/29 04:48, 147F

07/29 04:48, 1月前 , 148F
後還是出現幽靈 熔斷這類分支預測的bug
07/29 04:48, 148F
※ 編輯: benmei99 (106.64.128.246 臺灣), 07/29/2024 05:10:20

07/29 05:31, 1月前 , 149F
pro 推
07/29 05:31, 149F

07/29 05:32, 1月前 , 150F
pentium iii 7mhz我的第一顆買的
07/29 05:32, 150F

07/29 05:33, 1月前 , 151F
#70mhz
07/29 05:33, 151F

07/29 05:33, 1月前 , 152F
700nhz
07/29 05:33, 152F

07/29 08:27, 1月前 , 153F
推講古
07/29 08:27, 153F

07/29 11:45, 1月前 , 154F
推講古好文
07/29 11:45, 154F

07/29 11:56, 1月前 , 155F
推一個。對比下來搞不好這一次也是早知道
07/29 11:56, 155F

07/29 22:07, 1月前 , 156F
形式化驗證本來就沒那麼神
07/29 22:07, 156F

07/29 22:08, 1月前 , 157F
有驗的東西是可以保證沒錯,但沒驗的還是
07/29 22:08, 157F

07/29 22:08, 1月前 , 158F
不知道有沒有問題
07/29 22:08, 158F

07/30 01:17, 1月前 , 159F
07/30 01:17, 159F

07/30 02:49, 1月前 , 160F
拿當年來比很正常吧 Intel的嘴臉始終如一
07/30 02:49, 160F

07/30 02:51, 1月前 , 161F
當年訊息流通沒有現在發達都能全面炎上
07/30 02:51, 161F

07/30 02:52, 1月前 , 162F
現在一堆自媒體都虎視眈眈要打Intel臉
07/30 02:52, 162F
文章代碼(AID): #1cfJBHw4 (PC_Shopping)
文章代碼(AID): #1cfJBHw4 (PC_Shopping)