一文看懂ARM公司
ARM的總部在劍橋,同時在倫敦和紐約上市。市盈率接近50.這在晶元行業是個很誇張的數字,要知道Intel才十幾的市盈率。原因有兩個,第一名氣大,移動界晶元的武林盟主,絕對的市場佔有率。第二銷售額低,凈利也不高,2015年授權費和版稅加一起才12億美金,銷售額連國內展訊都趕不上。ARM內部,真正盈利較好的只有做處理器的部門。
說到部門,ARM是麻雀雖小五臟俱全。全公司四千人,分布在處理器部門,媒體部門(圖形處理器,視頻和顯示模塊),系統IP和軟體部門(匯流排,中斷控制器,MMU,內存控制器,安全模塊,調試模塊,系統設計,各類基礎軟體),物理設計部門(物理庫和處理器後端設計),軟體工具部門(編譯器,調試工具,模擬模型),物聯網部門(藍牙,物聯網操作系統),圖像信號部門,技術支持部門,銷售和市場部門,還有個商業發展部門(負責和戰略客戶的技術與合作,BAT之類,看著像是和市場部的內鬥產物,英國佬的宮斗也是有千年傳承的)。最後,還有個神秘的架構部門,裡面的人動不動就是principle啊fellow啊,制定指令集,研發不是很黑的黑科技。研發中心在劍橋,法國索菲亞,芬蘭,奧斯丁,以色列,匈牙利印度和上海都有。分布這麼廣和收購歷史有關。
ARM的賺錢方式簡單明了,授權和版稅。誰想用ARM的IP,那麼跟據流片的次數,可以付一次流片的費用,也可以買三年內無限次流片,更可以永久買斷。晶元量產後,根據產量,會按百分比收一點版稅。這個和高通的版稅完全不同,ARM全球一年版稅也就幾億美元,只是高通的零頭的零頭。
作為重中之重的處理器設計部門,產品有A,R,M三個系列,和ARM名字重合,挺有趣。A指的是Application Processor,以前專指移動處理器,後來又擴展到伺服器和網路處理器領域。R指Real Time,主要用於汽車,控制,固態硬碟,數據機等實時性需求較強的領域。M指MCU,一看名字就知道是微控制器,領域就更廣,去年全球ARM MCU出貨量過60億片,但單價很便宜。
A系列是ARM揚名立萬的本錢,沒有A系列,ARM也就是個高級8051的水平。ARM把A系列按照每赫茲功耗分為三等,低端的代表如A7和新出的A35/A32,運行在幾百兆赫茲,功耗幾十毫瓦,適合手錶和超低端手機。中端的代表如A53,作為大小核中的小核,運行在1-2Ghz,功耗3百毫瓦以下.當然也有人把它當大核用,功耗500毫瓦以上。再往上就比較豐富,A57是個相對較差的作品,再往後的A72,A73都達到了預期目的,運行在2Ghz以上,500豪瓦左右的功耗。在ARM的計劃里,每年提升20%的每赫茲性能,2018年底會出一款單核性能和Intel x86抗衡的處理器,節點在7nm甚至5nm上,不知是不是能實現。我覺得有點懸,台積電的7nm上的最高頻率和16nm也沒差多少,加壓到3Ghz了不起了,而x86現在就快到4Ghz了。ARM哪怕有每赫茲性能提升50%也趕不上,更何況intel也在緩慢提升。目前看來,通過增加發射寬度,把二級緩存放到核內,優化一級緩存命中,使用數據緩存vipt,還是可以在線性提升功耗的前提下提升性能。但是 ARM設計的哪怕最高端的處理器,也是把手機作為應用目標的,所以在功耗上不會很激進,單核一瓦都不會到。話說回來,其實小核賺到的授權費更高,你看市面上那麼多A53的處理器在跑,不光手機,平板,伺服器,網路都有。
R系列芯如其名,所有的設計都往實時性靠攏。可能有人對實時性有誤解,以為實時性就是性能高,響應快,這是不完全的。硬實時性指的是,任何運算和處理,都在確定的較短時間內完成。按照這個理念,虛地址是不適合的,因為虛實轉換查頁表可能會連續不匹配,造成不可預計的訪存時間。甚至中斷處理中實地址訪問內存也是不可控的,因為可能多個主設備存在訪問衝突,必須使用綁定核的專有片上內存,才能保證幾十個時鐘周期內一定讓中斷得到處理。其它的措施,比如所有內部匯流排和緩存加入校驗,採用雙核冗餘處理,都是R系列的特點。汽車和自動控制是R系列的典型應用。其餘的存儲控制器,3/4G數據機等,用處理器做的都是協議控制,不存在確定響應時間的問題,只要平均延時達到要求即可。所以有人用A系列做這一類應用,毫不奇怪。R系列的趨勢是實現虛擬化,這是汽車電子公司提出的要求,初看挺奇葩,但是ARM的解釋是,當初如果先有虛擬化,那麼就不會有trustzone了。在實地址下,虛擬化效率更高,因為A系列的虛擬化可能需要查20次頁表才能找到最終實地址,而R系列3-6次就可以,還可以把頁表放在片上內存,那就不存在延遲不可控一說了。所以R系列上的安全可以通過實地址虛擬化來實現。
M系列應用太廣,目前比較火的智能硬體和物聯網基本都用它,去年出貨量60億片,不過ARM在上面估計連1億美元版稅都沒收到。它的特點是晶元面積小,功耗極低,做的好一個電池板用幾年都可以。當然,也有M7這種奇葩型的MCU,運算能力超A7甚至A53,自帶緩存,目前用於無人機控制等對計算能力和實時性要求都高的地方。MCU上的趨勢也是安全,物聯網的基本需求。當然,由於晶元面積本來就小,不適合用虛擬化實現,還是用的老的trustzone的簡化版比較現實。
除了處理器RTL授權,ARM還可以指令集授權。這個話題一直被人津津樂道。目前的客戶包括蘋果,高通,博通,Cavium,海思,展訊等等。ARM其實是把指令集授權客戶看成潛在的威脅的,所以不僅售價高(幾千萬美元也不稀奇),而且還有時間和行業限制,過個三五年又得重新買。此外,客戶還不光買指令集,指令集驗證模型也得要吧?不然自己寫還不一定對。現在要做一個處理器其實沒那麼困難,微結構就那樣,90%的時間都是花在驗證上。難的是要做到商業化,那需要長時間慢慢的積累,不斷的驗證,不斷的微調。不同性能和功耗目標所採取的設計也並不相同。有條捷徑是拿ARM的RTL改,不過合同上這樣是不被允許的。
從市場來看,手機和平板ARM基本無競爭。Intel曾經想通過貼錢進入平板,現在隨著策略改變也沒啥動作了。還曾經和rockchip合作,把硬核授權,讓RK生產,如今也煙消雲散。唯一還在堅持的就是對展訊的投資與合作,授權硬核,提供工廠,試圖讓展訊以低價鋪開x86手機晶元市場。其實這本意是不錯的,intel自己造晶元太貴,只能讓中國公司來做才能降成本。不過隨著intel移動戰略的改變,現在的前途真是未卜,可見生態的力量之強大。據說ARM當初給諾基亞和德州儀器提供手機晶元設計的時候,完全沒想到過什麼生態戰略,也是想著賺一把走人,一不小心就做大了。
在伺服器市場,ARM和Intel的情況完全反轉。ARM苦於沒有真正的晶元做生態軟體優化,而晶元廠商也苦於沒有像手機那樣成熟的軟體,一切都要自己來。想想當初Intel為了打入手機市場硬是在二進位文件層面做指令翻譯,如今ARM面對的問題也沒好到哪去。伺服器和網路不像手機,隨隨便便可以死機重啟,哪怕晶元沒問題,軟體移植的不好,或者各家ARM指令集的晶元在軟體穩定性上表現不一致,那麼在互聯網生產環境是沒人敢大量使用的。所以這個市場上的生態更難打破,只能一點點拱白菜吧。好在企業市場不同於消費市場,決定權在企業用戶,群狼前赴後繼,主打低功耗低成本,拱得多了總會有一部分市場份額的。
別的小一些的市場,網路處理器,全球一共20億美元,ARM也是大勢所趨了。曾經占統治地位的MIPS和PowerPC,以後只會出現在一些低端網路設備上。還有個應用就是2/3/4G數據機,這個市場其實很大,手機離不開它。R系列在這裡用的挺多,不過作為協議控制,用A系列也可以,也確實有人這麼做。另外一個是存儲控制器,包括機械和固態硬碟控制,MIPS和tensilica占著一點空間,還有一個後起之秀,那就是Synopsys的ARC處理器。憑藉著EDA軟體搭賣處理器,在ARM沒有生態優勢的市場確實挺有吸引力。作為數據中心裡計算,存儲,網路三大塊之一,存儲倒是可以和網路結合,在單晶元上集成乙太網和ONFI介面,運行Linux及其開源軟體,Ceph之類的,把以前需要伺服器加網卡加SSD陣列的網路節點整個替換掉。由於軟體單一,優化相對容易,加上高能效低成本,也許能從這個角度打開伺服器和數據中心的市場。
圖形處理器其實比處理器更代表著未來。他們的主要區別是CPU一條指令僅僅對應有限的一次或者幾次數據訪問,然後指令與指令間存在著大量相對隨機的跳轉和數據讀取。而GPU一條指令可能需要成百上千次數據讀取,並且順序排列。順序訪問對於訪問內存可是天大的好事,詳情可以參看之前的文章。桌面GPU利用高帶寬,將順序訪問發揮到極致。但是他並不在緩存存儲中間結果,而是寫到內存。ARM的移動GPU,是所謂的tile based GPU,讀取一定量的數據後,會在緩存進行操作。從而省掉了很多帶寬,看上去更省電。
ARM在GPU上的競爭對手有IMG和高通。不過高通只在自己的晶元上使用,而IMG基本只在蘋果上賣出去。如果一個晶元公司想做手機晶元,那麼GPU的選擇只有ARM和IMG,其餘vivante之類的都是坑,海思和飛思卡爾都吃過虧。如果使用了Atom或者MIPS做CPU,那最好別選ARM MALI,否則沒人支持兼容問題。GPU的某些命令是需要CPU指令來做加速的。使用敵對陣營的CPU和GPU,各種安全,內容保護,硬體一致性,以及之上構建的異構計算也不容易做好。總之,ARM的GPU在技術上不如高通和IMG,但是憑藉著CPU的優勢,在安卓市場佔了40%。並且,現在IMG的中國市場上也只有展訊在用。紫光買了IMG3%的股份真是用心良苦。
接下去就是匯流排。ARM的匯流排分成幾類,一類是NIC,沒有固定拓撲結構,通過簡單crossbar互聯,適用於簡單場景。一類是CCI,固定拓撲,也是crossbar結構,支持一致性,適合少量處理器。再往下是CCN,環狀結構,通過固定交叉點連成一個環,延遲大但頻率高些,適合16個以上的處理器。再後來是CMN,網狀結構,也是固定交叉點,形成 NxN網路,支持更多的CPU互聯。再有一種是NoC,節點是個小路由器,連線更少頻率更高。沒有固定拓撲結構,可以連接任意多的設備。
在這麼多匯流排里,CCI是一個重點。最新的CCI550設計完美到ARM就沒有後續產品計劃。它可以讓多個CPU和GPU互聯,並且以極小的代價維護硬體一致性。在CCI550的基礎上,安全支付,視頻內容保護(看正版好萊塢授權大片的前提),異構計算,現實增強,全都可以高效實現,手機應用將會大大豐富。現在一線的幾個手機晶元公司在2016年底推出的方案里就會包含這個匯流排。不過真正把應用跑順,還是需要一些時間的磨合。
CCI有什麼缺點?最大的缺點就是無法支持更多的CPU和GPU。環狀網路CNN是一個過渡方案,而網狀網路CMN是一個較為成熟的設計。兼顧了訪問局部性,支持新的高效原子操作,支持網路處理器常用的stashing,還支持智能路由。由於跑在較高頻率(2Ghz@16nm),雖然訪問的路線變長,但是平均延時縮短了。目前CMN還不支持晶元互聯,沒法像x86那樣組成多路伺服器,這一點還有待發展。作為晶元間匯流排互聯的協議倒是剛定,叫CCIX,不知前景如何。
CCI/CCN/CMN都是支持一致性的。很多時候需要更靈活的連接各個設備,把不同的數據寬度,介面協議,電源/時鐘/電壓域,還要考慮布線,這些糅合在一個網路中,卻又不需要硬體一致性那這時候就可以用NoC和NIC。NoC以路由和包轉發為特點的網路,可以自由拓展。NIC更為簡單,沒有路由,只有簡單交換,調度,交織能力很有限,用於簡單SoC結構不錯,複雜了還是得上NoC。最近NoC也推出了一致性支持,採用類似多層Snoop filter的結構,向CCI/CMN發起挑戰。結果如何,拭目以待。
其餘的系統IP,隨著手機應用的豐富,也在逐漸發展。虛擬化,安全,移動計算,都是將來的趨勢。其中值得一提的是ARM的內存控制器,經過長期對系統傳輸的研究,ARM把它的調度演算法不斷優化,可以將內存帶寬利用率提高到90%以上。而很多複雜場景,比如視頻攝錄與回放,CPU,GPU,video,display,ISP同時工作,系統訪存會面臨很大壓力。此時好的調度演算法可以讓內存利用率儘可能接近理論上限。不過ARM內存控制器缺點也很明顯,必須配合別人的DDR PHY才能工作,這就有潛在的兼容性問題。而其他公司的PHY很值錢,控制器近乎白送。不過隨著手機晶元日益複雜,內存帶寬利用率問題會越來越嚴重,這個瓶頸必須得到解決。
綜合CPU/GPU/系統IP,就可以展開很多應用。其一就是安全支付。安全支付可以用ARM的trustzone來實現,不過這是一個系統解決方案,所有的處理器,匯流排,內存和外設,操作系統,都需要做相應改動,並不是把某個IP用到系統里就完事了。另外一個應用就是內容保護,中國用戶如果想要在手機看最新的正版好萊塢大片,好萊塢就會要求所有播放設備上要有DRM,數字版權保護。這也是靠把trustzone應用於整個晶元來實現的。我估計在未來幾年內很快就會看到了。
還有別的應用,比如目前很火的VR/AR/CV。手機上VR除了GPU性能需要足夠強外,主要是在軟體上要支持幾個特性,front buffer rendering啊,multiple view啊。對於GPGPU來說,改驅動就可以做到了,這也就是為啥GPGPU比固定管線靈活的原因了。其餘的硬體改動會是在display上,使得緩存更快的更新到顯示屏。當然,為了20ms延遲,上層的軟體改動也需要,我不熟就不多說了。
手機上更實際的應用其實是在AR和CV。不管是用什麼演算法,什麼API,都可以用Neon或者GPGPU甚至DSP來實現,而硬體上需要做的,就是把GPU和CPU,DSP的雙向硬體一致性做好,避免拷貝和刷新,讓他們之間的數據交互更高效。我估計在未來的兩年內,就會有包含計算機視覺或者機器學習的應用和測試出現,到時候又要比跑分了。
ARM還有一個重要的部門就是物理設計部門。它的任務有兩個,一個是與台積電,聯電,中芯等公司合作,把他們最新的製程的物理開發包拿到手,並在此之上開發自己的後端庫。第二個是有了後端庫,還要和CPU/GPU設計部門合作,前後端協同設計,把頻率,面積和功耗做到最優。然後就可以拿出去吆喝賣錢了。在推廣的時候,ARM的口號是PPA(performance, Power, Area),Synopsys的口號是Service,而台積電的口號是Free。其實這代表了三種不同的推廣策略。回到ARM的後端產品,雖然前後端協同設計口號叫的很響,可有時候出來的數據真的未必能比得上晶元廠商自己做的後端,所以只能見仁見智吧。
ARM的其他部門,比如賣模擬器和Keil的,名氣是很響,可營業額很小。他們還做IP模型和編譯器,和其他部門比存在感稍弱。還有個部門做物聯網和藍牙,有個物聯網操作系統mBed在推廣。不過物聯網這個概念太廣,傳統意義上的物聯網晶元就是一個MCU加點感測器和連接(WiFi,藍牙,北斗/GPS,LTE),重點在於應用而非處理器,很難搞個生態或者大新聞。所以這個部門存在感也不強。我覺得搞好了藍牙也無助於提升系統性能和生態,甚至我懷疑這個部門是內部高層出去創業然後回購的。
說到ARM的存在感,就必須說到ARM的市場部門。共有四種市場職位,第一是產品市場,和產品緊密相關,CPU和GPU發布時候就是他們在出場,搜集需求,幫研發定義下一代產品。第二種是區域市場,北美歐洲中國,沒事就到各個晶元公司去轉悠,盯住他們的最新動態,看看能不能賣出點什麼,同時給產品市場需求和反饋。第三類是應用市場,針對某類新的應用,比如虛擬現實,汽車,移動,伺服器等。他們去的不僅僅是晶元公司,更重要的是行業的下游企業,看看在應用層有什麼可以挖掘的。第四類是戰略客戶市場,主要是看住新興的互聯網公司,看看他們有什麼動向。未必是鎖定在某一行業和應用。比如阿里,同時在伺服器,手機操作系統,支付,多媒體等領域發展,那ARM就得看看有什麼地方可以合作的。除了這四類,其實還有政府合作市場,不過這類事情一般都是GM和VP出面,摸清中央政府,地方政府和各部門的資金和政策動向,看看能不能摻和一腳。
作為一個號稱靠生態賺錢的公司,市場人員自然素質不錯,隨便挑一個出來,上台做做報告,用英語發表下演講,分析下行業動態,自然不在話下。由於平台大,視野廣,出路通常不錯,經常有跳槽升個兩級或者乾脆自己創業的。
然而,我還是不看好ARM的盈利模式。它的現有模式已經走到了盡頭,就算移動計算,伺服器,VR,物聯網市場起來了又如何?就算中國和印度的晶元也起來了又如何?作為IP公司,所能賺的錢翻個倍也就頂了天了,遠遠沒法和晶元公司比,更沒法和下游互聯網公司比。
那ARM的未來在哪?第一還是生態。當前流行的技術,大數據,人工智慧,虛擬現實,自動駕駛等等,說穿了無非兩個字,計算。而計算就離不開晶元。無論是CPU,還是GPU,DSP,又或是神經網路晶元,都是圍繞這兩個字在運行。ARM必須牢牢抓住技術趨勢,將通用計算融合其中,這是一切的基礎。但是做好了第一步,並不賺錢。能賺大錢的不是IP授權,而是來自投資,來自那些從財報上看不到的影響力。有了影響力,什麼政府合作啊,領投啊,資本運作啊,才有可能輪得到ARM分一杯羹。從這方面看,不生產晶元,不製造系統,軟體開源,又是無與倫比的優勢。ARM中國這兩年動作頻頻,和妖股中科創達聯合成立安創只是牛刀小試,而和厚朴成立投資公司則是紅色故事的開始。
來源:電子發燒友
推薦閱讀: