文章開頭,不妨提一個問題,基於ARM架構的處理器在效能上超越X86處理器,為什麼全世界只有蘋果一家公司做到了?
一位資深從業人士談晶片技術趨勢,原話如下:
今年我們看到很多晶片領域出現的“新現象”,也有不少讓人“陷入沉思”的時刻。對我個人來說,蘋果M1處理器可能是衝擊最大的一個。我從04年開始做手機SoC,08年開始接觸ARM,斷斷續續做到16年。在蘋果M1之前,我從來沒想過基於ARM的架構可能在效能上超越X86。當然,M1並不是傳統意義上的CPU,而是一顆SoC,所以直接的比較也許並不完全公平。但如果從應用程式的角度來看,執行速度加快,功耗降低,都是實實在在的。對M1的分析很多,細看下來,大部分架構最佳化的思路和獲得的結果也都是非常自然的(可能也有一些我們不知道的蘋果黑科技)。但為什麼蘋果之前沒人這麼做,或者說做不到呢?
問題的關鍵在於蘋果掌握了完整生態和供應鏈,在有充分的技術積累和豐厚利潤之後,可以做更多的“縱向最佳化”。這個事件本身還不只是技術上的勝利,未來會給整個產業帶來深遠的影響。當然,從這句話的限定詞來看,能成功複製者可能寥寥無幾。後面的新聞說微軟也打算給Surface自研晶片來看,不知是不是有戲。
以前對晶片架構和技術趨勢有不少討論,“通用”到“專用”,“同構”到“異構”,“先進工藝”到“先進封裝”,“分而治之”到“跨邊界最佳化”。為什麼會有這些趨勢,簡單說就是被逼的,一方面摩爾定律放緩和Dark Silicon問題,另一方面特定算力需求激增。一句話,要求高了,只有精耕細作了。但問題是,即使這些趨勢大家都認可,具體該怎麼做呢?真沒那麼簡單。
先說說異構和專用的問題。我們可以看看已經“精耕細作”了很多年的手機晶片。手機SoC是非常典型的異構系統,包括大量的專用處理器,發展到今天,已經極為複雜。隨便找一個高通手機晶片,可以看到,除了CPU,GPU,各種DSP和硬體加速器,可以說把異構做到極致了。
為什麼手機的主處理器在智慧手機剛出現的時候就SoC的形式?也是被手機尺寸,功耗,成本這些限制給逼的,不可能照搬桌面PC獨立CPU的架構。這種架構的優勢是將整個系統都放在一顆晶片上,而不僅僅是通用的CPU。其中很多硬體模組都是根據特定功能需求定製的,比如通訊基帶,ISP,Connectivity,多媒體,語音,定位,可能是基於DSP,也可以是更專用的硬體加速器。這其實也就是我們今天常說的Domain-Specific的概念。另一方面,,模組間的通訊是在片上解決,效率要高很多。這種SoC/DSA架構的優勢是硬體PPA可以極致最佳化;缺點除了架構複雜度和不同型別硬體的最佳化之外,異構程式設計和軟體最佳化也會比較困難。先不看蘋果,由於安卓系統的出現,獨立的手機晶片廠商可以把精力集中在底層,反正這些DSP和硬體加速器一般也不開放,都是晶片廠商自己來最佳化相關軟體(常說的firmware)。這樣的架構和生態已經發展了十幾年,現存已經不多的獨立手機晶片廠商已經很有經驗。即便如此,晶片廠商提供的一些新演算法的加速庫往往還不能令人滿意,也從側面說明了異構專用架構軟體最佳化的難度。再看蘋果,其技術上的優勢,很大程度得益於在“封閉”的系統(作業系統也是自己的),有可能實現“縱向最佳化”。在技術上的優勢轉化為巨大的利潤之後,蘋果的晶片就進入良性迴圈。實際上,在蘋果開始自研晶片之後,可以說整個半導體供應鏈,從Foundry到EDA/IP都是按照蘋果新機發布的節奏在進步。積累到今天,蘋果已經具備了挑戰傳統桌面系統架構的能力。
對於傳統的桌面和資料中心處理器,簡單的說“不思進取”也不是很公平,CPU本身還是晶片技術的高峰。在它能做到的範圍內(主要是硬體),工藝演進,封裝演進,架構最佳化,硬體效能繼續提升還是可以預期的。但它多年形成的生態特徵(包括歷史包袱)和蘋果(還包括其他一些巨頭)這樣的“封閉”生態大不相同,蘋果們能做到的事情它還真做不到。
討論到這裡,我們也不難看出,未來在技術上的最佳化,傳統的分而治之的策略已經越來越困難(或者並不經濟),打破邊界有可能會實現“降維打擊”的效果。雖然好處顯而易見,但成功與否的決定因素可能不在技術,而是背後掌控生態和供應鏈的能力。另一方面,拋開技術原因,越來越複雜的競爭關係,也是推動產業鏈重新整合的動力。今年,我們看到Nvidia收購ARM,AMD收購Xilinx,Intel推oneAPI,其實都是這方面的嘗試。對於晶片廠商來說,儘量在自己的核心領域實現生態的“壟斷”是最高目標。但是,對於複雜晶片來說,構建軟體生態可能要比設計或實現出晶片本身更為複雜。特別是在一些專用領域,單晶片硬體架構趨向簡化,但軟體棧的實現和產品化挑戰很大。因此,從目前整體狀況來看,相對傳統晶片公司,科技巨頭在軟體和系統生態上具有先天的優勢的。我之前分析過Google情況,有很多晶片廠商很難做的事情,在Google自己的生態裡面相對容易(其實是和蘋果M1的情況類似)。未來我們應該能看到更多由科技巨頭髮起的發自系統需求的跨層次最佳化。
回顧歷史,分而治之(分層最佳化)是計算機系統和通訊系統這樣的複雜系統幾十年快速發展的關鍵,未來實現徹底扁平或端到端的最佳化是不太可能的(這個超越人類能力的問題可能得留給人工智慧AI),但找到更合理的分層或分塊方式是完全有可能的。比如,我們看到深度學習框架和編譯器領域就有很多嘗試,一方面打破傳統的圖和運算元的層次進行統一最佳化是一個廣泛關注的路徑;另一方面,透過多層IR和編譯工具來更合理的實現“分而治之”也很有前景。蘋果M1的例子再次給我們證明了現在確實是“架構的黃金時代”,晶片,軟體,系統都還有很多最佳化空間。重新思考非常必要,甚至“重新設計輪子”有可能是非常合理且有效的選擇。
最後說兩句“先進封裝”的問題。“Chiplet”是今年的熱詞,歷史更久且更準確的技術詞彙應該是異構整合(Heterogeneous Integration),有興趣的朋友可以看看HIR(Heterogeneous Integration Roadmap),有這個領域非常完整的分析和預測。總的來說,這個技術趨勢是比較清晰明確的,而且第一階段的Chiplet形態(比如HBM)在技術上已經比較成熟,除了成本比較高,在很多高階晶片上已經使用。而且這個技術涉及的供應鏈比較簡單,可以說是花錢就可以解決的問題。當然,這個方向還是有很多技術挑戰的,最終是要走向Monolithic 3D。另外一個和異構整合關係很大的是光互聯,這兩件事要是解決了,晶片和系統架構可能發生產生根本性的變化。