PTT推薦

[閒聊]幹古:Intel Pentium FDIV Bug

看板PC_Shopping標題[閒聊]幹古:Intel Pentium FDIV Bug作者
benmei99
(K1NG0DyR)
時間推噓58 推:59 噓:1 →:102

上次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留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.165.47 (臺灣)

※ 文章網址:
https://www.ptt.cc/PC_Shopping/E.Hp_6YwbDmpk4

※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 01:49:55

wahaha99 07/28 01:57當年8億鎂(相對今日)解決

wahaha99 07/28 01:58現在如果全面召回 要不要花到80億...

wahaha99 07/28 01:58這次錯 坦白說intel現在的狀態 扛不起..

autoupdate 07/28 01:59筆電似乎沒這個問題!?

wahaha99 07/28 02:03查了一下 當年賠掉的是intel年淨利1/10?

wahaha99 07/28 02:04現在這賠下去不知道要多少錢 如果要賠掉

wahaha99 07/28 02:041/3年淨利 那就非常痛了

wahaha99 07/28 02:06算錯 不到1/10...

現在還查的到當年的annual report,有興趣可以去查看看

KGSox 07/28 02:10看來這間公司的本質就是傲慢

ekgs 07/28 02:13悲劇的是即使用了形式化驗證還是做出有問題

ekgs 07/28 02:13的東西

※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 02:25:20

ekgs 07/28 02:24AMD過去比較大包的應該就只有Phenom TLB bug

mrme945 07/28 02:32推幹古,原po文章寫得挺不錯的

感謝

Cubelia 07/28 02:37補充:後來Windows有提供偵測CPU型號

Cubelia 07/28 02:37並可以選擇是否關閉FPU的功能

Cubelia 07/28 02:38沒被回收的CPU反而成為收藏家的逸品

感謝補充,是的,當年有一系列的software patches,甚至連IEEE上都有一篇論文給出了 一種避免發生錯誤的algorithm

※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 02:43:05

Clarkliu 07/28 02:49可是20年前的主管早退休了

是沒錯,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

a000000000 07/28 03:20尼用當年角度看這就很微妙惹

a000000000 07/28 03:20當年幾乎只有一種產品

a000000000 07/28 03:21pc也好server也好都同一顆

a000000000 07/28 03:21速度也沒有動態調節

a000000000 07/28 03:22現在問題可以確定pc diy直接影響最大

a000000000 07/28 03:22而這市場很小 最重要在筆電

a000000000 07/28 03:23除非高階低功耗到商用全面大爆炸

a000000000 07/28 03:23不然論危機還太早

確實寫文時忽略了當年的市場背景,規模最大這點我言之過早,但公關處理還是一樣糟糕就 是了...

※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 03:29:28

lordlpg 07/28 03:44有Quake有推

bhmagic 07/28 04:48文組理工史

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

huckerbying 07/28 07:22B是在各種媒體推波助瀾下讓這種少見

huckerbying 07/28 07:22用戶錯誤放大到大家都要抵制

huckerbying 07/28 07:27現在這問題連幾家公司都跳出來投訴

huckerbying 07/28 07:27用intel的機櫃都有常報修的問題,再

huckerbying 07/28 07:27加上有名硬體媒體也出來講近期不推

huckerbying 07/28 07:27薦intel,那也很難保不會重演FVIB事

huckerbying 07/28 07:27

當年的媒體曝光很重要,加上又是發生在學術界與論壓力也是不小

dildoe 07/28 07:49製造問題margin的 統計資料又不在end user

dildoe 07/28 07:50除了問題比例偏高,沒人leak一般人連細節大

dildoe 07/28 07:50都不會知道吧.要leak就是不吞的意思吧XD

kuroshizu21 07/28 07:57推好文, 原PO的文章我個人都看得蠻開

kuroshizu21 07/28 07:57心的, 希望之後還有續篇

DivineSX 07/28 08:06推,原po 文筆真的很好,寫得深入淺出

感謝二位鼓勵

kira925 07/28 08:24這種製程問題我很難相信只有DIY被影響

huckerbying 07/28 08:28連公司Server級都跳出來質疑的話,

huckerbying 07/28 08:28那公司高層就不得不重視了

ClarinetWork 07/28 08:31推考古

zseineo 07/28 08:34

ABA0525 07/28 08:35這家真的爛

ABA0525 07/28 08:35今年這次更嚴重

olozil 07/28 08:38不然你要用AMD...當年沒AMD嗎?

當年Pentium的對手是AMD K5,但一直到了1996年3月才上市,而且效能也不如預期,AMD當 年野心勃勃的想挑戰Pentium Pro,這點可以從K5架構跟採用的solution看出來;K5沒有早 期Am486和後來的K6那麼成功

huckerbying 07/28 08:42當年有AMD,跟Pentium對壘的是AMD K

