請更新您的瀏覽器

您使用的瀏覽器版本較舊,已不再受支援。建議您更新瀏覽器版本,以獲得最佳使用體驗。

科技

蘋果拋棄 Intel 的理由真的跟 x86 處理器品質不佳有關係?

科技新報

更新於 2020年07月08日10:49 • 發布於 2020年07月08日10:00

自從蘋果在今年 WWDC 宣示將用自研「Apple Silicon」收復英特爾(Intel)處理器占據十幾年的「失土」,各方英雄好漢就紛紛跳出來「戳一下」湊個熱鬧。前陣子看了一篇國外報導,內容的重點是「某位前任英特爾總工程師指出,英特爾 Skylake 世代處理器的糟糕品質,讓蘋果成為提交最多問題回報的客戶,促使蘋果最終放棄英特爾」。

聽說筆者的當下表情,就像劫後餘生的倖存者。

先講一下處理器臭蟲這件事,天底下沒有完美無缺的產品,處理器亦不可免俗。1994 年 10 月被發現的 Pentium 處理器浮點除法(FDIV)事件,提醒了世人,像處理器這種「科技結晶」,也會有產品設計問題。時至今日,高效能處理器的電晶體數目,個個數以 10 億為基本單位,當然也造就了動輒上百條起跳的「產品勘誤表」,有些可透過微碼(Microcode)修正,有些則不行。

不過當電腦最基本語言的「指令集架構」(Instruction Set Architecture,ISA)本身先天不足、後天失調、又欠缺業界標準的時候(英特爾和眾多競爭者打了很久的指令集擴充戰爭),這問題就會再度放大

英特爾的 Pentium Rro 總工程師之一 Robert Colwell 曾在回憶錄提到一個重點:開發 x86 指令集相容處理器,最艱鉅的挑戰在於「確保相容目前所有的應用程式」,特別當某些應用程式還「利用」長年累積的臭蟲和沒有被遮蔽掉的未定義運算碼(Opcode)。所謂的「資產」與「包袱」是同一枚硬幣的兩面,大概就是這麼回事。

像老一輩電腦用戶,應該或多或少記得微軟 HMA(高記憶體位址區域)和 HIMEM.SYS 驅動程式,這就源自於 1986 年 Quartedeck 與微軟的程式設計師,發現只要啟動 A20 定址線,就會多出 1MB 定址(20 位元)以上的 64kB 空間,在那個記憶體容量寸土寸金的年代,自然就被「充分利用」。BIOS 選單的「A20 Gate」選項(IBM 利用 8042 鍵盤控制器某訊號腳位為控制 A20 的開關),則是確保相容 8086 應用程式,而日後所有 x86 指令集的作業系統也須保留這部分程式碼。

「泡泡龍」(Bubble Bobble)這個知名遊戲,曾在 486 處理器會因計時迴圈溢出(Timing Loop Overflow)而無法執行,卻在 Pentium 4 起死回生,至今已鮮為人知。

但回過頭來,x86 指令集容易製造處理器的臭蟲,或著不同廠商之間的 x86 指令集相容處理器彼此之間並不 100% 相容,又跟蘋果有什麼關係?

首先,Mac 的軟體生態系統相對封閉,蘋果也是在「x86 處理器市場版圖大勢底定」後才從 IBM PowerPC 轉向英特爾 x86,照理說也不該有造成麻煩的昔日包袱。

其次,蘋果也沒採用英特爾以外的 x86 指令集相容處理器,更不可能發生不同廠商的相容性問題,除非英特爾搞到自家不同世代產品之間會出現這種低級錯誤。

那假如這位前任英特爾總工程師講的問題,不是指令集層面的相容性,而是外部硬體功能呢?扣除蘋果的 7% 個人電腦市占率,剩下 93% 應該早就統統跳起來了吧。但過去也不乏「20 年前的 AMD 難以攻入品牌大廠供應鏈,就起因於產品品質不佳」的傳聞,總之都是往事了。

所以筆者對這則報導的真實性抱著「看過就算了」態度,反倒是這些年來,微軟究竟默默扛了多少黑鍋,還真的讓人滿好奇的。

(首圖來源:蘋果)

0 0
reaction icon 0
reaction icon 0
reaction icon 0
reaction icon 0
reaction icon 0
reaction icon 0