從Intel和ARM雙雄爭霸讀懂芯片的前世今生
這幾天中興事件持續發(fā)酵以來(lái),各種議論紛紛擾擾。
本文引用地址:http://dyxdggzs.com/article/201804/378885.htm上周,新智元推送了《中國芯“逃兵”:缺芯是因為缺錢(qián);中國芯“老炮”:芯片救國靠BAT不是開(kāi)玩笑》一文,引起了無(wú)數從業(yè)者熱議。
有十余年芯片從業(yè)經(jīng)驗的水木網(wǎng)友torvaldsing告訴新智元,這幾天對他觸動(dòng)最大的,還是碧樹(shù)西風(fēng)寫(xiě)的這句話(huà):
一碗牛肉面,真的要用牛肉,真的要用面,真的要燉很久,這么簡(jiǎn)單的道理,偌大一個(gè)國家,這么多精英,過(guò)去這么多年了,咋就不能懂呢?
因此,torvaldsing投書(shū)新智元,嘗試談一談x86生態(tài)系統和ARM生態(tài)系統的艱難發(fā)展歷程和殘酷的市場(chǎng)競爭,向大家介紹一下做CPU的各種困難,以及眼下能看到的一線(xiàn)希望。
以下是torvaldsing的雄文:
我盡量寫(xiě)得輕松一些,因為其實(shí)這個(gè)話(huà)題很有趣,仔細探究起來(lái),很多看似爆炸性的新聞,其實(shí)草蛇灰線(xiàn)伏脈千里,在很早之前就發(fā)端了,這其中的故事,真的像演義小說(shuō)一樣好玩。
本文會(huì )羅列很多的往事和參考資料,保證有誠意。一些地方?jīng)]忍住加上了一些三腳貓的分析,歡迎拍磚打臉。
x86生態(tài)系統
如今Intel在服務(wù)器市場(chǎng)占有率近乎100%,在桌面市場(chǎng)也大于80%,再加上Intel一貫重視宣傳,在普通大眾的心目中,Intel就是芯片的代稱(chēng),甚至是高科技的代稱(chēng)。但Intel并非生而如此,它的牛X千真萬(wàn)確是熬出來(lái)的,是在列強環(huán)伺的競爭環(huán)境中殺出來(lái)的。
稱(chēng)王
七十年代,在搭上IBM PC這趟快車(chē)之前,Intel的8位處理器已經(jīng)很成功,但也有很多競爭者,Zilog是其中翹楚,它研發(fā)的Z80系列產(chǎn)品和Intel的8080兼容,性?xún)r(jià)比高。一直到90年代,中國很多大學(xué)的微機實(shí)驗課,還在用Zilog的板子。當時(shí)還有一款處理器風(fēng)頭不遜于8080系列,即MOS公司的6502。后來(lái)MOS把6502的ISA(指令集架構)授權給了眾多廠(chǎng)商,流傳甚廣。70年代蘋(píng)果創(chuàng )立之初的Apple-I和Apple-II,80年代任天堂的紅白機,90年代初的小霸王學(xué)習機,90年代末的文曲星,都使用了6502系列的CPU。
IBM PC給了Intel和微軟大發(fā)展的機會(huì )。但它倆必須面對競爭。IBM PC是IBM主導下的一個(gè)開(kāi)放標準,各個(gè)零部件都是可以替換的。所以才有了“兼容機”的概念,和延續至今的裝機市場(chǎng)。當時(shí)IBM要求Intel必須把x86指令集授權給其它廠(chǎng)商,避免CPU供應商一家獨大。(詳細的x86兼容處理器生產(chǎn)廠(chǎng)家列表見(jiàn)https://en.wikipedia.org/wiki/List_of_x86_manufacturers)IBM自己也有生成x86兼容CPU的權力。同時(shí),為了限制微軟的MS-DOS,IBM自己也做DOS操作系統,名為PC-DOS。
在IBM PC陣營(yíng)內部,Intel面對其它CPU供應商的競爭,在陣營(yíng)外部,還要和蘋(píng)果的Macintosh電腦競爭。當時(shí)蘋(píng)果已經(jīng)換用Motorola 68000系列CPU,性能強勁,圖形界面誘人。當時(shí)用Mac的人,逼格要高于用IBM PC的人。
Intel頂著(zhù)陣營(yíng)內外的競爭壓力,苦心孤詣地發(fā)展壯大。這時(shí)候潛在的威脅在慢慢醞釀。從1981年的RISC-I開(kāi)始,精簡(jiǎn)指令集(RISC)逐步流行起來(lái),誕生了一系列RISC風(fēng)格的CPU:1985年MIPS公司推出第一款商用的RISC芯片,HP公司在1986年推出PA-RISC,SUN公司在1987年推出SPARC,Motorola在1988年推出MC88000。當時(shí)大家普遍認為RISC優(yōu)于以x86為代表的CISC風(fēng)格CPU,就連Intel和AMD也害怕在RISC潮流中落伍,AMD在1987年推出了AM29000,Intel在1988年推出了i860/i960。
開(kāi)始時(shí)RISC似乎并沒(méi)有威脅到桌面市場(chǎng),MIPS、PA-RISC、SPARC全是用來(lái)做服務(wù)器和工作站的。被蘋(píng)果流放的喬布斯用MC88000系列CPU做NeXT桌面電腦,鎩羽而歸。1986年,英國的Acorn公司推出了一款名為ARM的RISC處理器,次年,它還配了個(gè)操作系統叫RISC OS,強攻桌面市場(chǎng),可惜最終只在英國掀起來(lái)了一些波瀾。
1991年,RISC陣營(yíng)實(shí)實(shí)在在地殺入桌面市場(chǎng)。這一年,IBM看到在PC陣營(yíng)里,Intel和微軟這兩個(gè)小弟坐大,慢慢不受自己的控制,索性拉攏Apple和在RISC市場(chǎng)不得志的Motorola,推出了PowerPC架構,由IBM和Motorola生產(chǎn)芯片,Apple做操作系統和整機,推出全新的Power Macintosh電腦。這三家組成了AIM(Apple-IBM-Motorola)聯(lián)盟,氣勢洶洶地向Wintel聯(lián)盟發(fā)起攻擊。
結果是Wintel贏(yíng)了,個(gè)中原因眾說(shuō)紛紜。有人說(shuō)Wintel保持對已有軟件的向下兼容,而Apple頻繁更換底層的CPU,導致的不兼容氣走了用戶(hù),然后由此強調軟件生態(tài)的重要。我則以為,歷史的發(fā)展有一定的偶然性,如果當時(shí)Wintel不是比爾蓋茨和格魯夫在掌舵,而Apple是喬布斯在掌舵,可能結局完全不同。2005年,喬布斯掌舵下的蘋(píng)果,把Mac里面的CPU由PowerPC換成Intel的芯片,就完成得干脆利落,沒(méi)怎么受到軟件生態(tài)的牽絆。
總之,在80年代,大家就已經(jīng)深深懂得CPU的ISA是軟件生態(tài)系統的根基,不愿讓這個(gè)“生態(tài)之根”被別人控制。整機和系統的制造商,通過(guò)強制CPU廠(chǎng)商給其它廠(chǎng)商授權自己的ISA,來(lái)保證有第二家甚至更多的供應商。如果不慎“生態(tài)之根”被別人控制了,例如IBM被Wintel篡了權,甚至不惜另起爐灶來(lái)競爭。
同樣是把自己的指令集授權給其它廠(chǎng)商,Intel把幾乎所有的其它供應商都擠死了,只省下AMD茍延殘喘;MOS則銷(xiāo)聲匿跡了,完全靠其它生產(chǎn)商把6502系列延續到了二十一世紀。造成這一差異的原因縱有千萬(wàn)條,我想“打鐵還需自身硬”是最根本的。
霸業(yè)
在桌面市場(chǎng)上,Windows 95和Windows 98這兩款操作系統,讓W(xué)intel聯(lián)盟登上了霸業(yè)的頂端。從1995年到2003年,Intel看起來(lái)簡(jiǎn)直是不可戰勝的。
與此同時(shí),Intel還把幾乎所有的RISC架構的CPU都干趴下了,占領(lǐng)了服務(wù)器市場(chǎng)。原因大概有這么幾點(diǎn)。
第一,從技術(shù)角度講,RISC是一種設計CPU的理念,而不是具體的某一種ISA。像x86這樣的復雜指令集,其實(shí)在實(shí)現過(guò)程中,也能借重RISC的理念。1989年的80486,已經(jīng)隱隱地可以看到RISC風(fēng)格的流水線(xiàn),1995年的Pentium Pro,其核心已經(jīng)是一個(gè)亂序執行的RISC了,只不過(guò)多了一個(gè)復雜的譯碼邏輯,把x86指令拆分成RISC風(fēng)格的微操作。因此從技術(shù)角度講,RISC指令集未必比x86有優(yōu)勢。
第二,RISC成也UNIX,敗也UNIX。UNIX和C語(yǔ)言樹(shù)立了很好的軟件開(kāi)發(fā)傳統,確保同一套代碼可以很方便地在不同CPU之間移植。80年代,一大堆RISC架構的CPU,都可以很快配上自己的UNIX,很快把已有的C語(yǔ)言編寫(xiě)的應用跑在CPU上,然后就可以賣(mài)了。SUN公司的SPARC配有Solaris,HP公司的PA-RISC配有HP-UX,IBM公司的PowerPC配有AIX。
這些林林總總的UNIX變體,反過(guò)來(lái)又進(jìn)一步促使UNIX生態(tài)系統中軟件開(kāi)發(fā)人員重視代碼的可移植性,大家都很小心地圍繞POSIX標準來(lái)編程,避免過(guò)分依賴(lài)于某個(gè)操作系統獨有的功能。這樣,一旦Intel芯片攜Linux(一種開(kāi)源的UNIX變體)來(lái)和RISC架構的工作站競爭,軟件應用就紛紛以很小的移植難度,離開(kāi)了昂貴的專(zhuān)有UNIX工作站。
第三,當時(shí)PC市場(chǎng)比服務(wù)器市場(chǎng)大得多,Intel在PC市場(chǎng)的盈利幫助它研發(fā)更好的服務(wù)器芯片,巨大的出貨量降低了芯片的制造成本。研發(fā)優(yōu)勢和成本優(yōu)勢,奠定了Intel最終勝利的基礎。
這段時(shí)間,Intel還幾次面臨挑戰,每次都成功保衛了自己對于生態(tài)系統的掌控權。
第一個(gè)挑戰,來(lái)自Internet瀏覽器。Netscape Navigator誕生后,對微軟和Intel都是挑戰。雖然當時(shí)的動(dòng)態(tài)網(wǎng)頁(yè)還非常初級,但是已經(jīng)有人喊出“Web is the computer”的概念。等到Java Applet出現之后,大家更是覺(jué)得可以在網(wǎng)頁(yè)上實(shí)現桌面應用的效果,未來(lái)只需一個(gè)瀏覽器,就能取代桌面。Netscape的Marc Andreessen在1995年,就著(zhù)手把Netscape瀏覽器打造成一個(gè)Internet OS。以那個(gè)時(shí)代的軟硬件水平,毫無(wú)疑問(wèn)地,這些嘗試失敗了。
用一個(gè)高層次的軟件API,兜住所有的上層應用,然后讓底層的硬件,都來(lái)支持這個(gè)API——這個(gè)主意不單單在技術(shù)上看起來(lái)很炫,從商業(yè)上,這是上層應用廠(chǎng)商消解底層平臺廠(chǎng)商生態(tài)霸權的終極武器。因此,在那之后的二十年里,商業(yè)上的嘗試一直在持續,包括:
1. 騰訊開(kāi)發(fā)的WebQQ和Q+,在網(wǎng)頁(yè)里面提供一個(gè)類(lèi)似Windows桌面的應用場(chǎng)景,后來(lái)失敗了,回退到功能單一的SmartQQ。個(gè)中原因,我個(gè)人認為還是那個(gè)時(shí)代的PC性能不夠。
2. 騰訊開(kāi)發(fā)的微信小程序,在微信里面通過(guò)HTML5和Javascript實(shí)現手機App的功能,可以橫跨iOS和Android。
3. 谷歌推出ChromeOS和ChromeBook筆記本,里面跑的應用,全都是基于HTML5和Javascript的。
我個(gè)人認為,微信小程序幾乎一定會(huì )成功,它一旦成功,騰訊必然會(huì )重燃在PC平臺上做Q+的野心。Intel在桌面的霸權,最大的威脅不是AMD,也不是ARM,而很可能是HTML5+Javascript,熟悉“降維打擊”的人,對此不會(huì )感到意外吧。
第二個(gè)挑戰,來(lái)自虛擬機(Virtual Machine)和JIT(Just-in-time)編譯器。先鋒是Java的虛擬機JVM,后來(lái)微軟也推出了DotNet虛擬機,支持C#等語(yǔ)言。虛擬機有一套虛擬的指令集,源代碼先被編譯到這個(gè)虛擬的指令集上,在程序運行時(shí),JIT編譯器再把這套虛擬指令集編譯為CPU的原生指令集。面向虛擬機開(kāi)發(fā)的程序,例如Java Applet,可以在不同的CPU和操作系統平臺上運行。
評論