huckerbying 07/28 08:425

Gocoba 07/28 08:42所以現在13/14代用戶不鬧大就等著吃鱉阿

※ 編輯: benmei99 (27.51.128.156 臺灣), 07/28/2024 08:53:19

klm619 07/28 09:05推個

Azure5200 07/28 09:18長知識推

ltytw 07/28 09:30當年一堆CPU好選 不買AMD也能買cryix貨win

Cryix跟Intel的訴訟加上種種原因開始虧損,後來就跟National Semiconductor合併了

atlaswhz 07/28 09:30現在很難鬧大,大家用手機平板筆電,桌機

atlaswhz 07/28 09:30用戶根本稀有

ltytw 07/28 09:30chip

AerobladeIII 07/28 09:34不會吃鱉啦,不然那些印粉要含淚買

AerobladeIII 07/28 09:34AMD嗎

※ 編輯: benmei99 (27.51.128.156 臺灣), 07/28/2024 09:40:12

zenki0127 07/28 09:44做成鑰匙圈那次嗎

NeCool 07/28 10:59

avans 07/28 11:05哇 很棒的分享,謝謝說明典故

cancelpc 07/28 11:24這次認也沒用,沒有正常的可以換。

cancelpc 07/28 11:25且不是用軟體檢測的出來,是看運作環境

cancelpc 07/28 11:25決定壽命。

minato711208 07/28 11:31

ym010273 07/28 11:35就冷處理賭事情不會發酵,每件事都要積

ym010273 07/28 11:35極處理反而更糟吧

ym010273 07/28 11:38反正出事獻祭幾個人頭就好了

lc85301 07/28 11:40有處理啊,Fab 的 OOO 都換人了

cancelpc 07/28 11:48DIY市場問題不大,品牌機處理問題的成本

cancelpc 07/28 11:48才大。量大通路多替換成本高。更況沒正

cancelpc 07/28 11:48常的可換。死路一條。

lu19900217 07/28 12:15登,登 登 登,登個幾年看能不能像k8

lu19900217 07/28 12:15那時挺過去

roseritter 07/28 12:40看server線,I社目前的命脈

sank 07/28 13:11

applejone 07/28 13:19當年的 k5 k6 是浮點運算被 Intel屌打

sjimmy43 07/28 13:34想問個跟文章主旨無關的問題,IBM停賣In

sjimmy43 07/28 13:34tel 產品會產生什麼爭議?跟powerPC的關

sjimmy43 07/28 13:34聯是什麼?

爭議主要是來自業內的質疑聲,當初PowerPC CPU是Apple-IBM-Motorola alliance合作開發 的,很明顯要是Intel名譽受損IBM可以從中獲利,所以停賣Intel產品當初是有被一些業內 人士質疑動機的

cancelpc 07/28 13:36資料中心也被A大舉攻佔,因為空間/電力

cancelpc 07/28 13:36就是成本。多核製程是競爭力。

cancelpc 07/28 13:37當初是PC開始入侵原本IBM獨佔的市場

cancelpc 07/28 13:38唯有系統不爭氣,不穩定。

cancelpc 07/28 13:40所以PC server後面好幾年才進入。IBM這

cancelpc 07/28 13:40幾年也開始把PowerPC給EOS,EOL了,改採x

cancelpc 07/28 13:4086架構

cancelpc 07/28 13:41拼了老本買下伺服器系統龍頭Redhat

cancelpc 07/28 13:42上面系統少了字,作業系統

※ 編輯: benmei99 (27.51.128.156 臺灣), 07/28/2024 13:46:20

cancelpc 07/28 13:53IBM這幾年賣掉一大堆部門,剩自己的CPU

cancelpc 07/28 13:53因一些原因不能賣沒人買不能停(政府/國

cancelpc 07/28 13:53防)

cancelpc 07/28 13:55已經開始針對專屬架構的電腦客戶發出EOL

cancelpc 07/28 13:55,EOS通知,要轉x86架構。

yymeow 07/28 14:20x86 server算是後來居上,早年都是Sun、

yymeow 07/28 14:21AIX、sparc、MIP等等的天下

yymeow 07/28 14:21 ^s

hn9480412 07/28 14:26AMD也有zen的segfault問題啦

xbearboy 07/28 14:37當年雷鳥裝個散熱都能崩角了,好在自己

xbearboy 07/28 14:37沒遇崩到不能用的情況,但看到散熱沒裝

xbearboy 07/28 14:37好燒掉要玩家自負的態度,基本上就不會

xbearboy 07/28 14:37相信這家會好到哪去了,就兩家比下限而

xbearboy 07/28 14:37

在商言商,這些商業巨頭說穿了都一個樣(ry

kuninaka 07/28 14:44這個以前讀書有看到過XD

唸CE或CS應該都會有印象,這件事是教科書級的災難

※ 編輯: benmei99 (27.51.128.156 臺灣), 07/28/2024 14:48:25

kuninaka 07/28 14:54只能說Pat Gelsinger脫離工程太遠了

kuninaka 07/28 14:54當初這問題爆發的時候他還在INTEL當

kuninaka 07/28 14:54工程師

kuninaka 07/28 14:54鬧得這麼大,結果現在整個裝死混過去XD

kuninaka 07/28 14:54裝死也不能說不是好決策XD

正是G叔還在才讓人匪夷所思,商業角度或許裝死真的是最好的決策

cancelpc 07/28 14:56是阿,有段時期PC Server跟封閉架構互競

kanding255 07/28 15:04這次的影響範圍更大欸 intel感覺會倒

kanding255 07/28 15:04 除非下一代能超越

smallreader 07/28 16:01感謝介紹..長知識

yymeow 07/28 16:08Xeon出事才會倒

ltytw 07/28 16:23說倒 我覺得不至於 不過就是元氣大傷

ltytw 07/28 16:24變成小咖廠商 比VIA還小 並且晶圓廠被割

ltytw 07/28 16:24出去 之如此類

ltytw 07/28 16:26就好像大隻刃下心一戰之後縮水變成

yymeow 07/28 16:32或是像IBM一樣變昨日黃花吧

yymeow 07/28 16:32小時候看到同學PS/55電腦一開機的IBM字樣

yymeow 07/28 16:33純血的PC,不是廉價相容機。真的羨慕

amos30627 07/28 16:35這次就損商譽而已 Xeon筆電都沒事

amos30627 07/28 16:36手握x86跟先進製程不可能倒

amos30627 07/28 16:37DIY仔就去死吧 何況很多不會發現CPU壞

amos30627 07/28 16:37了 以為是自己問題或其他零件

mainsa 07/28 16:41當初Intel號稱有外星人 技術大幅領先 毛

mainsa 07/28 16:41利又高 召回沒啥差 但最近每季Intel都虧

mainsa 07/28 16:41損十幾億甚至幾十億鎂 24 Q1稍有收斂還是

mainsa 07/28 16:41虧4億鎂喔 他們現在是真的沒有那個能力召

mainsa 07/28 16:41回了 這弄下去直接多幾十億鎂的虧損欸

mrme945 07/28 16:43所以外星人去哪裡了

yymeow 07/28 16:43回家去了 XD

amos30627 07/28 16:43被dell收購了

kuroshizu21 07/28 16:58外星人去了dell那裡了啊 XDD

snowpoint 07/28 19:09dell有啥東西發功嗎?小弟沒關注不知道

就是玩梗沒有發功,Dell 2006年收購了一家叫Alienware的公司

※ 編輯: benmei99 (106.64.136.54 臺灣), 07/28/2024 19:16:53

bw212 07/28 19:20Dell 的電競電腦系列Alienware 綽號外星人

felaray 07/28 20:38當年賺爛了 現在賠錢不說 還賠信譽

felaray 07/28 20:39Pat信誓旦旦要把恢復intel往日榮光,看來

felaray 07/28 20:40可能只是南柯一夢.

nicetw20xx 07/28 21:57

user1120 07/28 22:04推好文

lukeatlee 07/28 22:24推 錯誤難免 重要的是解決問題的態

lukeatlee 07/28 22:24度與方法 這才是決定I家未來的關鍵

yeeouo 07/28 22:58那為什麼compile會出錯

這個問題我也不知道,你要去問當年參與P5設計的工程師

※ 編輯: benmei99 (36.227.165.47 臺灣), 07/28/2024 23:05:49

wei115 07/29 04:48推 就是因為這個 才引入形式化驗證 但之

wei115 07/29 04:48後還是出現幽靈 熔斷這類分支預測的bug

※ 編輯: benmei99 (106.64.128.246 臺灣), 07/29/2024 05:10:20

potatososo 07/29 05:31pro 推

potatososo 07/29 05:32pentium iii 7mhz我的第一顆買的

potatososo 07/29 05:33#70mhz

potatososo 07/29 05:33700nhz

youcanfindit 07/29 08:27推講古

kenphin0729 07/29 11:45推講古好文

jakkx 07/29 11:56推一個。對比下來搞不好這一次也是早知道

lc85301 07/29 22:07形式化驗證本來就沒那麼神

lc85301 07/29 22:08有驗的東西是可以保證沒錯,但沒驗的還是

lc85301 07/29 22:08不知道有沒有問題

SilverFox 07/30 01:17

donkilu 07/30 02:49拿當年來比很正常吧 Intel的嘴臉始終如一

donkilu 07/30 02:51當年訊息流通沒有現在發達都能全面炎上

donkilu 07/30 02:52現在一堆自媒體都虎視眈眈要打Intel臉