從Intel和ARM爭(zhēng)霸戰(zhàn)阔墩,看看做芯片有多難
這幾天中興事件持續(xù)發(fā)酵以來(lái)顽染,各種議論紛紛擾擾仔戈。但我觸動(dòng)最大的管削,還是碧樹(shù)西風(fēng)寫(xiě)的這句話:“
一碗牛肉面充易,真的要用牛肉,真的要用面英妓,真的要燉很久,這么簡(jiǎn)單的道理泡嘴,偌大一個(gè)國(guó)家丑瞧,這么多精英柑土,過(guò)去這么多年了,咋就不能懂呢绊汹?”
做芯片很難稽屏,做核心芯片更難,做需要生態(tài)系統(tǒng)的CPU芯片西乖,比大家想象得都要難狐榔。本文嘗試談一談x86生態(tài)系統(tǒng)和ARM生態(tài)系統(tǒng)的艱難發(fā)展歷程和殘酷的市場(chǎng)競(jìng)爭(zhēng),向大家介紹一下做CPU的各種困難获雕,以及眼下能看到的一線希望薄腻。
我盡量寫(xiě)得輕松一些,因?yàn)槠鋵?shí)這個(gè)話題很有趣届案,仔細(xì)探究起來(lái)庵楷,很多看似爆炸性的新聞,其實(shí)草蛇灰線伏脈千里楣颠,在很早之前就發(fā)端了尽纽,這其中的故事,真的像演義小說(shuō)一樣好玩童漩。
本文會(huì)羅列很多的往事和參考資料弄贿,保證有誠(chéng)意。一些地方?jīng)]忍住加上了一些三腳貓的分析矫膨,歡迎拍磚打臉差凹。
x86生態(tài)系統(tǒng)
如今Intel在服務(wù)器市場(chǎng)占有率近乎100%,在桌面市場(chǎng)也大于80%豆拨,再加上Intel一貫重視宣傳直奋,在普通大眾的心目中,Intel就是芯片的代稱施禾,甚至是高科技的代稱脚线。但I(xiàn)ntel并非生而如此,它的牛X千真萬(wàn)確是熬出來(lái)的弥搞,是在列強(qiáng)環(huán)伺的競(jìng)爭(zhēng)環(huán)境中殺出來(lái)的邮绿。
稱王
七十年代,在搭上IBM PC這趟快車(chē)之前攀例,Intel的8位處理器已經(jīng)很成功船逮,但也有很多競(jìng)爭(zhēng)者,Zilog是其中翹楚粤铭,它研發(fā)的Z80系列產(chǎn)品和Intel的8080兼容挖胃,性價(jià)比高。一直到90年代,中國(guó)很多大學(xué)的微機(jī)實(shí)驗(yàn)課酱鸭,還在用Zilog的板子吗垮。當(dāng)時(shí)還有一款處理器風(fēng)頭不遜于8080系列,即MOS公司的6502凹髓。后來(lái)MOS把6502的ISA(指令集架構(gòu))授權(quán)給了眾多廠商烁登,流傳甚廣。70年代蘋(píng)果創(chuàng)立之初的Apple-I和Apple-II蔚舀,80年代任天堂的紅白機(jī)饵沧,90年代初的小霸王學(xué)習(xí)機(jī),90年代末的文曲星赌躺,都使用了6502系列的CPU[1]狼牺。
IBM PC給了Intel和微軟大發(fā)展的機(jī)會(huì)。但它倆必須面對(duì)競(jìng)爭(zhēng)礼患。IBM PC是IBM主導(dǎo)下的一個(gè)開(kāi)放標(biāo)準(zhǔn)锁右,各個(gè)零部件都是可以替換的。所以才有了“兼容機(jī)”的概念讶泰,和延續(xù)至今的裝機(jī)市場(chǎng)咏瑟。當(dāng)時(shí)IBM要求Intel必須把x86指令集授權(quán)給其它廠商,避免CPU供應(yīng)商一家獨(dú)大痪署。一份詳細(xì)的x86兼容處理器生產(chǎn)廠家列表見(jiàn)https://en.wikipedia.org/wiki/List_of_x86_manufacturers码泞。IBM自己也有生成x86兼容CPU的權(quán)力。同時(shí)狼犯,為了限制微軟的MS-DOS余寥,IBM自己也做DOS操作系統(tǒng),名為PC-DOS悯森。
在IBM PC陣營(yíng)內(nèi)部宋舷,Intel面對(duì)其它CPU供應(yīng)商的競(jìng)爭(zhēng),在陣營(yíng)外部瓢姻,還要和蘋(píng)果的Macintosh電腦競(jìng)爭(zhēng)祝蝠。當(dāng)時(shí)蘋(píng)果已經(jīng)換用Motorola 68000系列CPU,性能強(qiáng)勁幻碱,圖形界面誘人绎狭。當(dāng)時(shí)用Mac的人,逼格要高于用IBM PC的人褥傍。
Intel頂著陣營(yíng)內(nèi)外的競(jìng)爭(zhē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。當(dāng)時(shí)大家普遍認(rèn)為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年,英國(guó)的Acorn公司推出了一款名為ARM的RISC處理器矫废,次年盏缤,它還配了個(gè)操作系統(tǒng)叫RISC OS,強(qiáng)攻桌面市場(chǎng)蓖扑,可惜最終只在英國(guó)掀起來(lái)了一些波瀾[2][3]唉铜。
1991年,RISC陣營(yíng)實(shí)實(shí)在在地殺入桌面市場(chǎng)律杠。這一年潭流,IBM看到在PC陣營(yíng)里,Intel和微軟這兩個(gè)小弟坐大柜去,慢慢不受自己的控制灰嫉,索性拉攏Apple和在RISC市場(chǎng)不得志的Motorola,推出了PowerPC架構(gòu)嗓奢,由IBM和Motorola生產(chǎn)芯片讼撒,Apple做操作系統(tǒng)和整機(jī),推出全新的Power Macintosh電腦股耽。這三家組成了AIM(Apple-IBM-Motorola)聯(lián)盟椿肩,氣勢(shì)洶洶地向Wintel聯(lián)盟發(fā)起攻擊。
結(jié)果是Wintel贏了豺谈,個(gè)中原因眾說(shuō)紛紜郑象。有人說(shuō)Wintel保持對(duì)已有軟件的向下兼容,而Apple頻繁更換底層的CPU茬末,導(dǎo)致的不兼容氣走了用戶厂榛,然后由此強(qiáng)調(diào)軟件生態(tài)的重要盖矫。我則以為,歷史的發(fā)展有一定的偶然性击奶,如果當(dāng)時(shí)Wintel不是比爾蓋茨和格魯夫在掌舵辈双,而Apple是喬布斯在掌舵,可能結(jié)局完全不同柜砾。2005年湃望,喬布斯掌舵下的蘋(píng)果,把Mac里面的CPU由PowerPC換成Intel的芯片痰驱,就完成得干脆利落证芭,沒(méi)怎么受到軟件生態(tài)的牽絆[4]。
總之担映,在80年代废士,大家就已經(jīng)深深懂得CPU的ISA是軟件生態(tài)系統(tǒng)的根基,不愿讓這個(gè)“生態(tài)之根”被別人控制蝇完。整機(jī)和系統(tǒng)的制造商官硝,通過(guò)強(qiáng)制CPU廠商給其它廠商授權(quán)自己的ISA,來(lái)保證有第二家甚至更多的供應(yīng)商短蜕。如果不慎“生態(tài)之根”被別人控制了氢架,例如IBM被Wintel篡了權(quán),甚至不惜另起爐灶來(lái)競(jìng)爭(zhēng)朋魔。
同樣是把自己的指令集授權(quán)給其它廠商达箍,Intel把幾乎所有的其它供應(yīng)商都擠死了,只省下AMD茍延殘喘铺厨;MOS則銷(xiāo)聲匿跡了缎玫,完全靠其它生產(chǎn)商把6502系列延續(xù)到了二十一世紀(jì)。造成這一差異的原因縱有千萬(wàn)條解滓,我想“打鐵還需自身硬”是最根本的赃磨。
霸業(yè)
在桌面市場(chǎng)上,Windows 95和Windows 98這兩款操作系統(tǒng)洼裤,讓W(xué)intel聯(lián)盟登上了霸業(yè)的頂端邻辉。從1995年到2003年,Intel看起來(lái)簡(jiǎn)直是不可戰(zhàn)勝的腮鞍。
與此同時(shí)值骇,Intel還把幾乎所有的RISC架構(gòu)的CPU都干趴下了,占領(lǐng)了服務(wù)器市場(chǎng)移国。原因大概有這么幾點(diǎn)吱瘩。
第一,從技術(shù)角度講迹缀,RISC是一種設(shè)計(jì)CPU的理念使碾,而不是具體的某一種ISA蜜徽。像x86這樣的復(fù)雜指令集,其實(shí)在實(shí)現(xiàn)過(guò)程中票摇,也能借重RISC的理念拘鞋。1989年的80486,已經(jīng)隱隱地可以看到RISC風(fēng)格的流水線矢门,1995年的Pentium Pro盆色,其核心已經(jīng)是一個(gè)亂序執(zhí)行的RISC了,只不過(guò)多了一個(gè)復(fù)雜的譯碼邏輯祟剔,把x86指令拆分成RISC風(fēng)格的微操作隔躲。因此從技術(shù)角度講,RISC指令集未必比x86有優(yōu)勢(shì)峡扩。
第二,RISC成也UNIX障本,敗也UNIX教届。UNIX和C語(yǔ)言樹(shù)立了很好的軟件開(kāi)發(fā)傳統(tǒng),確保同一套代碼可以很方便地在不同CPU之間移植驾霜。80年代案训,一大堆RISC架構(gòu)的CPU,都可以很快配上自己的UNIX粪糙,很快把已有的C語(yǔ)言編寫(xiě)的應(yīng)用跑在CPU上强霎,然后就可以賣(mài)了。SUN公司的SPARC配有Solaris蓉冈,HP公司的PA-RISC配有HP-UX城舞,IBM公司的PowerPC配有AIX。這些林林總總的UNIX變體寞酿,反過(guò)來(lái)又進(jìn)一步促使UNIX生態(tài)系統(tǒng)中軟件開(kāi)發(fā)人員重視代碼的可移植性家夺,大家都很小心地圍繞POSIX標(biāo)準(zhǔn)來(lái)編程,避免過(guò)分依賴于某個(gè)操作系統(tǒng)獨(dú)有的功能伐弹。這樣拉馋,一旦Intel芯片攜Linux(一種開(kāi)源的UNIX變體)來(lái)和RISC架構(gòu)的工作站競(jìng)爭(zhēng),軟件應(yīng)用就紛紛以很小的移植難度惨好,離開(kāi)了昂貴的專有UNIX工作站煌茴。
第三,當(dāng)時(shí)PC市場(chǎng)比服務(wù)器市場(chǎng)大得多日川,Intel在PC市場(chǎng)的盈利幫助它研發(fā)更好的服務(wù)器芯片蔓腐,巨大的出貨量降低了芯片的制造成本。研發(fā)優(yōu)勢(shì)和成本優(yōu)勢(shì)龄句,奠定了Intel最終勝利的基礎(chǔ)合住。
這段時(shí)間绰精,Intel還幾次面臨挑戰(zhàn),每次都成功保衛(wèi)了自己對(duì)于生態(tài)系統(tǒng)的掌控權(quán)透葛。
第一個(gè)挑戰(zhàn)笨使,來(lái)自Internet瀏覽器。Netscape Navigator誕生后僚害,對(duì)微軟和Intel都是挑戰(zhàn)硫椰。雖然當(dāng)時(shí)的動(dòng)態(tài)網(wǎng)頁(yè)還非常初級(jí),但是已經(jīng)有人喊出“Web is the computer”的概念萨蚕。等到Java Applet出現(xiàn)之后靶草,大家更是覺(jué)得可以在網(wǎng)頁(yè)上實(shí)現(xiàn)桌面應(yīng)用的效果,未來(lái)只需一個(gè)瀏覽器岳遥,就能取代桌面奕翔。Netscape的Marc Andreessen在1995年,就著手把Netscape瀏覽器打造成一個(gè)Internet OS[5]浩蓉。以那個(gè)時(shí)代的軟硬件水平派继,毫無(wú)疑問(wèn)地,這些嘗試失敗了捻艳。
用一個(gè)高層次的軟件API驾窟,兜住所有的上層應(yīng)用,然后讓底層的硬件认轨,都來(lái)支持這個(gè)API——這個(gè)主意不單單在技術(shù)上看起來(lái)很炫绅络,從商業(yè)上,這是上層應(yīng)用廠商消解底層平臺(tái)廠商生態(tài)霸權(quán)的終極武器嘁字。因此恩急,在那之后的二十年里,商業(yè)上的嘗試一直在持續(xù)纪蜒,包括:
- 騰訊開(kāi)發(fā)的WebQQ和Q+假栓,在網(wǎng)頁(yè)里面提供一個(gè)類(lèi)似Windows桌面的應(yīng)用場(chǎng)景,后來(lái)失敗了霍掺,回退到功能單一的SmartQQ匾荆。個(gè)中原因,我個(gè)人認(rèn)為還是那個(gè)時(shí)代的PC性能不夠杆烁。
- 騰訊開(kāi)發(fā)的微信小程序牙丽,在微信里面通過(guò)HTML5和Javascript實(shí)現(xiàn)手機(jī)App的功能,可以橫跨iOS和Android兔魂。
- 谷歌推出ChromeOS和ChromeBook筆記本烤芦,里面跑的應(yīng)用,全都是基于HTML5和Javascript的析校。
我個(gè)人認(rèn)為构罗,微信小程序幾乎一定會(huì)成功铜涉,它一旦成功,騰訊必然會(huì)重燃在PC平臺(tái)上做Q+的野心遂唧。Intel在桌面的霸權(quán)芙代,最大的威脅不是AMD,也不是ARM盖彭,而很可能是HTML5+Javascript纹烹,熟悉“降維打擊”的人,對(duì)此不會(huì)感到意外吧召边。
第二個(gè)挑戰(zhàn)铺呵,來(lái)自虛擬機(jī)(Virtual Machine)和JIT(Just-in-time)編譯器。先鋒是Java的虛擬機(jī)JVM隧熙,后來(lái)微軟也推出了DotNet虛擬機(jī)片挂,支持C#等語(yǔ)言。虛擬機(jī)有一套虛擬的指令集贞盯,源代碼先被編譯到這個(gè)虛擬的指令集上音念,在程序運(yùn)行時(shí),JIT編譯器再把這套虛擬指令集編譯為CPU的原生指令集邻悬。面向虛擬機(jī)開(kāi)發(fā)的程序症昏,例如Java Applet随闽,可以在不同的CPU和操作系統(tǒng)平臺(tái)上運(yùn)行父丰。
如果有某個(gè)虛擬機(jī),它的指令集可以無(wú)縫支持所有的編程語(yǔ)言掘宪,還能保證高效率蛾扇,那么所有CPU的都將被OTT(over-the-top)了,就像短信被微信OTT一樣魏滚《剖祝可惜還沒(méi)有一個(gè)虛擬機(jī)可以實(shí)現(xiàn)此目標(biāo)。現(xiàn)在大家熟知的虛擬機(jī)鼠次,都是和語(yǔ)言綁定的更哄,例如JVM只支持Java、scala腥寇、kotlin等;DotNet虛擬機(jī)只支持C#、VB.net等温圆;V8只支持Javascript妇汗、typescript等;HHVM只支持PHP掂摔。同一個(gè)VM上跑的語(yǔ)言相互調(diào)用很容易术羔,跨VM很難互操作赢赊。由于虛擬機(jī)實(shí)在太多了,它們反而成了新的CPU架構(gòu)的攔路虎:80年代只需要搞定C語(yǔ)言編譯器就能賣(mài)Unix工作站级历,如今ARM服務(wù)器要想挑戰(zhàn)Intel释移,必須把所有這些基于VM的編程語(yǔ)言都支持得很好,JIT編譯器的效率都要做得比較高才行鱼喉。
第三個(gè)挑戰(zhàn)秀鞭,來(lái)自Transmeta公司對(duì)x86指令集的Emulation(Emulation這個(gè)詞很難翻譯,索性不翻了)扛禽。簡(jiǎn)單地說(shuō)锋边,Emulation就是把x86指令集看成一個(gè)虛擬機(jī)的指令集,然后用類(lèi)似JIT編譯器的技術(shù)编曼,在非x86的CPU上跑x86的程序豆巨。未經(jīng)許可用別人的ISA做CPU是違法的,但用Emulation的方式實(shí)現(xiàn)ISA則不違法(Intel和Transmeta只打過(guò)專利的官司沒(méi)打過(guò)ISA的官司掐场,Intel還輸了[6])往扔。如今最廣為人知的Emulator是Qemu,上文提到的x86熊户、MIPS萍膛、PowerPC、Sparc嚷堡、MC68000它都可以支持蝗罗。一般而言,Emulation會(huì)導(dǎo)致性能下降一個(gè)甚至若干個(gè)數(shù)量級(jí)蝌戒,根本不足為慮串塑。
1995年,Transmeta公司成立北苟,經(jīng)過(guò)艱苦的秘密研發(fā)桩匪,于2000年推出了Crusoe處理器,用Emulation的方式友鼻,在一款VLIW(超長(zhǎng)指令字)風(fēng)格的CPU上執(zhí)行x86的程序傻昙,這樣就規(guī)避了沒(méi)有x86指令集授權(quán)的問(wèn)題。Transmeta的牛逼在于彩扔,雖然是Emulation妆档,但實(shí)現(xiàn)了接近Intel處理器的性能,同時(shí)功耗低很多借杰。2000年年底Transmeta的IPO大獲成功过吻,其風(fēng)光程度,直到后來(lái)谷歌IPO的時(shí)候才被超過(guò)[7]。
Transmeta最后還是失敗了纤虽,Intel在渠道上打壓它是次要原因乳绕,性能不足是主要原因。雖然VLIW在90年代中后期被廣為推崇逼纸,但事實(shí)證明洋措,它的性能比起亂序執(zhí)行的超標(biāo)量架構(gòu),還是差一截杰刽。另外Transmeta的芯片是在臺(tái)積電制造的菠发,那個(gè)時(shí)候不比現(xiàn)在,臺(tái)積電的工藝水平比起Intel還差很多贺嫂。2000年的時(shí)候滓鸠,PC還遠(yuǎn)沒(méi)有性能過(guò)剩,性能還是比功耗重要第喳。等到2010年糜俗,Intel的Atom處理器慢得一塌糊涂,依然靠著低功耗曲饱,點(diǎn)燃了上網(wǎng)本的大火悠抹。
Transmeta雖然失敗了,Emulation技術(shù)仍然在發(fā)展扩淀。NVidia在2008年購(gòu)買(mǎi)了Transmeta的低功耗技術(shù)的授權(quán)楔敌。2014年,NVidia推出了Tegra K1芯片[8]驻谆,其中的Denver處理器卵凑,利用Emulation技術(shù),在底層的7路超標(biāo)量架構(gòu)上旺韭,實(shí)現(xiàn)了ARM64指令集[9][10]氛谜。值得注意的是掏觉,NVidia擁有ARM64的指令集的授權(quán)区端,它不是用Emulation技術(shù)來(lái)規(guī)避什么,而是用Emulation來(lái)提升性能澳腹,實(shí)現(xiàn)比硬件直接執(zhí)行還要高的性能织盼。根據(jù)評(píng)測(cè)結(jié)果,Denver超過(guò)了當(dāng)時(shí)蘋(píng)果最好的手機(jī)CPU[11]酱塔。近期推出的Denver2處理器的沥邻,性能更是秒殺蘋(píng)果的A9X和華為的麒麟950[12]。
Emulation技術(shù)如果真的發(fā)展到了比直接執(zhí)行還要快羊娃,Intel的麻煩才剛剛開(kāi)始唐全。微軟聯(lián)合高通,推出基于SnapDragon835處理器的筆記本,運(yùn)行Windows 10操作系統(tǒng)[13]邮利,上面可以安裝x86的軟件弥雹。Intel雖然很不爽,但Emulation并不需要指令集授權(quán)延届,所以他只能警告說(shuō)剪勿,在實(shí)現(xiàn)Emulator時(shí),不許侵犯Intel的專利方庭,而這一點(diǎn)厕吉,微軟和高通肯定早已考慮到了[14][15][16]。
挫折
x86生態(tài)系統(tǒng)曾經(jīng)面對(duì)過(guò)一次最嚴(yán)重的械念、近乎滅頂之災(zāi)的挑戰(zhàn)头朱。這次挑戰(zhàn)來(lái)自于誰(shuí)?就來(lái)自于它的締造者Intel龄减。
Intel心不甘情不愿地把自己的x86指令級(jí)授權(quán)給了AMD等一眾供應(yīng)商髓窜,眼睜睜看著他們分享自己的利潤(rùn),很不爽欺殿,于是想在x86之外另起爐灶寄纵,建設(shè)自己獨(dú)享的生態(tài)系統(tǒng)。正巧在90年代初期脖苏,升級(jí)64位計(jì)算成為一個(gè)風(fēng)潮程拭,1991年有MIPS R4000,1992年有DEC Alpha棍潘,1995年有SUN SPARC64恃鞋。1994年開(kāi)始,Intel聯(lián)合HP亦歉,準(zhǔn)備趁32位升級(jí)64位的時(shí)機(jī)恤浪,拋棄原有的x86架構(gòu),新推出一個(gè)EPIC(Explicitly Parallel Instruction Computing)架構(gòu)肴楷,名為IA64(Intel Architecture 64-bit)[17]水由。
x86架構(gòu)兼容老舊應(yīng)用程序的能力是出了名的。8086把8位的8080升級(jí)為16位的時(shí)候赛蔫,80386升級(jí)到32位的時(shí)候砂客,都完全兼容舊有的程序。直到今天呵恢,Intel的處理器依然支持虛擬8086模式鞠值,在此模式下,可以運(yùn)行30多年前的8086程序渗钉。升級(jí)到64bit的時(shí)候彤恶,Intel居然要放棄所有之前的8位、16位、32位應(yīng)用了声离!可想而知當(dāng)時(shí)在業(yè)界會(huì)引起怎樣的軒然大波歇竟。Linux的締造者Linus Torvalds公開(kāi)對(duì)此表示反對(duì)[18]。
IA64進(jìn)展得并不順利抵恋,EPIC本質(zhì)上就是一種VLIW焕议,如前所述,VLIW的性能比亂序超標(biāo)量要差弧关。而且EPIC的編譯器非常難以開(kāi)發(fā)盅安。原定1997年就會(huì)推出產(chǎn)品,但直到1999年才發(fā)布IA64指令集世囊,2001年才推出產(chǎn)品[19]别瞭。另外Intel也不敢完全放棄之前的32位x86應(yīng)用,它給出的解決方案是Emulation株憾,但EPIC不像Transmeta為Emulation做了很多專門(mén)優(yōu)化蝙寨,跑32位x86應(yīng)用的性能很差。
這個(gè)時(shí)候嗤瞎,千年老二AMD站了出來(lái)墙歪,為x86續(xù)命。2000年贝奇,它推出了AMD64指令集虹菲,延續(xù)了x86架構(gòu)兼容老舊應(yīng)用程序的優(yōu)良傳統(tǒng),可以原生執(zhí)行8位掉瞳、16位毕源、32位的老程序。2003年陕习,AMD推出Opteron服務(wù)器CPU和Athlon64桌面CPU[20][21][22]霎褐。
AMD64從技術(shù)上和生態(tài)上都?jí)毫薎A64一頭,Opteron在服務(wù)器市場(chǎng)上為AMD贏得了前所未有的成功该镣。2004年冻璃,Intel推出了代號(hào)為Nocona的至強(qiáng)服務(wù)器CPU,它支持一種稱為EM64T的技術(shù)拌牲,EM64T就是AMD64的馬甲俱饿。江湖有傳言說(shuō)歌粥,Intel曾想提出另外一套不同于AMD64的x86升級(jí)64位的方案塌忽,但微軟為了避免x86生態(tài)的分裂,極力阻止了失驶。2012年土居,Intel推出了最后一代IA64的CPU,關(guān)閉了這個(gè)不賺錢(qián)的產(chǎn)品線。
回顧這段歷史擦耀,有幾點(diǎn)特別令人感慨棉圈。首先,即使是看似無(wú)比強(qiáng)大不可戰(zhàn)勝的Intel眷蜓,不顧生態(tài)系統(tǒng)中其它伙伴的利益分瘾,一意孤行也是會(huì)撞南墻的。其次吁系,幸好由于歷史的原因德召,x86生態(tài)中,AMD和Intel是交叉授權(quán)的關(guān)系汽纤,AMD有權(quán)加入3DNow這種多媒體擴(kuò)展指令上岗,也有權(quán)加入64位指令,如果是像如今ARM的架構(gòu)級(jí)授權(quán)方式蕴坪,被授權(quán)的企業(yè)不能自行加以擴(kuò)展肴掷,那可能還真沒(méi)有辦法阻止Intel了。最后背传,Intel的執(zhí)行力還真是超強(qiáng)呆瞻,掉頭極快,EM64T的CPU只比AMD64的CPU晚出了一年(當(dāng)然不能排除Intel早就有備份方案)径玖。
雖然在IA64上栽了跟頭栋烤,但I(xiàn)ntel靠著自己的技術(shù)實(shí)力,持續(xù)不斷地推出性能和功耗表現(xiàn)更好的產(chǎn)品挺狰,AMD在64位戰(zhàn)役中所取得的優(yōu)勢(shì)明郭,慢慢也被消磨掉了。
歲月如梭丰泊。進(jìn)入移動(dòng)互聯(lián)網(wǎng)和云計(jì)算時(shí)代之后薯定,服務(wù)器的需求量上升。這時(shí)RISC架構(gòu)的服務(wù)器CPU幾乎快被消滅干凈了瞳购,只剩下IBM Power奄奄一息话侄。于是Intel幾乎獨(dú)享了服務(wù)器市場(chǎng)擴(kuò)大所帶來(lái)的紅利。但它卻高興不起來(lái)学赛,因?yàn)橐苿?dòng)市場(chǎng)形成了ARM一家獨(dú)大的局面年堆,移動(dòng)終端CPU這個(gè)市場(chǎng),Intel怎么也擠不進(jìn)去盏浇。
正巧Intel在剛剛火過(guò)一把的上網(wǎng)本市場(chǎng)里設(shè)計(jì)了一種低功耗的x86核心变丧,即Atom。Intel以Atom為武器绢掰,殺入了手機(jī)芯片市場(chǎng)痒蓬。2012年童擎,Intel的老伙計(jì)聯(lián)想,推出了第一款I(lǐng)ntel芯片的手機(jī)K800[23]攻晒。緊接著還有Motorola的XT890顾复。2013年,中興鲁捏、華碩也有產(chǎn)品問(wèn)世芯砸。但三星、小米给梅、華為乙嘀、OPPO、VIVO等出貨量大的廠商破喻,都沒(méi)有采用Intel的芯片虎谢。這些手機(jī)大廠,看看x86生態(tài)中做整機(jī)的聯(lián)想如何艱難度日曹质,估計(jì)心里也是一萬(wàn)個(gè)不樂(lè)意讓Intel到移動(dòng)領(lǐng)域來(lái)繼續(xù)稱王婴噩。
到2014年,Intel芯的手機(jī)還是沒(méi)有打開(kāi)局面羽德,市場(chǎng)唱衰之聲一片[24][25]几莽。但I(xiàn)ntel并不想放棄[26][27]。手機(jī)攻不下宅静,那就攻平板章蚣!大廠攻不下,那就攻白牌姨夹!嫌我的芯片貴纤垂,我就給補(bǔ)貼!又過(guò)了兩年磷账,平板也沒(méi)有攻下來(lái)峭沦。在移動(dòng)市場(chǎng)賠了上百億美金的Intel,黯然離場(chǎng)[28][29]逃糟。
Intel失利的原因眾說(shuō)紛紜吼鱼,我覺(jué)得根本原因還是競(jìng)爭(zhēng)力不足。首先绰咽,這個(gè)時(shí)候的臺(tái)積電已經(jīng)不是Transmeta家Crusoe芯片誕生時(shí)的吳下阿蒙菇肃,它生產(chǎn)的手機(jī)芯片的功耗和性能并不輸給Intel;其次取募,這次Intel并無(wú)生態(tài)系統(tǒng)的優(yōu)勢(shì)琐谤,要靠名為houdini的Emulator來(lái)執(zhí)行ARM指令集的程序[30],性能打了折扣矛辕。試想笑跛,Intel芯的手機(jī)如果性能和待機(jī)時(shí)間都是iPhone的兩倍付魔,誰(shuí)能抵擋得住這種誘惑聊品?
幾乎在進(jìn)攻移動(dòng)市場(chǎng)的同時(shí)飞蹂,Intel也在推出產(chǎn)品試水物聯(lián)網(wǎng)市場(chǎng),只不過(guò)沒(méi)有大舉宣傳翻屈。2013年10月陈哑,Intel推出一款叫做伽利略的Arduino開(kāi)發(fā)板[31],上面的CPU叫做Quark(夸克)伸眶。Quark是比Atom(原子)還小的基本粒子惊窖,這個(gè)名字暗含著輕巧、低功耗的意思厘贼。接著界酒,Intel在2014年的CES大會(huì)和2016年的IDF大會(huì)上,先后推出了升級(jí)的愛(ài)迪生和焦耳開(kāi)發(fā)板嘴秸。
Intel的大名和Arduino聯(lián)系在一起多少有些奇怪毁欣。Arduino是一套可以跑在低端MCU上的C語(yǔ)言函數(shù)庫(kù),是電子創(chuàng)客們的最?lèi)?ài)岳掐。淘寶上Arduino開(kāi)發(fā)板才幾十塊錢(qián)凭疮。焦耳開(kāi)發(fā)板上的處理器是4核心、1.5GHz串述,跑Arduino太浪費(fèi)了执解。和它參數(shù)近似的Raspberry PI 3 Model B+開(kāi)發(fā)板,四核64位ARM Cortex A53跑1.2GHz纲酗,淘寶價(jià)不到200塊衰腌。焦耳開(kāi)發(fā)板要369美元。誰(shuí)會(huì)當(dāng)這個(gè)冤大頭[32]觅赊?
物聯(lián)網(wǎng)市場(chǎng)極度分散桶唐,有無(wú)數(shù)應(yīng)用但規(guī)模都不大,Intel賺大錢(qián)習(xí)慣了茉兰,在這個(gè)微利又需要貼近客戶做服務(wù)的市場(chǎng)里尤泽,百般不適。2017年规脸,Intel悄悄停產(chǎn)了針對(duì)物聯(lián)網(wǎng)市場(chǎng)的開(kāi)發(fā)板[33][34]坯约。
Intel接下來(lái)所可能面對(duì)的挫折,是ARM侵入服務(wù)器和桌面領(lǐng)域莫鸭。這個(gè)話題下文還會(huì)有簡(jiǎn)單分析闹丐。
ARM生態(tài)系統(tǒng)
近幾年ARM風(fēng)光無(wú)限,搶新聞?lì)^條的能力不遜于Intel被因。在很多圈外人看來(lái)卿拴,這家高科技公司好像是在移動(dòng)互聯(lián)網(wǎng)時(shí)代新冒出來(lái)的衫仑,但其實(shí)它的歷史和幾乎和80286一樣古老。而且它自誕生以來(lái)堕花,就以移動(dòng)(portable)設(shè)備為自己首要的目標(biāo)市場(chǎng)文狱。它等待一飛沖天的風(fēng)口,等待了二十年缘挽。
發(fā)端
前文提到瞄崇,ARM是Acorn電腦公司創(chuàng)造的。Acorn電腦公司創(chuàng)立于1978年壕曼,在80年代初苏研,它用6502系列CPU制造的BBC Micro電腦在英國(guó)大獲成功昂利。6502的性能慢慢跟不上時(shí)代了流部,Acorn想基于80286開(kāi)發(fā)新的電腦,但是Intel連樣片都不給——要是Intel大方些扰法,ARM或許根本就不會(huì)誕生轧飞。Acorn一氣之下開(kāi)發(fā)了ARM(Acorn RISC Machine)衅鹿,這是世界上第一款定位中低端(而非服務(wù)器)RISC處理器[35]。1985年踪少,ARM1誕生(但從未被商用)塘安,后來(lái)Acorn在1986年和1990年分別推出了ARM2和ARM3,1987年推出了RISC OS和桌面電腦Archimedes援奢。它在英國(guó)的教育市場(chǎng)獲得了一定的成功兼犯,但1990年之后,很快被Wintel的生態(tài)擊敗了[36]集漾。
1990年前后切黔,研發(fā)掌上電腦成為一股風(fēng)潮。當(dāng)時(shí)有家叫做Active Book的公司具篇,拿ARM2處理器開(kāi)發(fā)一個(gè)叫做Personal Communicator的產(chǎn)品[37]纬霞。可惜產(chǎn)品上市前驱显,Active Book被AT&T收購(gòu)了诗芜,AT&T把ARM2換成了自家的Hobbit處理器。幸好東方不亮西方亮埃疫,當(dāng)時(shí)的蘋(píng)果公司看好ARM伏恐,把自己研發(fā)的Newton平臺(tái)中的處理器,由AT&T的Hobbit栓霜,換成了ARM翠桦。這個(gè)“彼此互換”的故事聽(tīng)起來(lái)讓人頭大,大家只需要記住胳蛮,ARM的第一顆商用處理器ARM2销凑,就曾被嘗試拿來(lái)做手持的電腦丛晌。
ARM的東家是Acorn,和蘋(píng)果在電腦市場(chǎng)上有競(jìng)爭(zhēng)斗幼。蘋(píng)果公司花了6周時(shí)間說(shuō)服Acorn把ARM獨(dú)立出來(lái)運(yùn)營(yíng)澎蛛。1990年11月27日,合資公司ARM正式成立孟岛,蘋(píng)果瓶竭、Acorn和VLSI分別出資150萬(wàn)督勺、150萬(wàn)渠羞、25萬(wàn)英鎊,Acorn把ARM處理器相關(guān)的知識(shí)產(chǎn)權(quán)和12名員工放在了新成立的公司里智哀。此后次询,ARM的縮寫(xiě)被轉(zhuǎn)而解釋為Advanced RISC Machine。為了節(jié)省成本瓷叫,新公司在劍橋附近租了一間谷倉(cāng)作為辦公室屯吊,全力為蘋(píng)果的Newton研發(fā)ARM6處理器(4和5這兩個(gè)編號(hào)被跳過(guò)去了)。
Newton(牛頓)是蘋(píng)果花大力氣研發(fā)的觸屏移動(dòng)技術(shù)平臺(tái)摹菠,Newton OS是不同于Mac OS的操作系統(tǒng)(如同后來(lái)的iOS)盒卸。如果你聽(tīng)過(guò)蘋(píng)果、牛頓和萬(wàn)有引力的故事次氨,應(yīng)該能體會(huì)蘋(píng)果公司對(duì)Newton平臺(tái)有多么高的期望蔽介。Newton平臺(tái)的第一款產(chǎn)品MessagePad于1993年8月上市了,采用32位ARM610處理器煮寡,頻率為20MHz虹蓄,屏幕大小為336×240,重量410克幸撕,采用4節(jié)7號(hào)電池供電薇组,售價(jià)699美元(相當(dāng)于今天的1129美元)∽可惜的是律胀,它銷(xiāo)量很差,上市頭四個(gè)月的銷(xiāo)量不過(guò)5萬(wàn)臺(tái)[38]貌矿。
1998年炭菌,中國(guó)的恒基偉業(yè)公司推出了一款叫做 “商務(wù)通”的產(chǎn)品,像極了Newton Messagepad站叼。它采用Dragonball處理器[39]娃兽,主頻僅16MHz[40],屏幕大小10漢字x10漢字尽楔,重量105克投储,采用2節(jié)5號(hào)電池供電第练,售價(jià)人民幣1988元÷贶瘢靠著“呼機(jī)手機(jī)商務(wù)通娇掏,一個(gè)也不能少”的廣告,商務(wù)通在1999年大賣(mài)100萬(wàn)臺(tái)[41]勋眯。雖然2001年后商務(wù)通及類(lèi)似產(chǎn)品很快就被越來(lái)越強(qiáng)大的手機(jī)擠出了市場(chǎng)婴梧,但讓人好奇的是,背靠營(yíng)銷(xiāo)能力更加強(qiáng)大的蘋(píng)果客蹋,Newton為何沒(méi)能一炮而紅塞蹭?
其中一個(gè)重要的原因是,Newton重點(diǎn)宣傳的手寫(xiě)識(shí)別功能表現(xiàn)很糟糕讶坯。而商務(wù)通對(duì)手寫(xiě)漢字的識(shí)別率——根據(jù)我個(gè)人的體驗(yàn)——還真是不錯(cuò)番电,考慮到它僅僅16MHz的CPU主頻,能做到這么好簡(jiǎn)直是奇跡辆琅。當(dāng)時(shí)商務(wù)通部分型號(hào)的賣(mài)點(diǎn)就是“連筆王”[42]漱办,對(duì)潦草的漢字識(shí)別得相當(dāng)好。
軟件對(duì)于一款產(chǎn)品的重要性婉烟,真的是生死攸關(guān)懊渚!
深耕
扯遠(yuǎn)了似袁,讓我們回到ARM的故事上來(lái)洞辣。
1990年ARM創(chuàng)立之初,給自己定下的使命是“設(shè)計(jì)有競(jìng)爭(zhēng)力的叔营、低功耗屋彪、高性能、低成本的處理器绒尊,并且使它們成為目標(biāo)市場(chǎng)中廣為接受的標(biāo)準(zhǔn)”畜挥,目標(biāo)市場(chǎng)包括:手持設(shè)備(Portable),嵌入式(Embedded Control)和汽車(chē)電子(Automotive)婴谱⌒返跨越近三十年,這個(gè)使命和市場(chǎng)定位始終未變谭羔,直到今天华糖。
而且,根據(jù)我了解到的知識(shí)瘟裸,ARM是處理器的源代碼授權(quán)這一商業(yè)模式的開(kāi)創(chuàng)者客叉。如今,芯片設(shè)計(jì)從Verilog等源代碼出發(fā),經(jīng)過(guò)一系列自動(dòng)化或半自動(dòng)化的優(yōu)化步驟兼搏,最終形成工廠制造芯片所需要的版圖文件卵慰;整個(gè)過(guò)程類(lèi)似軟件從源代碼被編譯為CPU的機(jī)器碼。但在80年代佛呻,芯片的設(shè)計(jì)自動(dòng)化非常原始裳朋。七八十年代的處理器授權(quán),都是指令集的授權(quán)吓著。Synopsys公司于1986年成立鲤嫡,1987年推出把Verilog編譯為門(mén)級(jí)網(wǎng)表的DesignCompiler[43],之后基于源代碼的芯片自動(dòng)化設(shè)計(jì)流程才慢慢地被建立起來(lái)绑莺。于是源代碼授權(quán)才成為技術(shù)上可行的模式暖眼。
ARM從未自己生產(chǎn)過(guò)商用的芯片。它只是將自己研發(fā)的處理器的源代碼的知識(shí)產(chǎn)權(quán)(IP)授權(quán)給芯片廠商紊撕,由它們推出最終芯片罢荡。受益于這一商業(yè)模式赡突,盡管在1993年对扶,Apple的Newton失敗了,但ARM并未因?yàn)樵O(shè)備賣(mài)不出去而虧錢(qián)惭缰,還幸運(yùn)地拿到了TI的訂單[44]浪南,于是成功盈利了。員工數(shù)量也由12人增長(zhǎng)到了42人漱受。次年ARM又拿到了三星的訂單络凿,員工增長(zhǎng)到70多人,搬出了谷倉(cāng)昂羡。除了源代碼授權(quán)的模式之外絮记,ARM也做指令集授權(quán),1995年虐先,ARM把指令集授權(quán)給DEC怨愤,DEC很快設(shè)計(jì)出了性能更好的StrongARM處理器[45]。1997年蛹批,StrongARM產(chǎn)品線被賣(mài)給Intel撰洗,更名為XScale。
1995年腐芍,Motorola在香港的研發(fā)團(tuán)隊(duì)基于MC68000指令集開(kāi)發(fā)出了針對(duì)手持設(shè)備的DragonBall處理器差导,在這之后的十年,DragonBall處理器一直都是ARM強(qiáng)大的競(jìng)爭(zhēng)對(duì)手[46]猪勇。不但Moto自己的手機(jī)用它设褐,Palm、三星、Sony的手機(jī)也用它助析。當(dāng)然還有前文提到的商務(wù)通裁替。ARM相對(duì)于Dragonball處理器有什么優(yōu)勢(shì)?我認(rèn)為最大的優(yōu)勢(shì)是從客戶需求出發(fā)的貌笨、持續(xù)的創(chuàng)新弱判;其次是ARM的開(kāi)放的商業(yè)模式。
RISC指令集一般都采用32位定長(zhǎng)指令锥惋,代碼密度比起x86之類(lèi)的CISC來(lái)要差一些昌腰,但手機(jī)的存儲(chǔ)空間有限,對(duì)代碼密度的要求高膀跌。1994年遭商,ARM為此專門(mén)研發(fā)了16位的指令集Thumb,以及支持這一指令集的ARM7TDMI[47][48]捅伤。
開(kāi)放授權(quán)的商業(yè)模式劫流,使得整機(jī)廠在選擇芯片時(shí),可以找到支持同一指令集的多種芯片產(chǎn)品丛忆,不容易被綁架祠汇。Nokia作為和Motolora旗鼓相當(dāng)?shù)氖謾C(jī)制造商,肯定不會(huì)選擇競(jìng)爭(zhēng)對(duì)手的Dragonball熄诡,而ARM的技術(shù)實(shí)力和商業(yè)模式可很,正好符合Nokia的需求[49]。
1997年凰浮,Nokia推出了一代經(jīng)典6110我抠,它采用TI的芯片,處理器核心是ARM7TDMI[50][51][52]袜茧。6110是Nokia第一款帶紅外接口的手機(jī)菜拓,第一次內(nèi)置了經(jīng)典的貪吃蛇游戲,它的界面成為了之后Nokia手機(jī)的標(biāo)準(zhǔn)笛厦。從此纳鼎,Nokia和ARM成為了好基友,Nokia的Symbian操作系統(tǒng)递递,一直都建立在ARM架構(gòu)的基礎(chǔ)上[53]喷橙。
1998年,趁著6110大紅大紫的東風(fēng)登舞,ARM在Nasdaq上市了贰逾。同一年,SGI公司看到處理器IP授權(quán)生意有利可圖菠秒,把MIPS部門(mén)拆分出來(lái)疙剑,次年MIPS推出了它第一款可授權(quán)的處理器設(shè)計(jì)M4K[54]氯迂。此后的十年里,MIPS一直都是ARM有力的競(jìng)爭(zhēng)對(duì)手[55]言缤。
商務(wù)通在中國(guó)流行的那幾年嚼蚀,國(guó)際市場(chǎng)上流行性能更高的掌上電腦和智能手機(jī),操作系統(tǒng)包括Palm OS管挟、微軟的WinCE轿曙、Nokia的Symbian、RIM的Blackberry OS僻孝,Motorola的Wisdom OS导帝。在這個(gè)領(lǐng)域里,ARM陣營(yíng)中負(fù)責(zé)高性能的XScale大放異彩穿铆,暴擊Dragonball您单。當(dāng)Dragonball的頻率還停留在33MHz/66MHz時(shí),Xscale已經(jīng)飆到了200~400MHz荞雏。MC68000指令集在手持設(shè)備領(lǐng)域敗走虐秦。Palm OS的1.0~4.0都是基于MC68000指令集的,5.0就換成了ARM凤优。后來(lái)Motorola的半導(dǎo)體部門(mén)Freescale干脆推出了基于ARM核的iMX系列產(chǎn)品悦陋,替代Dragonball產(chǎn)品線。
蘋(píng)果作為掌上電腦的先行者别洪,卻在這次浪潮里無(wú)所作為叨恨,在Wintel的擠壓下,它的桌面業(yè)務(wù)都已經(jīng)瀕臨絕境挖垛,無(wú)暇顧及其它市場(chǎng)了。1997年秉颗,不溫不火的Newton從蘋(píng)果公司獨(dú)立了出來(lái)痢毒。當(dāng)喬布斯回歸蘋(píng)果之后,又火速把Newton收編了回來(lái)蚕甥,并且干凈利落地停掉了Newton產(chǎn)品線——喬幫主只想要Newton手里的ARM股份哪替。1998年到2003年,蘋(píng)果通過(guò)出售ARM的股票獲利11億美元菇怀。這筆錢(qián)凭舶,是喬布斯復(fù)興戰(zhàn)略的重要燃料,可以說(shuō)是蘋(píng)果的救命錢(qián)[56][57]爱沟。
綻放
經(jīng)過(guò)多年的深耕帅霜,ARM在新世紀(jì)開(kāi)始時(shí),已經(jīng)是手機(jī)領(lǐng)域里的王者呼伸,依然在為客戶的需求做著持續(xù)的創(chuàng)新身冀,Java加速技術(shù)就是一個(gè)典型的例子。
從2000年開(kāi)始,功能手機(jī)的性能提升到了足夠高的水平搂根,人們希望在手機(jī)上玩比較復(fù)雜的游戲珍促,而不僅僅是貪吃蛇。但是手機(jī)的處理器和操作系統(tǒng)實(shí)在是太分散了剩愧,為了方便游戲跑在不同手機(jī)上猪叙,J2ME平臺(tái)應(yīng)運(yùn)而生[58]。從原理上講仁卷,J2ME和Applet并無(wú)不同沐悦,都是基于JVM的。Java在并不分散的桌面領(lǐng)域沒(méi)有獲得成功五督,但在分散的手機(jī)領(lǐng)域獲得了成功藏否。
J2ME的游戲越做越復(fù)雜,但手機(jī)的處理能力畢竟有限充包,桌面和服務(wù)器上的JIT編譯器在手機(jī)上跑得太吃力了副签。于是ARM在2001年推出了ARM926EJ-S處理器,它支持Jazelle DBX技術(shù)基矮,可以直接解碼和執(zhí)行Java的字節(jié)碼淆储,省掉了JIT編譯器的負(fù)擔(dān)[59][60]。這一功能大受歡迎家浇,幫助ARM9系列成為了迄今最受歡迎的ARM處理器本砰,總共有250多個(gè)授權(quán)廠家,其中100多個(gè)授權(quán)的是ARM926EJ-S[61]钢悲。
在MTK助推山寨功能機(jī)火遍神州的那幾年点额,主控芯片所使用的核全部都是ARM9[62]。在iOS和安卓的應(yīng)用商店誕生之前莺琳,功能手機(jī)全靠J2ME開(kāi)發(fā)的應(yīng)用來(lái)實(shí)現(xiàn)各種炫酷的功能还棱。從某種意義上講,在低端市場(chǎng)上惭等,Jazelle是助力山寨機(jī)火爆的最大幕后功臣珍手。
然而高性能ARM芯片的扛把子X(jué)Scale,卻被Intel于2006年6月賣(mài)給了Marvell辞做。這是Intel實(shí)施x86-everywhere戰(zhàn)略的一個(gè)步驟琳要。Intel希望x86的生態(tài)也能進(jìn)入到低功耗的移動(dòng)領(lǐng)域,而不是用自己先進(jìn)的工藝制程和設(shè)計(jì)能力幫ARM建設(shè)高端應(yīng)用的生態(tài)秤茅。22個(gè)月之后稚补,2008年4月,低功耗的Atom芯片誕生了[63]嫂伞。
高性能ARM芯片的扛把子換成了蘋(píng)果孔厉。2004年拯钻,在賣(mài)光ARM股票的一年之后,喬布斯決定研發(fā)iPhone撰豺。2007年1月粪般,在Intel放棄ARM之后僅半年,iPhone誕生了污桦。蘋(píng)果可不會(huì)采用低端市場(chǎng)上死守ARM9那種玩法亩歹,iPhone一代就采用了400MHz的ARM11;2009年的iPhone 3GS凡橱,升級(jí)為600MHz的Cortex A8小作;2010年的iPhone4,蘋(píng)果自研的A4芯片升級(jí)為1GHz的Cortex A8稼钩。接下來(lái)蘋(píng)果自研芯片性能一路狂飆的歷程顾稀,大家都很熟悉了。
從ARM6到ARM11坝撑,這些IP核都是按照兼顧移動(dòng)設(shè)備静秆、汽車(chē)電子和嵌入式這三個(gè)市場(chǎng)的思路來(lái)設(shè)計(jì)的。從2003年起巡李,ARM把產(chǎn)品線有針對(duì)性地劃分為A抚笔、R、M三個(gè)系列侨拦,分別對(duì)應(yīng)上述三個(gè)市場(chǎng)殊橙,而且IP核的名字都統(tǒng)一加上了Cortex的前綴。Cortex A8就是A系列的第一個(gè)作品狱从。iPhone 3GS和iPhone4令Cortex A8大火膨蛮,但讓ARM一飛沖天的推手,卻是iPhone的競(jìng)爭(zhēng)對(duì)手——安卓(Android)矫夯。
有很多文章介紹安卓如何誕生鸽疾,如何在移動(dòng)設(shè)備領(lǐng)域干掉了除iOS之外的全部對(duì)手,毋須贅述训貌。這里只想強(qiáng)調(diào)一個(gè)被普遍忽略的事實(shí):安卓從誕生之初,就要求應(yīng)用程序采用Java編寫(xiě)冒窍,并且跑在Dalvik虛擬機(jī)上递沪;但iPhone上的應(yīng)用,都是原生的ARM程序综液。要知道Android手機(jī)的處理器性能相對(duì)iPhone并無(wú)優(yōu)勢(shì)款慨。山寨之王MTK于2009年2月推出的首款智能手機(jī)芯片MT6516,采用406MHz的ARM9谬莹;2008年~2010年間由HTC推出的那幾款賣(mài)得很好的Android手機(jī)檩奠,也無(wú)非是ARM11和Cortex A8的核桩了,幾百兆的頻率,這種級(jí)別的處理器跑虛擬機(jī)還是蠻吃力的埠戳。另外虛擬機(jī)占用內(nèi)存大的缺點(diǎn)井誉,也不利于用戶體驗(yàn)和降低成本。
谷歌寧可冒著讓安卓出師不利的風(fēng)險(xiǎn),也要推廣Dalvik虛擬機(jī)。這是為什么靠瞎?谷歌內(nèi)部的決策過(guò)程我們無(wú)從得知研儒。一個(gè)合理的猜測(cè)是,谷歌不愿看到手機(jī)領(lǐng)域里ARM一家獨(dú)大考余,它希望給MIPS、x86等其它CPU一個(gè)機(jī)會(huì)。J2ME的成功蔽午,讓谷歌看到完全建立在虛擬機(jī)上的手機(jī)應(yīng)用生態(tài),是完全可能的酬蹋。Dalvik虛擬機(jī)可以跑Java及老,但并不采用JVM那種基于堆棧的字節(jié)碼,而是改用一種基于寄存器的方案除嘹。這么做當(dāng)然是為了規(guī)避SUN公司(后被Oracle收購(gòu))的專利写半,同時(shí)也讓無(wú)法直接運(yùn)行JVM字節(jié)碼的MIPS、x86能夠?qū)崿F(xiàn)輕量級(jí)的JIT編譯器尉咕,無(wú)須Jazelle這樣的技術(shù)叠蝇。從另外一個(gè)角度講,MIPS在電視年缎、機(jī)頂盒悔捶、游戲機(jī)市場(chǎng)上占優(yōu),x86在桌面市場(chǎng)近乎壟斷单芜,支持它們蜕该,也意味著安卓有可能進(jìn)軍電視和桌面。
安卓對(duì)所有CPU而言洲鸠,都是巨大的機(jī)會(huì)堂淡,誰(shuí)抓住了這個(gè)機(jī)會(huì),就可以一舉改變競(jìng)爭(zhēng)格局扒腕,實(shí)現(xiàn)霸業(yè)[64]绢淀。
只可惜MIPS公司太不給力,一直也沒(méi)有搞定靠譜的MIPS版Android瘾腰。等到2011年1月皆的,Synopsys公司給自家的ARC處理器移植好Dalvik虛擬機(jī)和瀏覽器用的V8虛擬機(jī)[65][66]、Android環(huán)境已完備的時(shí)候蹋盆,MIPS都還沒(méi)動(dòng)靜费薄。順便說(shuō)一句硝全,Intel曾經(jīng)的南橋芯片里都有ARC處理器,它是Active Management Technology(AMT)的重要基石[67]楞抡。
這個(gè)時(shí)候伟众,北京的君正公司坐不住了。君正靠做低成本的MP4播放器起家拌倍,2011年5月在創(chuàng)業(yè)板上市[68]赂鲤。君正擁有MIPS的架構(gòu)級(jí)授權(quán),對(duì)自己研發(fā)的XBurst處理器非常自信柱恤,準(zhǔn)備靠它進(jìn)攻手機(jī)和平板市場(chǎng)数初。2011年7月,基于君正JZ4760的MIPS智能手機(jī)通過(guò)Android兼容性測(cè)試[69][70]梗顺。2011年12月泡孩,基于君正JZ4770平臺(tái)的平板電腦,被谷歌選為Android4.0的首發(fā)產(chǎn)品寺谤,一時(shí)風(fēng)光無(wú)限[71][72][73]仑鸥。
ARM的強(qiáng)大軟件生態(tài)此時(shí)起到了護(hù)城河的作用”淦ǎ基于君正的平板眼俊,軟件兼容性出了問(wèn)題。原因在于谷歌沒(méi)有強(qiáng)求所有的應(yīng)用都跑在Dalvik虛擬機(jī)上粟关,對(duì)于部分對(duì)性能有苛刻要求的app疮胖,例如游戲,谷歌允許用CPU的原生指令集來(lái)開(kāi)發(fā)闷板,為此還提供了NDK(Native Development Kit)澎灸。對(duì)于那些包含了ARM原生指令的游戲,君正的平板要么不支持遮晚,要么用emulator支持性昭,總之用戶體驗(yàn)都不好。
ARM生態(tài)圈里县遣,在2011年糜颠,正好有兩家芯片廠商異軍突起:全志和瑞芯微,它們分別推出了采用Cortex A8處理器的A10芯片和RK2918芯片萧求,成本極低括蝠,主打平板和安卓電視盒子。君正的平板夢(mèng)被它們粉碎了饭聚,之后只好轉(zhuǎn)戰(zhàn)安卓手表,消沉了很多年搁拙。對(duì)于MIPS而言秒梳,還有一個(gè)壞消息是法绵,在它們的強(qiáng)力助推下,電視盒子市場(chǎng)也成了ARM的天下酪碘。經(jīng)營(yíng)不善的MIPS于2012年賣(mài)給了Imagination[74]朋譬,Imagination不但沒(méi)能依靠MIPS在CPU市場(chǎng)中有所作為,反而在GPU市場(chǎng)里也敗給了ARM兴垦,在2017年被迫整體賣(mài)身徙赢,MIPS業(yè)務(wù)賣(mài)回給了硅谷公司。
2012~2016年探越,Intel在安卓市場(chǎng)上挑戰(zhàn)ARM狡赐,也失敗了。于是安卓給CPU帶來(lái)的紅利钦幔,全部被ARM吃掉了枕屉。隨著手機(jī)越來(lái)越重要,ARM也越來(lái)越重要鲤氢,它所推出的最新的Cortex A系列處理器搀擂,被手機(jī)芯片爭(zhēng)相采用。ARM生態(tài)也越來(lái)越強(qiáng)大卷玉,它的觸角哨颂,慢慢伸出了手機(jī)領(lǐng)域。
滲透
2011年1月相种,微軟在CES宣布要為ARM架構(gòu)開(kāi)發(fā)Windows 8 RT操作系統(tǒng)[75]威恼。在2012年年底,幾乎和Intel芯手機(jī)上市的同時(shí)蚂子,包括微軟自家的Surface RT在內(nèi)的一大批二合一平板設(shè)備上市了沃测。Windows 8 RT不支持所有之前為x86平臺(tái)開(kāi)發(fā)的應(yīng)用程序,這成為它最大的軟肋食茎,相關(guān)的產(chǎn)品慢慢銷(xiāo)聲匿跡了蒂破。ARM滲透桌面市場(chǎng)的第一次嘗試失敗了。
最近微軟和高通所推出的ARM芯的Windows 10别渔,吸取了教訓(xùn)附迷,用Eumlation的機(jī)制來(lái)支持舊有的x86桌面程序。這次嘗試能否成功哎媚,我們拭目以待喇伯。
2009年,ARM推出了Cortex A9處理器拨与,并且用40nm的工藝制造了雙核的樣片稻据,跑到了2GHz[76]。這是ARM第一次推出亂序超標(biāo)量的處理器核买喧,而亂序超標(biāo)量是Intel實(shí)現(xiàn)高性能的關(guān)鍵技術(shù)捻悯,這是非常振奮人心的消息匆赃。2010年,Marvell推出了1.6GHz的4核A9的服務(wù)器芯片Armada XP[77]今缚。2013年算柳,這款芯片被部署在百度的存儲(chǔ)服務(wù)器上,這是ARM服務(wù)器第一次大規(guī)模商用姓言。但Marvell并未繼續(xù)推出新的服務(wù)器芯片[78]瞬项。2011年,一家創(chuàng)業(yè)公司Calxeda采用Cortex A9何荚,推出了共有480個(gè)CPU核的ARM服務(wù)器[79]囱淋。但它的成就還不如Armada XP,2013年公司就倒閉了[80]兽泣。
2012年绎橘,AMD收購(gòu)了一家做高密度服務(wù)器的廠商SeaMicro[81],準(zhǔn)備把它所采用的CPU核由Intel的Atom換成ARM架構(gòu)的CPU唠倦。但直到2014年AMD才推出8核Cortex A57的服務(wù)器芯片Opteron A1100[82][83]称鳞,之后從來(lái)也沒(méi)有認(rèn)真賣(mài)過(guò)它。2015年AMD就放棄了SeaMicro這個(gè)子品牌稠鼻,不再做高密度服務(wù)器了[84]冈止。
ARM進(jìn)攻服務(wù)器市場(chǎng)的第一次嘗試失敗了。Marvell和Calxeda都采用的是32位的ARM核候齿,先天不足熙暴;AMD則三心二意,畢竟自己還有x86 Server的生意慌盯。另外服務(wù)器市場(chǎng)對(duì)于單核單線程的運(yùn)算能力也有很高的要求周霉,僅僅有低功耗和高通量(high throughput)是不夠的。
在ARMv8這一64位指令集發(fā)布之后亚皂,Cavium和AppliedMicro這兩家老牌網(wǎng)絡(luò)芯片廠商不約而同地將自己原先芯片中的架構(gòu)換成了ARMv8[85][86]俱箱。因?yàn)楫a(chǎn)品的需要,Cavium和AppliedMicro都有自行設(shè)計(jì)處理器微架構(gòu)的能力灭必,前者做MIPS處理器狞谱,后者做PowerPC處理器。它們兩家做ARMv8處理器時(shí)禁漓,也都采用了只授權(quán)指令集跟衅,微架構(gòu)自研的模式。Cavium共推出過(guò)兩代基于ARM的產(chǎn)品(2014播歼、2016年)伶跷,AppliedMicro推出過(guò)三代(2013、2015、2017年)撩穿。隨著產(chǎn)品性能逐漸接近Intel的Xeon E5[87][88]磷支,它們漸漸不再滿足于原先的網(wǎng)絡(luò)領(lǐng)域,開(kāi)始覬覦服務(wù)器市場(chǎng)食寡。
最讓人期待的還是高通的Centriq芯片,2015年年底量產(chǎn)24核版本廓潜,2016年年底量產(chǎn)升級(jí)48核版本[89]抵皱,還得到了微軟的強(qiáng)力支持[90]”绲埃考慮到高通還和貴州成立了合資公司華芯通[91]呻畸,Centriq很可能成為在國(guó)內(nèi)大規(guī)模商用的第一款A(yù)RM服務(wù)器芯片。
另外具有國(guó)防背景的天津飛騰公司悼院,也有ARM服務(wù)器芯片的產(chǎn)品[92]伤为,只是不知道這些產(chǎn)品何時(shí)能在通用市場(chǎng)上鋪貨。
其他確定在研發(fā)ARM Server芯片的大廠還包括Broadcom[93]和華為[94]据途,進(jìn)度上要略慢一些绞愚。
ARM陣營(yíng)對(duì)服務(wù)器發(fā)起的第二波沖擊,陣容要強(qiáng)大得多豪華得多颖医。因此ARM才敢于宣稱位衩,在2021年拿下25%的服務(wù)器市場(chǎng)份額[95]。
要做好Server CPU熔萧,ARM架構(gòu)還有些功課要一點(diǎn)一點(diǎn)補(bǔ)糖驴。多Socket服務(wù)器所需要的一致性協(xié)議,業(yè)界剛剛?cè)〉霉沧R(shí)準(zhǔn)備采用CCIX[96]佛致,但還沒(méi)有具體的產(chǎn)品出來(lái)贮缕。做云端虛擬機(jī)所必備的虛擬化支持,ARM還有些性能問(wèn)題[97]俺榆。x86處理器提升Throughput的利器超線程技術(shù)感昼,ARM陣營(yíng)尚不能支持。Intel芯片近年來(lái)陸續(xù)增加的安全特性[98][99][100][101]肋演,也夠ARM追趕一陣子的抑诸。但目前看來(lái),ARM已經(jīng)沒(méi)有致命的短板爹殊,蠶食掉Intel的服務(wù)器市場(chǎng)份額是板上釘釘?shù)氖虑橥上纾ㄒ坏膽夷钍蔷烤苟嗌俜蓊~?
未來(lái)ISA將不那么重要
從長(zhǎng)遠(yuǎn)看梗夸,半導(dǎo)體廠商對(duì)建立于ISA之上的生態(tài)系統(tǒng)的掌控力會(huì)變?nèi)醪懔幔鳬SA本身,會(huì)變得越來(lái)越不重要。這是軟件技術(shù)發(fā)展的趨勢(shì)決定的辛块,如前所述畔派,這些技術(shù)在90年代末就已經(jīng)初有小成了。
第一是Web技術(shù)润绵。網(wǎng)頁(yè)開(kāi)發(fā)領(lǐng)域线椰,有一個(gè)大家視若無(wú)睹的奇跡:最后居然只有Javascript一種開(kāi)發(fā)語(yǔ)言屹立至今。要知道在服務(wù)器端和移動(dòng)App領(lǐng)域尘盼,開(kāi)發(fā)語(yǔ)言多如過(guò)江之卿憨愉。其中原因我也分析不出。反正js的挑戰(zhàn)者(微軟的VBScript和谷歌的Dart)都失敗了卿捎。網(wǎng)頁(yè)開(kāi)發(fā)領(lǐng)域面臨的主要問(wèn)題是瀏覽器差異大配紫,API不太兼容。這個(gè)問(wèn)題慢慢在緩解中午阵,一來(lái)瀏覽器戰(zhàn)爭(zhēng)大局已定躺孝,Android和PC上的Chrome,以及iPhone和Mac上的safari是勝者底桂;二來(lái)很多網(wǎng)頁(yè)應(yīng)用是跑在App里面的植袍,例如微信和支付寶里,這種場(chǎng)景下Javascript的API已經(jīng)被特定廠商規(guī)范過(guò)了戚啥。
由于開(kāi)發(fā)語(yǔ)言和API的高度統(tǒng)一奋单,H5(HTML5+Javascript)已經(jīng)成了兼容所有硬件的最通用的軟件開(kāi)發(fā)平臺(tái)。曾經(jīng)有人鼓吹H5會(huì)趕走移動(dòng)端和PC端的原生程序猫十,后來(lái)被打臉了览濒。但是移動(dòng)端和PC端的原生App中,越來(lái)越多的界面是用H5生成的了拖云,微信贷笛、支付寶、京東宙项、淘寶乏苦、愛(ài)奇藝、有道詞典……尤筐,統(tǒng)統(tǒng)都是這樣汇荐。
Javascript吞噬一切的進(jìn)程還在持續(xù)。2007年盆繁,Stack Overflow的聯(lián)合創(chuàng)始人Jeff Atwood曾經(jīng)提出過(guò)一條Atwood定律[102][103]:任何能夠用JavaScript實(shí)現(xiàn)的應(yīng)用系統(tǒng)掀淘,最終都必將用JavaScript實(shí)現(xiàn)。十年過(guò)去了油昂,此定律基本奏效革娄。把Javascript的一個(gè)子集當(dāng)作匯編語(yǔ)言的asm.js及其后續(xù)的WebAssembly倾贰,更加使得網(wǎng)頁(yè)應(yīng)用有媲美原生應(yīng)用的潛力,在瀏覽器里跑Unity3D的游戲都不是問(wèn)題拦惋。
獨(dú)立的應(yīng)用程序仍然會(huì)是移動(dòng)和桌面端的主流匆浙,因?yàn)闆](méi)有獨(dú)立程序,不方便做彈窗廣告厕妖,不方便啟動(dòng)后臺(tái)進(jìn)程收集用戶信息首尼,不方便引誘用戶安裝其它獨(dú)立程序。但Web的能力的確在快速提升叹放,Web Component技術(shù)實(shí)現(xiàn)了類(lèi)似GUI庫(kù)的Widget復(fù)用饰恕,如今在瀏覽器里實(shí)現(xiàn)Office和IDE的功能都毫無(wú)問(wèn)題(office365.com、docs.google.com井仰、editor.construct.net、騰訊文檔[104])破加;而WebGL已經(jīng)能支持Unity3D這種大型游戲框架俱恶。照此趨勢(shì)發(fā)展下去,獨(dú)立應(yīng)用程序僅僅會(huì)作為一個(gè)包裝而存在范舀,開(kāi)發(fā)者寫(xiě)一套H5合是,加上不同的包裝,就成了PC锭环、Mac聪全、Android、iOS上的獨(dú)立應(yīng)用程序辅辩,不加包裝难礼,就是網(wǎng)站。微軟去年開(kāi)源的ReactXP[105]玫锋,就是為了實(shí)現(xiàn)這一目標(biāo)蛾茉。
這意味著什么?不但底層的CPU被OTT了撩鹿,操作系統(tǒng)也被OTT了谦炬。因?yàn)橐浦惨粋€(gè)應(yīng)用程序到各個(gè)平臺(tái)上,幾乎沒(méi)有什么難度节沦。誰(shuí)將是生態(tài)系統(tǒng)的掌控者键思?若干個(gè)超級(jí)App,像微信甫贯、QQ吼鳞、支付寶這樣的。它們不但包裝自家的應(yīng)用获搏,其它開(kāi)發(fā)者也可以把自己的應(yīng)用放在這個(gè)包裝里面赖条,借重超級(jí)App的廣泛覆蓋度失乾,抵達(dá)最終用戶。前文提到了纬乍,如果微信小程序獲得成功碱茁,騰訊必然會(huì)重拾Q+的野心,把QQ變成桌面上各種H5應(yīng)用的App Store仿贬。
如果真的會(huì)這樣纽竣,微軟豈不是會(huì)比Intel還著急?拜托茧泪,微軟已經(jīng)不是二十年前主要靠賣(mài)Windows和Office的光盤(pán)賺錢(qián)的那家公司了蜓氨,未來(lái)它會(huì)專注于云計(jì)算[106]。但I(xiàn)ntel還和二十年前一樣在賣(mài)芯片队伟。
第二是編譯技術(shù)尤其是虛擬機(jī)的發(fā)展穴吹。如今的編程語(yǔ)言太多了,80年代那種搞定C語(yǔ)言編譯器就OK的好日子早已過(guò)去嗜侮。任何一個(gè)新CPU架構(gòu)要想在移動(dòng)港令、桌面、服務(wù)器市場(chǎng)站穩(wěn)腳跟锈颗,都得搞定無(wú)數(shù)的編譯器(包括虛擬機(jī)用的JIT編譯器)顷霹,這是個(gè)壞消息。但好消息是击吱,搞定這些編譯器基本就差不多了淋淀,不用勸說(shuō)開(kāi)發(fā)者重寫(xiě)匯編代碼。
老一代程序員對(duì)x86處理器架構(gòu)和匯編都非常熟悉覆醇。求伯君當(dāng)年開(kāi)發(fā)WPS時(shí)朵纷,手寫(xiě)幾十萬(wàn)行匯編[107];雷軍讀本科時(shí)叫乌,是系里20多年來(lái)拿過(guò)《匯編語(yǔ)言程序設(shè)計(jì)》滿分成績(jī)的兩個(gè)學(xué)生之一[108]柴罐;梁肇新開(kāi)發(fā)超級(jí)解霸時(shí),把MMX匯編玩得出神入化憨奸。感興趣的讀者可以看看梁的《編程高手箴言》[109]革屠,那里面,描繪了一個(gè)對(duì)現(xiàn)在的程序員而言排宰,完全陌生的世界似芝。在那個(gè)世界里,你開(kāi)發(fā)的PC應(yīng)用程序想要移植到Mac平臺(tái)上板甘,幾乎要完全重寫(xiě)党瓮。
如今高層次的編程語(yǔ)言接管了一切,匯編語(yǔ)言從很多學(xué)校的本科課程里消失了盐类,入門(mén)教材也從C改成了Java寞奸,甚至是Javascript或Python呛谜。程序員完全不熟悉底層的CPU。即使是真的需要拼性能的場(chǎng)合枪萄,編譯器也在很大程度上代替了手寫(xiě)匯編隐岛。ARM的工程師告訴我說(shuō),ARM在開(kāi)發(fā)開(kāi)源的Compute Library過(guò)程中瓷翻,主要依靠在C源碼中加入標(biāo)注來(lái)指導(dǎo)編譯器生成SIMD指令聚凹,而不是像梁肇新那樣手寫(xiě)。
在這種情況下齐帚,軟件平臺(tái)廠商就變得非常強(qiáng)勢(shì)妒牙,因?yàn)樗麄冎溃瑧?yīng)用開(kāi)發(fā)商只需付出重新編譯一遍的代價(jià)对妄。比如蘋(píng)果湘今,就要求所有的App都改為64位的[110]。這樣剪菱,未來(lái)蘋(píng)果在手機(jī)CPU里放棄對(duì)32位應(yīng)用的支持時(shí)象浑,甚至都不會(huì)有人感覺(jué)得到。這對(duì)于x86生態(tài)系統(tǒng)而言琅豆,簡(jiǎn)直是天方夜譚,顯然微軟對(duì)此非常眼饞篓吁,并且嘗試在Windows 10 S中復(fù)制這種掌控力[111]茫因。
至于谷歌坝锰,Android把所有應(yīng)用都跑在虛擬機(jī)上的嘗試雖然失敗了黔酥,但如果未來(lái)它再針對(duì)AR/VR、AI或機(jī)器人發(fā)布一個(gè)什么軟件平臺(tái)的話鳞陨,就很有可能完全禁止原生程序盛嘿。
而Oracle洛巢,正在努力開(kāi)發(fā)可以支持所有編程語(yǔ)言、能把所有CPU給OTT掉的全新VM:GraalVM[112]次兆。我們拭目以待稿茉。
第三是Emulation技術(shù)的發(fā)展。雖然眼下ARM陣營(yíng)中靠Emulation進(jìn)攻Intel的先鋒是高通芥炭,但最可怕的選手其實(shí)是NVidia漓库。NVidia擁有最厲害的Emulation技術(shù),而且江湖傳言Denver處理器的初衷就是針對(duì)x86的[113]园蝠。當(dāng)初NVidia的Tegra處理器曾被拿來(lái)做Windows 8 RT的二合一平板[114]渺蒿。如今Denver處理器跑Windows 10絕不會(huì)讓人意外,那么它會(huì)怎么跑呢彪薛?肯定是直接在底層硬件上做x86的Emulation茂装,而不是在Emulate出來(lái)的ARM指令集上再做一層Eumulation怠蹂。
Denver處理器前些年沒(méi)有跳出來(lái)?yè)孖ntel的飯碗,很大程度上是因?yàn)镹Vidia還在做Intel平臺(tái)的主板芯片組少态,另外NVidia還沒(méi)有那么強(qiáng)大城侧。如今NVidia也不做芯片組生意了,還借AI的東風(fēng)况增,股價(jià)扶搖直上赞庶。說(shuō)不定哪天,NVidia就會(huì)放出Denver處理器的x86 Emulator澳骤,做到單線程性能不輸Xeon歧强,強(qiáng)攻服務(wù)器市場(chǎng)。想想看为肮,在單芯片上集成GPU和x86版的Denver摊册,云計(jì)算廠商能不動(dòng)心?
如果未來(lái)Emulation技術(shù)進(jìn)一步發(fā)展并且被越來(lái)越多的廠商掌握颊艳,很可能會(huì)出現(xiàn)這種情況:CPU本身是某種外界不了解的指令集茅特,官方發(fā)布時(shí),只能Emulate某種開(kāi)放的指令集棋枕,例如RISCV白修;但是用戶可以給它安裝不同的Emulator,讓它變成x86-64處理器重斑,或者ARM64處理器兵睛。在軟件定義一切的時(shí)代,這并不是多么瘋狂的想象窥浪。
總之祖很,CPU依然不可或缺,但CPU用誰(shuí)家的漾脂,是什么指令集假颇,會(huì)越來(lái)越不重要。軟件的發(fā)展骨稿,會(huì)在用戶和底層的CPU之間加入足夠大的緩沖帶笨鸡,CPU的差異,越來(lái)越難以被用戶察覺(jué)到啊终。
展望:讓CPU不再難
此文在最后修改之時(shí)镜豹,看到了梁寧的文章《一段關(guān)于國(guó)產(chǎn)芯片和操作系統(tǒng)的往事》,里面寫(xiě)到:“就像10多年前一樣蓝牲,只要搞定知識(shí)產(chǎn)權(quán)問(wèn)題趟脂,選擇技術(shù)路線,找會(huì)干的人例衍,投入干昔期,CPU/芯片就能夠做出來(lái)已卸。搞不定的依然是操作系統(tǒng)。差距大的依然是生態(tài)硼一。當(dāng)年累澡,繞得過(guò)Intel,跨不過(guò)微軟般贼。如今愧哟,繞得過(guò)Arm,做不出安卓哼蛆∪镂啵” 我也曾參與過(guò)國(guó)產(chǎn)CPU的研發(fā)(但不是梁寧提到的方舟),生態(tài)之難體會(huì)頗深腮介,真的肥矢,只是燒錢(qián)做芯片,無(wú)論燒多少都無(wú)法挑戰(zhàn)Intel和ARM叠洗,何況過(guò)去二十年真的沒(méi)燒多少甘改。
但我并沒(méi)有梁寧那么悲觀,畢竟技術(shù)的潮流無(wú)法抗拒灭抑,借用馬化騰的一句名言“可能你什么錯(cuò)都沒(méi)有十艾,最后就是錯(cuò)在自己太老了”。
Intel和ARM如此強(qiáng)大而且極少犯錯(cuò)腾节,我們?nèi)绱巳跣【退闼鼈兎稿e(cuò)也無(wú)法利用——但我們可以欺負(fù)它們的“老”疟羹。
在此借新智元的寶地,向小馬哥呼吁一聲:
請(qǐng)借助騰訊的強(qiáng)大生態(tài)禀倔,把CPU和OS這兩個(gè)老大難問(wèn)題給OTT掉吧!
做法非常簡(jiǎn)單参淫,把Q+桌面再重新搞起來(lái)救湖,做一款完全使用Javascript&Webassembly編程的操作系統(tǒng),里面用騰訊文檔來(lái)替代Office涎才,各種微信小程序都支持起來(lái)鞋既,適當(dāng)支持游戲(但要加入家長(zhǎng)監(jiān)控系統(tǒng))。補(bǔ)貼芯片廠耍铜,讓它們使用ARM或RISC-V外加國(guó)產(chǎn)Imagination gpu做SoC邑闺,生產(chǎn)類(lèi)似Surface這樣的二合一平板。底層CPU使用的ISA完全不可見(jiàn)棕兼,上層編程完全用H5陡舅。這樣,就幫祖國(guó)把CPU和OS這兩個(gè)陳年大洞都補(bǔ)上了伴挚。
芯片要下苦功靶衍,別凡事都指望模式創(chuàng)新灾炭。這不假。但偏偏CPU真的面臨一個(gè)十倍速變革的機(jī)會(huì)颅眶,真的有靠模式創(chuàng)新而勝出的機(jī)會(huì)蜈出,為什么不試試呢?如果騰訊不去嘗試一下涛酗,誰(shuí)還有資格呢铡原?促進(jìn)祖國(guó)的微電子發(fā)展功德無(wú)量,相信這次不會(huì)有人說(shuō)騰訊壟斷之類(lèi)的閑話商叹。
-
http://www.sohu.com/a/144710587_628730 一塊帶給無(wú)數(shù)人年少歡樂(lè)的CPU燕刻,文曲星和小霸王都用過(guò)它 ?
-
https://en.wikipedia.org/wiki/Apple%27s_transition_to_Intel_processors ?
-
https://www.forbes.com/2007/10/24/transmeta-intel-settlement-markets-equity-cx_af_1024markets26.html, Transmeta Settles With Intel For $250M ?
-
https://www.extremetech.com/extreme/186336-tegra-k1-gpu-posts-some-beastly-benchmarks-but-is-it-good-enough-that-devs-will-actually-use-it ?
-
https://www.hotchips.org/wp-content/uploads/hc_archives/hc26/HC26-11-day1-epub/HC26.11-2-Mobile-Processors-epub/HC26.11.234-Denver-Darrell.Boggs-NVIDIA-rev4.pdf ?
-
http://www.anandtech.com/show/10596/hot-chips-2016-nvidia-discloses-tegra-parker-details ?
-
https://sec.ch9.ms/ch9/77bc/0cb602d9-0828-49f9-a291-c17b26c377bc/P4171_high.mp4 ?
-
https://www.theregister.co.uk/2017/06/09/intel_sends_arm_a_shot_across_bow/ ?
-
https://www.theregister.co.uk/2017/05/12/microsofts_windows_10_armtwist_comes_closer_with_first_demonstration/ ?
-
https://www.xda-developers.com/microsoft-qualcomm-and-intel-the-windows-10-arm-dustup/ ?
-
https://www.theinquirer.net/inquirer/news/1008015/linus-torvalds-itanium-threw-x86 ?
-
https://riscv.org/wp-content/uploads/2017/05/Mon0915-RISC-V-50-Years-Computer-Arch.pdf ?
-
http://digi.tech.qq.com/a/20120924/001417.htm 迎十一 聯(lián)想K800英特爾手機(jī)促銷(xiāo)1799元 ?
-
https://www.leiphone.com/news/201406/intel-shouji-xinpian.html Intel手機(jī)芯片是成功了,還是失敗了沈自? ?
-
http://tech.sina.com.cn/zl/post/detail/it/2014-05-26/pid_8453692.htm 獲利不佳腹背受敵:英特爾應(yīng)退出移動(dòng)市場(chǎng)酌儒? ?
-
https://www.huxiu.com/article/35030.html 為了攻平板,英特爾向白牌企業(yè)“交鑰匙”枯途。這招聯(lián)發(fā)科式攻略忌怎,會(huì)管用嗎? ?
-
http://hebei.news.163.com/14/0526/11/9T5UB7I002790H6D.html 英特爾平板補(bǔ)貼全面開(kāi)放 只求平板市占擴(kuò)大 ?
-
http://blog.sina.com.cn/s/blog_6a3d23d70102vyw1.html Intel的東進(jìn)與ARM的西征 ?
-
http://www.itnpc.com/news/mobile/146225636962401.html 英特爾在智能手機(jī)芯片市場(chǎng)認(rèn)輸:三年內(nèi)投入百億美元毫無(wú)建樹(shù) ?
-
https://commonsware.com/blog/2013/11/21/libhoudini-what-it-means-for-developers.html ?
-
http://www.zdnet.com/article/raspberry-pi-rivals-galileo-joule-edison-axed-by-intel-plus-recon-jet-smart-glasses/ ?
-
http://laoyaoba.com/ss6/wap/viewnews.php?itemid=641542 英特爾將停產(chǎn)3款開(kāi)發(fā)板酪夷,物聯(lián)網(wǎng)之夢(mèng)終于要醒了 ?
-
http://hackaday.com/2017/06/19/intel-discontinues-joule-galileo-and-edison-product-lines/ ?
-
http://vision.ouc.edu.cn/~zhenghaiyong/courses/dsd/20122/materials/Brief_History_of_ARM-LeeSmith.pdf ?
-
http://www.feng.com/apple/news/2013-08-28/Newton_MessagePad_20_years_later_562386.shtml Newton MessagePad 20年后仍影響深遠(yuǎn) ?
-
http://detail.zol.com.cn/7/6742/param.shtml 恒基偉業(yè)商務(wù)通 MBA991-C參數(shù) ?
-
http://www.openhardware.net/Documents_Lib/pdf_files/MC68EZ328UM1.pdf ?
-
http://blog.sina.com.cn/s/blog_5d1559b70100e2mw.html 商務(wù)通:“短命”的PDA品牌 ?
-
https://www.semiwiki.com/forum/content/1891-brief-history-synopsys.html ?
-
http://reds.heig-vd.ch/share/cours/ReCo/documents/TheHistoryOfTheArmArchitecture.pdf ?
-
https://community.arm.com/processors/b/blog/posts/a-brief-history-of-arm-part-1 ?
-
https://community.arm.com/processors/b/blog/posts/a-brief-history-of-arm-part-2 ?
-
https://www.quora.com/Microprocessors-How-did-the-ARM-architecture-dominate-the-mobile-chipset-market ?
-
https://www.engadget.com/2011/12/20/the-engadget-interview-arm-co-founder-john-biggs/ ?
-
https://en.wikipedia.org/wiki/List_of_MIPS_architecture_processors ?
-
https://technews.tw/2016/07/19/softbank-to-buy-arm-the-company-that-saved-apple/ 軟銀負(fù)債千億收編的 ARM榴啸,是 iPhone 的運(yùn)算核心也曾拯救過(guò)蘋(píng)果公司 ?
-
http://appleinsider.com/articles/13/08/12/iphone-patent-wars-apples-11-billion-arm-injection-ignites-a-mobile-patent-race ?
-
https://book.douban.com/subject/1446778/ J2ME游戲編程(2005年) ?
-
http://blog.csdn.net/a627088424/article/details/10955411 Jazelle DBX—— 來(lái)自ARM的Java加速技術(shù) ?
-
https://www.arm.com/zh/products/processors/classic/arm9/index.php ?
-
https://wenku.baidu.com/view/d103398b84868762caaed57b.html MTK平臺(tái)發(fā)展及各芯片功能介紹 ?
-
http://www.anandtech.com/show/2493 Intel's Atom Architecture: The Journey Begins ?
-
https://seekingalpha.com/article/225279-mips-technology-challenges-arms-cell-phone-chip-design-monopoly ?
-
http://elinux.org/images/0/02/Android_Platform_Optimizations_SNPS_20111027.pdf ?
-
https://boingboing.net/2016/06/15/intel-x86-processors-ship-with.html ?
-
http://ime.cas.cn/xwzt/ynxx/201107/t20110705_3301612.html 基于君正處理器的MIPS智能手機(jī)通過(guò)Android兼容性測(cè)試(CTS) ?
-
http://semiaccurate.com/2011/06/02/tablets-to-benefit-from-3-new-chinese-mips-cores/ ?
-
http://tech.ifeng.com/digi/mp3/detail_2011_12/13/11293250_0.shtml Google首發(fā)4.0平板背后 解密君正JZ4770 ?
-
http://wangying1.spaces.eepw.com.cn/articles/article/item/90285 君正為何能第一個(gè)發(fā)布Android 4.0平板電腦 ?
-
http://www.eeworld.com.cn/qrs/2011/1206/article_7822.html MIPS與君正共同發(fā)布Android? 4.0平板電腦 ?
-
https://www.arm.com/zh/about/newsroom/25922.php ARM Announces 2GHz Capable Cortex-A9 Dual Core Processor Implementation ?
-
http://www.eetimes.com/document.asp?doc_id=1257839 Marvell quad-core ARM targets x86 servers ?
-
http://www.datacenterknowledge.com/archives/2013/02/28/baidu-deploys-marvell-arm-based-server/ ?
-
http://www.datacenterdynamics.com/news/breaking-arm-server-startup-calxeda-shutting-down/84369.fullarticle ?
-
http://www.anandtech.com/show/8362/amds-big-bet-on-arm-powered-servers-a1100-revealed ?
-
http://www.anandtech.com/show/7724/it-begins-amd-announces-its-first-arm-based-server-soc-64bit8core-opteron-a1100 ?
-
http://www.anandtech.com/show/9170/amd-exits-dense-microserver-business-ends-seamicro-brand ?
-
https://en.wikipedia.org/wiki/Applied_Micro_Circuits_Corporation ?
-
https://www.nextplatform.com/2017/02/01/arm-server-chips-challenge-x86-cloud ?
-
https://www.nextplatform.com/2016/06/03/next-generation-thunderx2-arm-targets-skylake-xeons ?
-
http://www.pcworld.com/article/2990868/qualcomm-enters-server-cpu-market-with-24-core-arm-chip.html ?
-
http://gadgets.ndtv.com/internet/news/microsoft-partners-qualcomm-to-bring-arm-chip-support-to-windows-server-os-1668009 ?
-
https://www.ithome.com/html/it/201496.htm 高通與貴州省合資成立華芯通公司:將開(kāi)發(fā)服務(wù)器芯片 ?
-
http://finance.sina.com.cn/roll/2016-08-23/doc-ifxvctcc8331404.shtml 國(guó)產(chǎn)飛騰最新產(chǎn)品亮相美國(guó)Hotchips-28,引業(yè)界強(qiáng)烈關(guān)注 ?
-
http://www.anandtech.com/show/8776/arm-challinging-intel-in-the-server-market-an-overview ?
-
http://www.zixuntop.com/461/14803.html 16核!華為ARM服務(wù)器芯片代號(hào)“泰山” ?
-
http://tech.163.com/17/0530/17/CLMTVMHG00097U80.html ARM瘋搶Intel服務(wù)器市場(chǎng):2021年要拿下25% ?
-
https://www.forbes.com/sites/moorinsights/2016/05/23/a-cache-coherent-interconnect-for-accelerators-ccix-fantasy-or-nirvana/#6548496e7484 ?
-
http://phoronix.com/scan.php?page=news_item&px=Linux-4.6-MPK-PKeys ?
-
http://www.codinghorror.com/blog/2007/07/the-principle-of-least-power.html ?
-
http://blog.jobbole.com/48296/ 深入理解Atwood定律 ?
-
https://microsoft.github.io/reactxp/blog/2017/04/06/introducing-reactxp.html ?
-
https://www.engadget.com/2017/07/03/microsofts-cloud-focus-could-mean-yet-more-layoffs ?
-
http://www.cyone.com.cn/Article/Article_17541.html 求伯君退出金山:軟件業(yè)一個(gè)時(shí)代的終結(jié) ?
-
https://book.douban.com/subject/1139244/ 豆瓣讀書(shū)《編程高手箴言》 ?
-
http://www.macworld.com/article/3163248/ios/the-future-of-ios-is-64-bit-only-apple-to-stop-support-of-32-bit-apps.html The future of iOS is 64-bit only: Apple to stop support of 32-bit apps ?
-
https://venturebeat.com/2017/05/02/microsoft-unveils-windows-10-s-an-education-edition-limited-to-windows-store-apps/ ?
-
https://www.infoworld.com/article/3269011/java/whats-new-in-oracles-graalvm-multilanguage-virtual-machine.html ?
-
http://cn.engadget.com/2011/05/25/nvidia-project-denver-can-hardware-emulate-x86 ?