綜合整理自:新智元、經濟參考報、EETOP
做芯片很難,做核心芯片更難,做需要生態系統的CPU芯片,比大家想象得都要難!沒有建設成一個好的生態,再好的CPU也要失敗!
接下來我們回顧一下X86、Arm生態系統是如何建成,進而統治了世界的。同時我們也會對我國CPU生態系統現狀做一個分析。
x86生態系統
如今Intel在服務器市場占有率近乎100%,在桌面市場也大于80%,再加上Intel一貫重視宣傳,在普通大衆的心目中,Intel就是芯片的代稱,甚至是高科技的代稱。但Intel並非生而如此,它的牛X千真萬確是熬出來的,是在列強環伺的競爭環境中殺出來的。
七十年代,在搭上IBM PC這趟快車之前,Intel的8位處理器已經很成功,但也有很多競爭者,Zilog是其中翹楚,它研發的Z80系列産品和Intel的8080兼容,性價比高。一直到90年代,中國很多大學的微機實驗課,還在用Zilog的板子。當時還有一款處理器風頭不遜于8080系列,即MOS公司的6502。後來MOS把6502的ISA(指令集架構)授權給了衆多廠商,流傳甚廣。70年代蘋果創立之初的Apple-I和Apple-II,80年代任天堂的紅白機,90年代初的小霸王學習機,90年代末的文曲星,都使用了6502系列的CPU。
IBM PC給了Intel和微軟大發展的機會。但它倆必須面對競爭。IBM PC是IBM主導下的一個開放標准,各個零部件都是可以替換的。所以才有了“兼容機”的概念,和延續至今的裝機市場。當時IBM要求Intel必須把x86指令集授權給其它廠商,避免CPU供應商一家獨大。(詳細的x86兼容處理器生産廠家列表見https://en.wikipedia.org/wiki/List_of_x86_manufacturers)IBM自己也有生成x86兼容CPU的權力。同時,爲了限制微軟的MS-DOS,IBM自己也做DOS操作系統,名爲PC-DOS。
在IBM PC陣營內部,Intel面對其它CPU供應商的競爭,在陣營外部,還要和蘋果的Macintosh電腦競爭。當時蘋果已經換用Motorola 68000系列CPU,性能強勁,圖形界面誘人。當時用Mac的人,逼格要高于用IBM PC的人。
Intel頂著陣營內外的競爭壓力,苦心孤詣地發展壯大。這時候潛在的威脅在慢慢醞釀。從1981年的RISC-I開始,精簡指令集(RISC)逐步流行起來,誕生了一系列RISC風格的CPU:1985年MIPS公司推出第一款商用的RISC芯片,HP公司在1986年推出PA-RISC,SUN公司在1987年推出SPARC,Motorola在1988年推出MC88000。當時大家普遍認爲RISC優于以x86爲代表的CISC風格CPU,就連Intel和AMD也害怕在RISC潮流中落伍,AMD在1987年推出了AM29000,Intel在1988年推出了i860/i960。
開始時RISC似乎並沒有威脅到桌面市場,MIPS、PA-RISC、SPARC全是用來做服務器和工作站的。被蘋果流放的喬布斯用MC88000系列CPU做NeXT桌面電腦,铩羽而歸。1986年,英國的Acorn公司推出了一款名爲ARM的RISC處理器,次年,它還配了個操作系統叫RISC OS,強攻桌面市場,可惜最終只在英國掀起來了一些波瀾。
1991年,RISC陣營實實在在地殺入桌面市場。這一年,IBM看到在PC陣營裏,Intel和微軟這兩個小弟坐大,慢慢不受自己的控制,索性拉攏Apple和在RISC市場不得志的Motorola,推出了PowerPC架構,由IBM和Motorola生産芯片,Apple做操作系統和整機,推出全新的Power Macintosh電腦。這三家組成了AIM(Apple-IBM-Motorola)聯盟,氣勢洶洶地向Wintel聯盟發起攻擊。
結果是Wintel贏了,個中原因衆說紛纭。有人說Wintel保持對已有軟件的向下兼容,而Apple頻繁更換底層的CPU,導致的不兼容氣走了用戶,然後由此強調軟件生態的重要。我則以爲,曆史的發展有一定的偶然性,如果當時Wintel不是比爾蓋茨和格魯夫在掌舵,而Apple是喬布斯在掌舵,可能結局完全不同。2005年,喬布斯掌舵下的蘋果,把Mac裏面的CPU由PowerPC換成Intel的芯片,就完成得幹脆利落,沒怎麽受到軟件生態的牽絆。
總之,在80年代,大家就已經深深懂得CPU的ISA是軟件生態系統的根基,不願讓這個“生態之根”被別人控制。整機和系統的制造商,通過強制CPU廠商給其它廠商授權自己的ISA,來保證有第二家甚至更多的供應商。如果不慎“生態之根”被別人控制了,例如IBM被Wintel篡了權,甚至不惜另起爐竈來競爭。
ARM生態系統
近幾年ARM風光無限,搶新聞頭條的能力不遜于Intel。
在很多圈外人看來,這家高科技公司好像是在移動互聯網時代新冒出來的,但其實它的曆史和幾乎和80286一樣古老。而且它自誕生以來,就以移動(portable)設備爲自己首要的目標市場。它等待一飛沖天的風口,等待了二十年。
發端
前文提到,ARM是Acorn電腦公司創造的。
Acorn電腦公司創立于1978年,在80年代初,它用6502系列CPU制造的BBC Micro電腦在英國大獲成功。6502的性能慢慢跟不上時代了,Acorn想基于80286開發新的電腦,但是Intel連樣片都不給——要是Intel大方些,ARM或許根本就不會誕生。
Acorn一氣之下開發了ARM(Acorn RISC Machine),這是世界上第一款定位中低端(而非服務器)RISC處理器。1985年,ARM1誕生(但從未被商用),後來Acorn在1986年和1990年分別推出了ARM2和ARM3,1987年推出了RISC OS和桌面電腦Archimedes。它在英國的教育市場獲得了一定的成功,但1990年之後,很快被Wintel的生態擊敗了。
1990年前後,研發掌上電腦成爲一股風潮。當時有家叫做Active Book的公司,拿ARM2處理器開發一個叫做Personal Communicator的産品。可惜産品上市前,Active Book被AT&T收購了,AT&T把ARM2換成了自家的Hobbit處理器。
幸好東方不亮西方亮,當時的蘋果公司看好ARM,把自己研發的Newton平台中的處理器,由AT&T的Hobbit,換成了ARM。這個“彼此互換”的故事聽起來讓人頭大,大家只需要記住,ARM的第一顆商用處理器ARM2,就曾被嘗試拿來做手持的電腦。
ARM的東家是Acorn,和蘋果在電腦市場上有競爭。蘋果公司花了6周時間說服Acorn把ARM獨立出來運營。1990年11月27日,合資公司ARM正式成立,蘋果、Acorn和VLSI分別出資150萬、150萬、25萬英鎊,Acorn把ARM處理器相關的知識産權和12名員工放在了新成立的公司裏。此後,ARM的縮寫被轉而解釋爲Advanced RISC Machine。
爲了節省成本,新公司在劍橋附近租了一間谷倉作爲辦公室,全力爲蘋果的Newton研發ARM6處理器(4和5這兩個編號被跳過去了)。
Newton(牛頓)是蘋果花大力氣研發的觸屏移動技術平台,Newton OS是不同于Mac OS的操作系統(如同後來的iOS)。如果你聽過蘋果、牛頓和萬有引力的故事,應該能體會蘋果公司對Newton平台有多麽高的期望。
Newton平台的第一款産品MessagePad于1993年8月上市了,采用32位ARM610處理器,頻率爲20MHz,屏幕大小爲336×240,重量410克,采用4節7號電池供電,售價699美元(相當于今天的1129美元)。可惜的是,它銷量很差,上市頭四個月的銷量不過5萬台。
深耕
1990年ARM創立之初,給自己定下的使命是“設計有競爭力的、低功耗、高性能、低成本的處理器,並且使它們成爲目標市場中廣爲接受的標准”,目標市場包括:手持設備(Portable),嵌入式(Embedded Control)和汽車電子(Automotive)。跨越近三十年,這個使命和市場定位始終未變,直到今天。
而且,根據我了解到的知識,ARM是處理器的源代碼授權這一商業模式的開創者。如今,芯片設計從Verilog等源代碼出發,經過一系列自動化或半自動化的優化步驟,最終形成工廠制造芯片所需要的版圖文件;整個過程類似軟件從源代碼被編譯爲CPU的機器碼。但在80年代,芯片的設計自動化非常原始。七八十年代的處理器授權,都是指令集的授權。Synopsys公司于1986年成立,1987年推出把Verilog編譯爲門級網表的DesignCompiler,之後基于源代碼的芯片自動化設計流程才慢慢地被建立起來。于是源代碼授權才成爲技術上可行的模式。
ARM從未自己生産過商用的芯片。它只是將自己研發的處理器的源代碼的知識産權(IP)授權給芯片廠商,由它們推出最終芯片。受益于這一商業模式,盡管在1993年,Apple的Newton失敗了,但ARM並未因爲設備賣不出去而虧錢,還幸運地拿到了TI的訂單,于是成功盈利了。員工數量也由12人增長到了42人。次年ARM又拿到了三星的訂單,員工增長到70多人,搬出了谷倉。
除了源代碼授權的模式之外,ARM也做指令集授權,1995年,ARM把指令集授權給DEC,DEC很快設計出了性能更好的StrongARM處理器。1997年,StrongARM産品線被賣給Intel,更名爲XScale。
1995年,Motorola在香港的研發團隊基于MC68000指令集開發出了針對手持設備的DragonBall處理器,在這之後的十年,DragonBall處理器一直都是ARM強大的競爭對手。不但Moto自己的手機用它,Palm、三星、Sony的手機也用它。當然還有前文提到的商務通。ARM相對于Dragonball處理器有什麽優勢?我認爲最大的優勢是從客戶需求出發的、持續的創新;其次是ARM的開放的商業模式。
RISC指令集一般都采用32位定長指令,代碼密度比起x86之類的CISC來要差一些,但手機的存儲空間有限,對代碼密度的要求高。1994年,ARM爲此專門研發了16位的指令集Thumb,以及支持這一指令集的ARM7TDMI。
開放授權的商業模式,使得整機廠在選擇芯片時,可以找到支持同一指令集的多種芯片産品,不容易被綁架。Nokia作爲和Motolora旗鼓相當的手機制造商,肯定不會選擇競爭對手的Dragonball,而ARM的技術實力和商業模式,正好符合Nokia的需求。
1997年,Nokia推出了一代經典6110,它采用TI的芯片,處理器核心是ARM7TDMI。6110是Nokia第一款帶紅外接口的手機,第一次內置了經典的貪吃蛇遊戲,它的界面成爲了之後Nokia手機的標准。從此,Nokia和ARM成爲了好基友,Nokia的Symbian操作系統,一直都建立在ARM架構的基礎上。
1998年,趁著6110大紅大紫的東風,ARM在Nasdaq上市了。同一年,SGI公司看到處理器IP授權生意有利可圖,把MIPS部門拆分出來,次年MIPS推出了它第一款可授權的處理器設計M4K。此後的十年裏,MIPS一直都是ARM有力的競爭對手。
商務通在中國流行的那幾年,國際市場上流行性能更高的掌上電腦和智能手機,操作系統包括Palm OS、微軟的WinCE、Nokia的Symbian、RIM的Blackberry OS,Motorola的Wisdom OS。在這個領域裏,ARM陣營中負責高性能的XScale大放異彩,暴擊Dragonball。當Dragonball的頻率還停留在33MHz/66MHz時,Xscale已經飙到了200~400MHz。MC68000指令集在手持設備領域敗走。Palm OS的1.0~4.0都是基于MC68000指令集的,5.0就換成了ARM。後來Motorola的半導體部門Freescale幹脆推出了基于ARM核的iMX系列産品,替代Dragonball産品線。
蘋果作爲掌上電腦的先行者,卻在這次浪潮裏無所作爲,在Wintel的擠壓下,它的桌面業務都已經瀕臨絕境,無暇顧及其它市場了。1997年,不溫不火的Newton從蘋果公司獨立了出來。當喬布斯回歸蘋果之後,又火速把Newton收編了回來,並且幹淨利落地停掉了Newton産品線——喬幫主只想要Newton手裏的ARM股份。1998年到2003年,蘋果通過出售ARM的股票獲利11億美元。這筆錢,是喬布斯複興戰略的重要燃料,可以說是蘋果的救命錢。
綻放
經過多年的深耕,ARM在新世紀開始時,已經是手機領域裏的王者,依然在爲客戶的需求做著持續的創新,Java加速技術就是一個典型的例子。
從2000年開始,功能手機的性能提升到了足夠高的水平,人們希望在手機上玩比較複雜的遊戲,而不僅僅是貪吃蛇。但是手機的處理器和操作系統實在是太分散了,爲了方便遊戲跑在不同手機上,J2ME平台應運而生。從原理上講,J2ME和Applet並無不同,都是基于JVM的。Java在並不分散的桌面領域沒有獲得成功,但在分散的手機領域獲得了成功。
J2ME的遊戲越做越複雜,但手機的處理能力畢竟有限,桌面和服務器上的JIT編譯器在手機上跑得太吃力了。于是ARM在2001年推出了ARM926EJ-S處理器,它支持Jazelle DBX技術,可以直接解碼和執行Java的字節碼,省掉了JIT編譯器的負擔。這一功能大受歡迎,幫助ARM9系列成爲了迄今最受歡迎的ARM處理器,總共有250多個授權廠家,其中100多個授權的是ARM926EJ-S。
在MTK助推山寨功能機火遍神州的那幾年,主控芯片所使用的核全部都是ARM9。在iOS和安卓的應用商店誕生之前,功能手機全靠J2ME開發的應用來實現各種炫酷的功能。從某種意義上講,在低端市場上,Jazelle是助力山寨機火爆的最大幕後功臣。
然而高性能ARM芯片的扛把子XScale,卻被Intel于2006年6月賣給了Marvell。這是Intel實施x86-everywhere戰略的一個步驟。Intel希望x86的生態也能進入到低功耗的移動領域,而不是用自己先進的工藝制程和設計能力幫ARM建設高端應用的生態。22個月之後,2008年4月,低功耗的Atom芯片誕生了。
高性能ARM芯片的扛把子換成了蘋果。2004年,在賣光ARM股票的一年之後,喬布斯決定研發iPhone。2007年1月,在Intel放棄ARM之後僅半年,iPhone誕生了。蘋果可不會采用低端市場上死守ARM9那種玩法,iPhone一代就采用了400MHz的ARM11;2009年的iPhone 3GS,升級爲600MHz的Cortex A8;2010年的iPhone4,蘋果自研的A4芯片升級爲1GHz的Cortex A8。接下來蘋果自研芯片性能一路狂飙的曆程,大家都很熟悉了。
從ARM6到ARM11,這些IP核都是按照兼顧移動設備、汽車電子和嵌入式這三個市場的思路來設計的。從2003年起,ARM把産品線有針對性地劃分爲A、R、M三個系列,分別對應上述三個市場,而且IP核的名字都統一加上了Cortex的前綴。Cortex A8就是A系列的第一個作品。iPhone 3GS和iPhone4令Cortex A8大火,但讓ARM一飛沖天的推手,卻是iPhone的競爭對手——安卓(Android)。
有很多文章介紹安卓如何誕生,如何在移動設備領域幹掉了除iOS之外的全部對手,毋須贅述。這裏只想強調一個被普遍忽略的事實:安卓從誕生之初,就要求應用程序采用Java編寫,並且跑在Dalvik虛擬機上;但iPhone上的應用,都是原生的ARM程序。要知道Android手機的處理器性能相對iPhone並無優勢。
山寨之王MTK于2009年2月推出的首款智能手機芯片MT6516,采用406MHz的ARM9;2008年~2010年間由HTC推出的那幾款賣得很好的Android手機,也無非是ARM11和Cortex A8的核,幾百兆的頻率,這種級別的處理器跑虛擬機還是蠻吃力的。另外虛擬機占用內存大的缺點,也不利于用戶體驗和降低成本。
谷歌甯可冒著讓安卓出師不利的風險,也要推廣Dalvik虛擬機。這是爲什麽?谷歌內部的決策過程我們無從得知。一個合理的猜測是,谷歌不願看到手機領域裏ARM一家獨大,它希望給MIPS、x86等其它CPU一個機會。J2ME的成功,讓谷歌看到完全建立在虛擬機上的手機應用生態,是完全可能的。
Dalvik虛擬機可以跑Java,但並不采用JVM那種基于堆棧的字節碼,而是改用一種基于寄存器的方案。這麽做當然是爲了規避SUN公司(後被Oracle收購)的專利,同時也讓無法直接運行JVM字節碼的MIPS、x86能夠實現輕量級的JIT編譯器,無須Jazelle這樣的技術。從另外一個角度講,MIPS在電視、機頂盒、遊戲機市場上占優,x86在桌面市場近乎壟斷,支持它們,也意味著安卓有可能進軍電視和桌面。
安卓對所有CPU而言,都是巨大的機會,誰抓住了這個機會,就可以一舉改變競爭格局,實現霸業。
只可惜MIPS公司太不給力,一直也沒有搞定靠譜的MIPS版Android。等到2011年1月,Synopsys公司給自家的ARC處理器移植好Dalvik虛擬機和浏覽器用的V8虛擬機、Android環境已完備的時候,MIPS都還沒動靜。順便說一句,Intel曾經的南橋芯片裏都有ARC處理器,它是Active Management Technology(AMT)的重要基石。
對于MIPS而言,還有一個壞消息是,在它們的強力助推下,電視盒子市場也成了ARM的天下。經營不善的MIPS于2012年賣給了Imagination,Imagination不但沒能依靠MIPS在CPU市場中有所作爲,反而在GPU市場裏也敗給了ARM,在2017年被迫整體賣身,MIPS業務賣回給了硅谷公司。
2012~2016年,Intel在安卓市場上挑戰ARM,也失敗了。于是安卓給CPU帶來的紅利,全部被ARM吃掉了。隨著手機越來越重要,ARM也越來越重要,它所推出的最新的Cortex A系列處理器,被手機芯片爭相采用。ARM生態也越來越強大,它的觸角,慢慢伸出了手機領域。
滲透
2011年1月,微軟在CES宣布要爲ARM架構開發Windows 8 RT操作系統。在2012年年底,幾乎和Intel芯手機上市的同時,包括微軟自家的Surface RT在內的一大批二合一平板設備上市了。Windows 8 RT不支持所有之前爲x86平台開發的應用程序,這成爲它最大的軟肋,相關的産品慢慢銷聲匿迹了。ARM滲透桌面市場的第一次嘗試失敗了。
最近微軟和高通所推出的ARM芯的Windows 10,吸取了教訓,用Eumlation的機制來支持舊有的x86桌面程序。這次嘗試能否成功,我們拭目以待。
2009年,ARM推出了Cortex A9處理器,並且用40nm的工藝制造了雙核的樣片,跑到了2GHz。這是ARM第一次推出亂序超標量的處理器核,而亂序超標量是Intel實現高性能的關鍵技術,這是非常振奮人心的消息。2010年,Marvell推出了1.6GHz的4核A9的服務器芯片Armada XP。2013年,這款芯片被部署在百度的存儲服務器上,這是ARM服務器第一次大規模商用。但Marvell並未繼續推出新的服務器芯片。2011年,一家創業公司Calxeda采用Cortex A9,推出了共有480個CPU核的ARM服務器。但它的成就還不如Armada XP,2013年公司就倒閉了。
2012年,AMD收購了一家做高密度服務器的廠商SeaMicro,准備把它所采用的CPU核由Intel的Atom換成ARM架構的CPU。但直到2014年AMD才推出8核Cortex A57的服務器芯片Opteron A1100,之後從來也沒有認真賣過它。2015年AMD就放棄了SeaMicro這個子品牌,不再做高密度服務器了。
ARM進攻服務器市場的第一次嘗試失敗了。Marvell和Calxeda都采用的是32位的ARM核,先天不足;AMD則三心二意,畢竟自己還有x86 Server的生意。另外服務器市場對于單核單線程的運算能力也有很高的要求,僅僅有低功耗和高通量(high throughput)是不夠的。
在ARMv8這一64位指令集發布之後,Cavium和AppliedMicro這兩家老牌網絡芯片廠商不約而同地將自己原先芯片中的架構換成了ARMv8。因爲産品的需要,Cavium和AppliedMicro都有自行設計處理器微架構的能力,前者做MIPS處理器,後者做PowerPC處理器。它們兩家做ARMv8處理器時,也都采用了只授權指令集,微架構自研的模式。Cavium共推出過兩代基于ARM的産品(2014、2016年),AppliedMicro推出過三代(2013、2015、2017年)。隨著産品性能逐漸接近Intel的Xeon E5,它們漸漸不再滿足于原先的網絡領域,開始觊觎服務器市場。(x86生態系統、arm生態系統這兩部分內容節選自 作者:torvaldsing 的相關文章。)
國內CPU生態系統建設現狀
在2019年收官之際,飛騰、龍芯兩大國産芯片巨頭相繼組織規模宏大的年會。
在龍芯以“新時代、芯生態”爲主題的年會和飛騰以“同心築生態、前路共飛騰”爲主題的這兩場千人大會上,與會嘉賓一致認爲,CPU是産業生態的根本,必須解決芯片等核心技術受制于人的問題。同時,産業生態的構建創新和合作夥伴的新品亮相,一並成爲兩大會議的亮點和主題詞。
龍芯:堅持“建立自主IT産業生態”目標
2019年12月24日,龍芯中科技術有限公司重磅發布龍芯新一代通用CPU産品3A4000/3B4000。當天,在以“新時代、芯生態”爲主題的2019龍芯新産品發布暨用戶大會上,包括龍芯合作夥伴、專家學者和主管部門領導等在內的4000余人見證了龍芯新産品發布。
龍芯中科技術有限公司董事長胡偉武表示,通過在市場中“試錯”,龍芯團隊認識到,我國CPU與國外CPU的主要差距,在于通用處理性能,而不是專用處理性能;在于單核性能不足,而不是核數不夠多;在于設計能力不足,而不是工藝不夠先進。因此,龍芯中科公司一直致力于通過優化設計,提高單核通用處理性能,直到3A4000完成設計能力“補課”。在此基礎上,龍芯公司將在兩年左右推出使用12nm工藝的四核3A5000和16核3C5000,其主頻將提高到2.5GHz以上,通用處理性能將達到當時AMD的水平,這標志著龍芯經過20年的努力,通用處理性能達到世界先進水平。
龍芯中科內部報告稱,公司設立“建立自主IT産業生態”的目標,並爲之奮鬥。IT産業是“解決方案爲王”的産業,CPU的價值在于其承載生態,以CPU爲基礎建立自主生態,符合産業發展規律,也爲龍芯開創了廣闊的發展空間。
胡偉武指出,我國信息産業的根本出路,在于建立獨立于Wintel和ARM+Android體系外的第三套生態體系。爲此,龍芯提供開源的基礎版操作系統,支持下遊的操作系統企業、整機設備企業、解決方案企業推出産品版操作系統。龍芯通過基礎版操作系統統一系統架構,實現操作系統跨主板兼容和CPU代際兼容,實現應用在不同整機平台的兼容。
據龍芯中科副總裁張戈透露,龍芯的合作夥伴已經增至近千家,下遊基于龍芯的開發人員達到數萬人,在政企、安全、金融、能源、交通、教育等各個應用場景中都有了應用。2019年龍芯芯片出貨量已經達到50萬顆以上。
飛騰:走“産業生態開放聯合”發展道路
在此前的2019年12月19日,首屆飛騰生態夥伴大會召開。大會吸引了500余家飛騰合作夥伴單位,包括兩院院士、業內專家、政府主管部門、行業協會、用戶單位、軟硬件廠商、系統集成商和金融機構等來自全國各地的代表共計2000余人參加。飛騰于大會現場重磅發布飛騰安全平台架構標准PSPA,以及多款基于飛騰CPU的計算機和網絡安全産品。