新聞中心

        EEPW首頁 > 嵌入式系統 > 業界動態 > 從Intel和ARM雙雄爭霸讀懂芯片的前世今生

        從Intel和ARM雙雄爭霸讀懂芯片的前世今生

        作者: 時間:2018-04-24 來源:新智元 收藏
        編者按:做芯片很難,做核心芯片更難,做需要生態系統的CPU芯片,比大家想象得都要難;當年,繞得過Intel,跨不過微軟。如今,繞得過Arm,做不出安卓,“生態之根”已被控制。

          滲透

        本文引用地址:http://www.104case.com/article/201804/378885.htm

          2011年1月,微軟在CES宣布要為架構開發Windows 8 RT操作系統。在2012年年底,幾乎和芯手機上市的同時,包括微軟自家的Surface RT在內的一大批二合一平板設備上市了。Windows 8 RT不支持所有之前為x86平臺開發的應用程序,這成為它最大的軟肋,相關的產品慢慢銷聲匿跡了。滲透桌面市場的第一次嘗試失敗了。

          最近微軟和高通所推出的芯的Windows 10,吸取了教訓,用Eumlation的機制來支持舊有的x86桌面程序。這次嘗試能否成功,我們拭目以待。

          2009年,ARM推出了Cortex A9處理器,并且用40nm的工藝制造了雙核的樣片,跑到了2GHz。這是ARM第一次推出亂序超標量的處理器核,而亂序超標量是實現高性能的關鍵技術,這是非常振奮人心的消息。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核由的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,它們漸漸不再滿足于原先的網絡領域,開始覬覦服務器市場。

          最讓人期待的還是高通的Centriq芯片,2015年年底量產24核版本,2016年年底量產升級48核版本,還得到了微軟的強力支持。考慮到高通還和貴州成立了合資公司華芯通,Centriq很可能成為在國內大規模商用的第一款ARM服務器芯片。

          另外具有國防背景的天津飛騰公司,也有ARM服務器芯片的產品,只是不知道這些產品何時能在通用市場上鋪貨。

          其他確定在研發ARM Server芯片的大廠還包括Broadcom和華為,進度上要略慢一些。

          ARM陣營對服務器發起的第二波沖擊,陣容要強大得多豪華得多。因此ARM才敢于宣稱,在2021年拿下25%的服務器市場份額。

          要做好Server CPU,ARM架構還有些功課要一點一點補。多Socket服務器所需要的一致性協議,業界剛剛取得共識準備采用CCIX,但還沒有具體的產品出來。做云端虛擬機所必備的虛擬化支持,ARM還有些性能問題。x86處理器提升Throughput的利器超線程技術,ARM陣營尚不能支持。Intel芯片近年來陸續增加的安全特性,也夠ARM追趕一陣子的。但目前看來,ARM已經沒有致命的短板,蠶食掉Intel的服務器市場份額是板上釘釘的事情,唯一的懸念是究竟多少份額?

          未來ISA將不那么重要

          從長遠看,半導體廠商對建立于ISA之上的生態系統的掌控力會變弱,而ISA本身,會變得越來越不重要。這是軟件技術發展的趨勢決定的,如前所述,這些技術在90年代末就已經初有小成了。

          第一是Web技術。網頁開發領域,有一個大家視若無睹的奇跡:最后居然只有Javascript一種開發語言屹立至今。要知道在服務器端和移動App領域,開發語言多如過江之卿。其中原因我也分析不出。反正js的挑戰者(微軟的VBScript和谷歌的Dart)都失敗了。網頁開發領域面臨的主要問題是瀏覽器差異大,API不太兼容。這個問題慢慢在緩解中,一來瀏覽器戰爭大局已定,Android和PC上的Chrome,以及iPhone和Mac上的safari是勝者;二來很多網頁應用是跑在App里面的,例如微信和支付寶里,這種場景下Javascript的API已經被特定廠商規范過了。

          由于開發語言和API的高度統一,H5(HTML5+Javascript)已經成了兼容所有硬件的最通用的軟件開發平臺。曾經有人鼓吹H5會趕走移動端和PC端的原生程序,后來被打臉了。但是移動端和PC端的原生App中,越來越多的界面是用H5生成的了,微信、支付寶、京東、淘寶、愛奇藝、有道詞典……統統都是這樣。

          Javascript吞噬一切的進程還在持續。2007年,Stack Overflow的聯合創始人Jeff Atwood曾經提出過一條Atwood定律:任何能夠用JavaScript實現的應用系統,最終都必將用JavaScript實現。十年過去了,此定律基本奏效。把Javascript的一個子集當作匯編語言的asm.js及其后續的WebAssembly,更加使得網頁應用有媲美原生應用的潛力,在瀏覽器里跑Unity3D的游戲都不是問題。

          獨立的應用程序仍然會是移動和桌面端的主流,因為沒有獨立程序,不方便做彈窗廣告,不方便啟動后臺進程收集用戶信息,不方便引誘用戶安裝其它獨立程序。但Web的能力的確在快速提升,Web Component技術實現了類似GUI庫的Widget復用,如今在瀏覽器里實現Office和IDE的功能都毫無問題(office365.com、docs.google.com、editor.construct.net、騰訊文檔);而WebGL已經能支持Unity3D這種大型游戲框架。

          照此趨勢發展下去,獨立應用程序僅僅會作為一個包裝而存在,開發者寫一套H5,加上不同的包裝,就成了PC、Mac、Android、iOS上的獨立應用程序,不加包裝,就是網站。微軟去年開源的ReactXP,就是為了實現這一目標。

          這意味著什么?不但底層的CPU被OTT了,操作系統也被OTT了。因為移植一個應用程序到各個平臺上,幾乎沒有什么難度。誰將是生態系統的掌控者?若干個超級App,像微信、QQ、支付寶這樣的。它們不但包裝自家的應用,其它開發者也可以把自己的應用放在這個包裝里面,借重超級App的廣泛覆蓋度,抵達最終用戶。前文提到了,如果微信小程序獲得成功,騰訊必然會重拾Q+的野心,把QQ變成桌面上各種H5應用的App Store。

          如果真的會這樣,微軟豈不是會比Intel還著急?拜托,微軟已經不是二十年前主要靠賣Windows和Office的光盤賺錢的那家公司了,未來它會專注于云計算。但Intel還和二十年前一樣在賣芯片。

          第二是編譯技術尤其是虛擬機的發展。如今的編程語言太多了,80年代那種搞定C語言編譯器就OK的好日子早已過去。任何一個新CPU架構要想在移動、桌面、服務器市場站穩腳跟,都得搞定無數的編譯器(包括虛擬機用的JIT編譯器),這是個壞消息。但好消息是,搞定這些編譯器基本就差不多了,不用勸說開發者重寫匯編代碼。

          老一代程序員對x86處理器架構和匯編都非常熟悉。求伯君當年開發WPS時,手寫幾十萬行匯編;雷軍讀本科時,是系里20多年來拿過《匯編語言程序設計》滿分成績的兩個學生之一;梁肇新開發超級解霸時,把MMX匯編玩得出神入化。感興趣的讀者可以看看梁的《編程高手箴言》,那里面,描繪了一個對現在的程序員而言,完全陌生的世界。在那個世界里,你開發的PC應用程序想要移植到Mac平臺上,幾乎要完全重寫。

          如今高層次的編程語言接管了一切,匯編語言從很多學校的本科課程里消失了,入門教材也從C改成了Java,甚至是Javascript或Python。程序員完全不熟悉底層的CPU。即使是真的需要拼性能的場合,編譯器也在很大程度上代替了手寫匯編。ARM的工程師告訴我說,ARM在開發開源的Compute Library過程中,主要依靠在C源碼中加入標注來指導編譯器生成SIMD指令,而不是像梁肇新那樣手寫。

          在這種情況下,軟件平臺廠商就變得非常強勢,因為他們知道,應用開發商只需付出重新編譯一遍的代價。比如蘋果,就要求所有的App都改為64位的。這樣,未來蘋果在手機CPU里放棄對32位應用的支持時,甚至都不會有人感覺得到。這對于x86生態系統而言,簡直是天方夜譚,顯然微軟對此非常眼饞,并且嘗試在Windows 10 S中復制這種掌控力。

          至于谷歌,Android把所有應用都跑在虛擬機上的嘗試雖然失敗了,但如果未來它再針對AR/VR、AI或機器人發布一個什么軟件平臺的話,就很有可能完全禁止原生程序。

          而Oracle,正在努力開發可以支持所有編程語言、能把所有CPU給OTT掉的全新VM:GraalVM。我們拭目以待。

          第三是Emulation技術的發展。雖然眼下ARM陣營中靠Emulation進攻Intel的先鋒是高通,但最可怕的選手其實是NVidia。NVidia擁有最厲害的Emulation技術,而且江湖傳言Denver處理器的初衷就是針對x86的。當初NVidia的Tegra處理器曾被拿來做Windows 8 RT的二合一平板。如今Denver處理器跑Windows 10絕不會讓人意外,那么它會怎么跑呢?肯定是直接在底層硬件上做x86的Emulation,而不是在Emulate出來的ARM指令集上再做一層Eumulation。

          Denver處理器前些年沒有跳出來搶Intel的飯碗,很大程度上是因為NVidia還在做Intel平臺的主板芯片組,另外NVidia還沒有那么強大。如今NVidia也不做芯片組生意了,還借AI的東風,股價扶搖直上。說不定哪天,NVidia就會放出Denver處理器的x86 Emulator,做到單線程性能不輸Xeon,強攻服務器市場。想想看,在單芯片上集成GPU和x86版的Denver,云計算廠商能不動心?

          如果未來Emulation技術進一步發展并且被越來越多的廠商掌握,很可能會出現這種情況:CPU本身是某種外界不了解的指令集,官方發布時,只能Emulate某種開放的指令集,例如RISCV;但是用戶可以給它安裝不同的Emulator,讓它變成x86-64處理器,或者ARM64處理器。在軟件定義一切的時代,這并不是多么瘋狂的想象。

          總之,CPU依然不可或缺,但CPU用誰家的,是什么指令集,會越來越不重要。軟件的發展,會在用戶和底層的CPU之間加入足夠大的緩沖帶,CPU的差異,越來越難以被用戶察覺到。

          展望:讓CPU不再難

          此文在最后修改之時,看到了梁寧的文章《一段關于國產芯片和操作系統的往事》,里面寫到:

          就像10多年前一樣,只要搞定知識產權問題,選擇技術路線,找會干的人,投入干,CPU/芯片就能夠做出來。搞不定的依然是操作系統。差距大的依然是生態。

          當年,繞得過Intel,跨不過微軟。如今,繞得過Arm,做不出安卓。

          我也曾在北大參與過國產CPU的研發,生態之難體會頗深,真的,只是燒錢做芯片,無論燒多少都無法挑戰Intel和ARM,何況過去二十年真的沒燒多少。

          但我并沒有梁寧那么悲觀,畢竟技術的潮流無法抗拒,借用馬化騰的一句名言“可能你什么錯都沒有,最后就是錯在自己太老了”。

          Intel和ARM如此強大而且極少犯錯,我們如此弱小就算它們犯錯也無法利用——但我們可以欺負它們的“老”。

          在此借新智元的寶地,向小馬哥呼吁一聲:

          請借助騰訊的強大生態,把CPU和OS這兩個老大難問題給OTT掉吧!

          做法非常簡單,把Q+桌面再重新搞起來,做一款完全使用Javascript&Webassembly編程的操作系統,里面用騰訊文檔來替代Office,各種微信小程序都支持起來,適當支持游戲(但要加入家長監控系統)。補貼芯片廠,讓它們使用ARM或RISC-V外加國產Imagination gpu做SoC,生產類似Surface這樣的二合一平板。底層CPU使用的ISA完全不可見,上層編程完全用H5。這樣,就幫祖國把CPU和OS這兩個陳年大洞都補上了。

          芯片要下苦功,別凡事都指望模式創新。這不假。但偏偏CPU真的面臨一個十倍速變革的機會,真的有靠模式創新而勝出的機會,為什么不試試呢?如果騰訊不去嘗試一下,誰還有資格呢?促進祖國的微電子發展功德無量,相信這次不會有人說騰訊壟斷之類的閑話。


        上一頁 1 2 3 4 下一頁

        關鍵詞: Intel ARM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 当阳市| 永年县| 嘉义市| 丁青县| 桃园县| 饶阳县| 垫江县| 郯城县| 岐山县| 荃湾区| 永丰县| 黄石市| 柯坪县| 宁武县| 商河县| 内黄县| 淄博市| 上杭县| 卢湾区| 寿阳县| 正宁县| 富民县| 旺苍县| 延吉市| 襄汾县| 北碚区| 舟山市| 芦山县| 鸡西市| 甘谷县| 旌德县| 西吉县| 文水县| 缙云县| 剑阁县| 边坝县| 靖边县| 玉树县| 威宁| 九龙城区| 介休市|