從Intel和ARM雙雄爭(zhēng)霸讀懂芯片的前世今生
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)有多么高的期望。
本文引用地址:http://www.ex-cimer.com/article/201804/378885.htmNewton平臺(tái)的第一款產(chǎn)品MessagePad于1993年8月上市了,采用32位ARM610處理器,頻率為20MHz,屏幕大小為336×240,重量410克,采用4節(jié)7號(hào)電池供電,售價(jià)699美元(相當(dāng)于今天的1129美元)??上У氖牵N(xiāo)量很差,上市頭四個(gè)月的銷(xiāo)量不過(guò)5萬(wàn)臺(tái)。
1998年,中國(guó)的恒基偉業(yè)公司推出了一款叫做 “商務(wù)通”的產(chǎn)品,像極了Newton Messagepad。它采用Dragonball處理器,主頻僅16MHz,屏幕大小10漢字x10漢字,重量105克,采用2節(jié)5號(hào)電池供電,售價(jià)人民幣1988元。靠著“呼機(jī)手機(jī)商務(wù)通,一個(gè)也不能少”的廣告,商務(wù)通在1999年大賣(mài)100萬(wàn)臺(tái)。雖然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)就是“連筆王”,對(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,之后基于源代碼的芯片自動(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的訂單,于是成功盈利了。員工數(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處理器。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ì)手。不但Moto自己的手機(jī)用它,Palm、三星、Sony的手機(jī)也用它。當(dāng)然還有前文提到的商務(wù)通。ARM相對(duì)于Dragonball處理器有什么優(yōu)勢(shì)?我認(rèn)為最大的優(yōu)勢(shì)是從客戶(hù)需求出發(fā)的、持續(xù)的創(chuàng)新;其次是ARM的開(kāi)放的商業(yè)模式。
RISC指令集一般都采用32位定長(zhǎng)指令,代碼密度比起x86之類(lèi)的CISC來(lái)要差一些,但手機(jī)的存儲(chǔ)空間有限,對(duì)代碼密度的要求高。1994年,ARM為此專(zhuān)門(mén)研發(fā)了16位的指令集Thumb,以及支持這一指令集的ARM7TDMI。
開(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的需求。
1997年,Nokia推出了一代經(jīng)典6110,它采用TI的芯片,處理器核心是ARM7TDMI。6110是Nokia第一款帶紅外接口的手機(jī),第一次內(nèi)置了經(jīng)典的貪吃蛇游戲,它的界面成為了之后Nokia手機(jī)的標(biāo)準(zhǔn)。從此,Nokia和ARM成為了好基友,Nokia的Symbian操作系統(tǒng),一直都建立在ARM架構(gòu)的基礎(chǔ)上。
1998年,趁著6110大紅大紫的東風(fēng),ARM在Nasdaq上市了。同一年,SGI公司看到處理器IP授權(quán)生意有利可圖,把MIPS部門(mén)拆分出來(lái),次年MIPS推出了它第一款可授權(quán)的處理器設(shè)計(jì)M4K。此后的十年里,MIPS一直都是ARM有力的競(jìng)爭(zhēng)對(duì)手。
商務(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)。
綻放
經(jīng)過(guò)多年的深耕,ARM在新世紀(jì)開(kāi)始時(shí),已經(jīng)是手機(jī)領(lǐng)域里的王者,依然在為客戶(hù)的需求做著持續(xù)的創(chuàng)新,Java加速技術(shù)就是一個(gè)典型的例子。
從2000年開(kāi)始,功能手機(jī)的性能提升到了足夠高的水平,人們希望在手機(jī)上玩比較復(fù)雜的游戲,而不僅僅是貪吃蛇。但是手機(jī)的處理器和操作系統(tǒng)實(shí)在是太分散了,為了方便游戲跑在不同手機(jī)上,J2ME平臺(tái)應(yīng)運(yùn)而生。從原理上講,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)。這一功能大受歡迎,幫助ARM9系列成為了迄今最受歡迎的ARM處理器,總共有250多個(gè)授權(quán)廠家,其中100多個(gè)授權(quán)的是ARM926EJ-S。
在MTK助推山寨功能機(jī)火遍神州的那幾年,主控芯片所使用的核全部都是ARM9。在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芯片誕生了。
高性能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),也不利于用戶(hù)體驗(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))的專(zhuān)利,同時(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è)。
只可惜MIPS公司太不給力,一直也沒(méi)有搞定靠譜的MIPS版Android。等到2011年1月,Synopsys公司給自家的ARC處理器移植好Dalvik虛擬機(jī)和瀏覽器用的V8虛擬機(jī)、Android環(huán)境已完備的時(shí)候,MIPS都還沒(méi)動(dòng)靜。順便說(shuō)一句,Intel曾經(jīng)的南橋芯片里都有ARC處理器,它是Active Management Technology(AMT)的重要基石。
這個(gè)時(shí)候,北京的君正公司坐不住了。君正靠做低成本的MP4播放器起家,2011年5月在創(chuàng)業(yè)板上市。君正擁有MIPS的架構(gòu)級(jí)授權(quán),對(duì)自己研發(fā)的XBurst處理器非常自信,準(zhǔn)備靠它進(jìn)攻手機(jī)和平板市場(chǎng)。2011年7月,基于君正JZ4760的MIPS智能手機(jī)通過(guò)Android兼容性測(cè)試。2011年12月,基于君正JZ4770平臺(tái)的平板電腦,被谷歌選為Android4.0的首發(fā)產(chǎn)品,一時(shí)風(fēng)光無(wú)限。
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支持,總之用戶(hù)體驗(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,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)域。
評(píng)論