本篇文章將帶你了解 :
2003 年出版的《計算機結構:計量方法》第三版(也是歷來最厚最重版本)附錄C〈RISC 指令集架構總覽〉(″A Survey of RISC Architectures for Desktop, Server, and Embedded Computers″)將RISC 分成兩個族群。
結果回顧歷史,RISC處理器在個人電腦市場比較有頭有臉者,僅蘋果的Power Mac 系列。今天論桌機和筆電,排除自己做處理器的蘋果和微軟擺明不想認真玩的Windows On ARM(WOA) 產品,幾乎不見RISC 的影子,都是x86 雙雄的天下。
BBC Micro:ARM 進軍個人市場鼻祖
至于為何x86 指令集兼容處理器能統治個人電腦市場,說到底,也是受惠于微軟Windows 操作系統、Office 辦公套裝軟件與龐大生態體系的庇蔭(筆者早年一度堅持IBM OS/2,但撐不到半年還是乖乖投奔Windows 95)。1995 年8 月24 日,從Windows 95 剛上市就熱賣的那刻起(中文版是同年11 月28 日,微軟首次與便利商店通路合作,讓你在7-11 也買得到),就注定x86 處理器在這個領域的地位無可動搖。
其實RISC 處理器搶灘個人電腦,最早可追溯至1981 年12 月1 日,由艾康電腦公司(Acorn Computers)為英國廣播公司(BBC)計算機認知計劃(Computer Literacy Project)設計和生產BBC Micro 家用電腦,今日移動式運算平臺擁有舉足輕重地位的ARM 指令集兼容處理器(早期名稱為Acorn Risc Machine,后來更名為Advanced RISC Machine)最初就是為BBC Micro 及后續型號設計。
▲ ARM 起源:1981 年,英國BBC Micro 家用電腦,然后走上30 年后徹底征服智能手機市場的大道。
曾參與IBM System/38的IBM 前院士Glenn Henry,1994 年創辦日后成為威盛電子(VIA)x86 處理器技術基礎的Centaur,原意半人半馬,來自想打造同時兼容MIPS 與x86 的處理器,以便將MIPS推進個人電腦市場,也因評估技術不可行,才轉專注研發x86 指令集兼容處理器。
▲ 這是x86 挑戰「RISC 諸神」的初期戰績,但能戰到最后的RISC,只有看起來最弱的IBM。
但1994 年11 月22 日,也是AIM 聯盟(蘋果、IBM、Motorola)發布第一顆PowerPC 處理器(PowerPC 601)隔年,Glenn Henry 老東家IBM 發布了神奇的PowerPC 615,號稱同時兼容三種指令集架構:64 位元PowerPC、32 位元PowerPC 與32 位元80x86。這顆處理器采用當時最先進的0.35μm 制程(英特爾晚了近一年),晶粒面積高達330 mm2。
值得一提,蘋果1994年3 月14 日發布第一臺Power Mac 6100/60,到1995 年1 月,蘋果就累積銷售高達100 萬臺的Power Mac 系統。
PowrPC / x86 并存:傳說的PowerPC 615
更重要的是,IBM采取「硬件」手段而非軟件模擬,PowerPC 615 里塞了一個和英特爾初代Pentium 同等級的x86 核心(這也是芯片如此巨大的主因,也有人稱為「透過硬件實作的模擬器」),不僅腳位與Pentium 兼容(應為Socket 5),更號稱執行x86 指令集效能,也不輸給首款超標量流水線x86 處理器的Pentium。這意味IBM 曾經「從頭到尾」自行研發高效能x86 處理器微架構。
這看似天方夜譚的不可能任務,還不只是「簡報王」,IBM 公開PowerPC 615 時早就做好實際可用的工程樣品。IBM 并未公布何時啟動專案,但極可能早在1991 年結成AIM 聯盟時就開工了。非??上У氖?,IBM 從未透露PowerPC 615 的技術細節(內容想必極度刺激),只希望假以時日,也有像蘋果那如夢似幻「水瓶座」四核心處理器計劃,以非正式管道公諸于世的那一天。
前面提到PowerPC 615 使用領先英特爾整整一年的最先進制程技術,從下圖即可感受到這是多大的芯片,推測晶體管總量超過1,000 萬。也可多少看出指令集架構復雜度對晶體管數量和晶粒面積的影響,像PowerPC 601 就比初代Pentium 有更高時鐘頻率、1.5 倍指令執行能力與兩倍容量L1 快取存儲器。英特爾就承認,相較同等級RISC 處理器,Pentium 約多30%晶體管,「貢獻」維持x86 指令集的兼容性。
總之,PowerPC 615 使「RISC 處理器可原生執行Windows 95」技術可行性,成了伸手可及的目標,那時筆者是高中時代,初次聽聞PowerPC 615 之時,一想到「有機會組一臺可跑Windows 95 和Mac OS 的電腦」就興奮不已。
但問題來了,這件歷史性的重大戰略契機,卻從未成為世人眼前的現實,原因很簡單:因微軟不愿支持這顆神奇的混血妖怪。到頭來,蘋果終究2006 年達成筆者的愿望,卻以終結PowerPC──甚至整個RISC──在個人電腦市場的發展為代價。
此外,據傳推動PowerPC普及的AIM 聯盟,其他兩個成員(蘋果、Motorola) 也不認同IBM 試圖打造「與主流x86 處理器腳位兼容PowerPC」的想法。Motorola 態度較曖昧,但蘋果就擺明「打造只有蘋果園的世外桃源,不想與Wintel 舊世界打交道」的姿態。
當然,技術角度看來,即使微軟出手相助,也有充分理由相信PowerPC 615 的價格和耗電勢必高不可攀,也很可能發生與英特爾的產品兼容性疑慮,甚至根據「后見之明」,注定衍生出與一連串系統總線專利與指令集授權的法律糾紛(英特爾的競爭對手都是受害者)。PowerPC 615 里那IBM 自研x86核心的實際表現,也很可能是個大問號。
既然沒Windows可跑,蘋果也擺明不會開放Mac OS 給PowerPC 615,可用的操作系統只剩下傳說的Linux 前身MINIX(出自大名鼎鼎的Andrew Tanenbaum)和特殊版OS/2,因此IBM 很快中止PowerPC 615,留下無數揣測和無聲嘆息,世人無緣親眼見識IBM 親手打造的x86 處理器核心究竟有多厲害。
歷史沒有如果,但若蘋果和微軟都愿意支持PowerPC 615,計算機工業史會不會大幅改寫、x86 在個人電腦和云端數據中心服務器的霸權是否牢不可破,就只能留待各位慢慢思考了。
曾有資格取代x86 的Alpha 處理器錯在哪里?
但IBM PowerPC 615 并非唯一RISC 進軍個人電腦市場的嘗試,1990 年代末期還真的出現過「背后有微軟大力支持,產品和技術也都有,更可和AMD 策略結盟,但被自己的愚蠢決策活活搞死」經典慘案:傳奇性的效能王者DEC(Digital Equipment Corporation)Alpha處理器與FX!32 x86 模擬器。
DEC 在1996 年跟微軟聯合發布FX!32 模擬器(二進制轉譯),可讓執行原生版Windows NT 操作系統的Alpha 處理器平臺跑32 位元x86的Windows 應用程序時,號稱「效能可達x86 原生環境40%~50%(最佳化后達70%),然后因同時期Alpha 處理器享有對x86 的壓倒性高時鐘頻率,足以抵消轉譯造成的損耗而有余」。
大學時代的筆者曾在某屆COMPUTEX(臺北國際電腦展)DEC 攤位一親芳澤,唯一印象是「速度確實不快,但還可接受,尚有改善空間,前景一片光明」。
不過DEC 與后來買家康柏(Compaq),都不重視「借進入個人電腦市場做大基本盤,低價普及化,建立可長可久的生態系統」這件事。DEC 是到1997 年3 月17 日,才與三菱聯手推出規格極度無誠意的Alpha 21164PC(PCA56),對上稍晚登場的英特爾Pentium II(1997 年5 月7 日),除了高時鐘頻率和低單價(都被昂貴的系統芯片組抵銷還有余,一加上去成本直接倍增),完全缺乏競爭優勢,態度也不甚積極。
▲ 500MHz的Alpha 21164 處理器在原生Windows NT 操作系統透過FX!32 模擬器執行32 位元Windows應用程序,可借壓倒性時鐘頻率優勢取得與200MHz 的Pentium Pro 互有長短的表現,至于「原始能力」差距就更明顯了。這讓Alpha 成為計算機工業史上最有資格完全取代80x86 的RISC 處理器家族。
1996 年加入AMD、2008 年夏天升任CEO的Dirk Meyer,曾經歷Alpha 21064 與21264 研發工作,領導譽為「x86 世界的Alpha 21264」Athlon(K7),也確立從DEC 取得EV6(21264)系統總線授權。換言之,假如DEC 真的有心,早該直接找上AMD,共同研制有價格競爭力、功能完善的共通系統平臺架構。這一直是Alpha「PC」的最大弱點。
下表數據也隱約透露指令集架構的影響,一切盡在不言中。說Alpha 是計算機工業史上最簡潔優美的指令集架構,沒有之一,絕非過譽。
事實上,AMD 還「真的」開發出可同時用在Athlon 和Alpha 21264 的系統芯片組AMD-751(Irongate)與AMD-761(Irongate-2),也提供DEC 自家21272 / 21274 芯片組沒有的AGP,但也僅代工生產Alpha 21164PC(PCA57)的三星采用。
▲ AMD在K7 世代采用來自DEC 授權的EV6 總線,這使得K7 和Alpha 21264 共用系統平臺架構成為伸手可及的可能性,況且AMD 也的確開發出兩者共通的系統芯片組,但DEC 并沒有掌握這可推廣Alpha 的大好機會。
康柏1999 年8 月23 日以「只有5% 的Alpha 系統出貨時安裝Windows NT」為由,宣布退出與微軟聯手發展Windows NT 后繼版,也停在Alpha 系統內建Windows NT。
一周后,繼1997年宣布放棄MIPS 和PowerPC,微軟迅速聲明Windows 2000 不會有Alpha 版(含讓Windows NT 核心進入個人電腦的Windows XP),徹底斬斷Alpha 普及化的最后一絲希望,白白浪費天時(FX!32)、地利(微軟)、人和(AMD)兼具的大好機會。相對「非戰之罪」的IBM PowerPC 615,DEC 的Alpha 就堪稱「自作孽不可活」了。
▲ FX!32 二進位轉譯器是Alpha 取代x86 的王牌,但DEC并沒有好好善用,到后來甚至連微軟Windows NT 兼容性都被自己舍棄了。
這里也不得不稍微談談1990 年代末期的時代背景:全世界都傻傻相信,英特爾與惠普(HP)攜手的IA-64 指令集和「64 位元真命天子」Itanium 處理器,將以秋風掃落葉之勢一統RISC 高階服務器江山,并逐步向下滲透x86 既有地盤,政治正確,毫無懷疑空間。
但事后諸葛,延續「比英特爾擁有過的一切(包括Itanium)都好」Alpha 累積的成果才是看似最正確的選擇,也不必浪費時間弄什么IA-32 EL(Execution Layer)。俗語說得好,千金難買早知道。但假使英特爾可預知悲慘的結局,搞不好就像今天這樣死心塌地專注x86(最起碼服務器和個人電腦的確如此),不對RISC 做任何「非分之想」。應該吧?
▲ 如果時間可以重來,英特爾大概會直接沿用Alpha 累積的成果,也不必大費周章重新做輪子,弄什么IA-32 EL 只為了解決1996 年DEC 就搞定的問題,更何況還晚了整整十年。
行文至此,回到原點,最能決定指令集架構與兼容處理器站穩個人電腦市場的主宰者,還是手握Windows 操作系統的微軟。ARM 跟RISC-V 能否踏入甚至站穩這塊被x86 雙雄主導的戰場,還是得靜觀微軟的動向。
結論就套句1986年推動蘋果「水瓶座」計劃的法國巴黎人Jean-Louis Gassée 個人專欄的精辟觀點:說穿了,x86 指令集的「霸權」,建立在微軟Windows 的兼容性之上,除此之外,x86 指令集并沒有英特爾(和AMD)想的那么有價值。