驍龍865為啥最厲害?CPU和GPU架構瞭解下!
手機的“心臟”只有指甲蓋大小,但憑藉着高集成度的SoC身份,這種芯片卻完美詮釋了“麻雀雖小五臟俱全”的定義。
CPU:性能基石
在SoC的組成部分中,CPU是最關鍵的核心單元之一,我們可以將它理解為PC上的酷睿處理器,而它的強弱主要受到以下幾個參數的影響。
手機專用的SoC都屬於“ARM處理器”,而ARM公司與芯片廠商的合作則存在3種形式:
原生Cortex-A系列架構
ARM公司平均每年都會推出全新的“原生”(公版)架構,包括性能級的Cortex-A7x,以及效能級的Cortex-A5x,前者可以作為CPU中的“大核”,目前SoC正好處於Cortex-A76向Cortex-A77之間的過渡階段,2020年中旬ARM還將祭出Cortex-A78架構。
後者則屬於CPU中的“小核”,Cortex-A73或更早期的大核都會與Cortex-A53搭配,從Cortex-A75開始則與Cortex-A55“聯姻”,短期內ARM還沒有更新效能級核心架構的計劃。
基於Cortex的半定製化架構
芯片商在拿到ARM原生Cortex-A的架構後,可以對其進行一定程度的改造,從而實現更高性能、更多功能或更低功耗。
高通旗下的驍龍SoC總會採用名為“Kryo”的核心架構,而它們就都是基於原生Cortex-A架構半定製化而來,業內人士還習慣將這種形式稱為“魔改”。
華為從麒麟980開始,包括最新推出的麒麟820,也是主打Cortex-A Based,理論上也是一種半定製化的魔改。
基於指令集的自研架構
如果芯片商只憑借ARM的指令集授權,並在此基礎上研發芯片,則可被歸類到“自研”架構。
比如驍龍820採用的Kryo核心、三星貓鼬(Mongoose)核心、蘋果從A5往後的SoC就都採用了在ARM指令集基礎上的自研CPU架構。
從性能的角度來看,不同時期的架構之間則存在明顯的性能壓制,比如Cortex-A77天生就比Cortex-A76更強,但同一時期的原生、魔改和自研架構之間的差異其實並不大,主要還是受制於核心數量、多叢集和最高主頻方面的影響。
多叢集設計
我們都知道Cortex-A7x性能比Cortex-A5x更強,為什麼沒有SoC採用全部由Cortex-A7x打造的多核處理器?
答案很簡單,高性能的背後就是高功耗,為了讓智能手機可以具備至少一天一充的續航底線,手機SoC必然要採取“大小核”(Cortex-A73之前稱Big.Little,Cortex-A75之後為DynamIQ Big.Little)的搭配策略。
為了更好地權衡性能和功耗,手機SoC在“大小核”的基礎上還引入了“多叢集”的概念,比如聯發科天璣1000就是了“4 4”雙叢集的代表,由4×Cortex-A77和4×Cortex-A55共計8個CPU核心構成。
麒麟990和驍龍865都是三叢集代表,差異是前者採用了“2 2 4”(2×A76 2×A76 4×A55),後者則是“1 3 4”(1×Kryo 585 3×Kryo 585 4×Kryo 585),即大核 中核 小核三種核心搭配的策略。
在不考慮功耗的前提下,自然是大核架構越先進,數量越多性能越強。
但是,現實中SoC在全速運行(玩遊戲)時CPU非常容易因過熱而觸發降頻機制,從而導致性能驟降引起卡頓問題。
因此,“2 6”的雙叢集和“1 3 4”或“2 2 4”的三叢集設計正逐漸成為主流。
運行頻率
CPU的性能強弱,除了受制於核心架構和多叢集設計,運行頻率的影響總是更加立竿見影。
我們都知道Cortex-A77架構比Cortex-A76架構強,但2019底才剛剛量產的聯發科1000L(大核為Cortex-A77)的CPU性能卻還不如2018年底上市的麒麟980(大核為Cortex-A76)。
原因很簡單,聯發科1000L的大核主頻只有2.2GHz,而麒麟980的主頻則高達2.6GHz,更高的主頻足以彌補核心架構和大核數量上的劣勢。
因此,對於同期同級別的SoC而言,誰的CPU主頻更高,往往更容易取得性能上優勢。當然,前提是手機自身的散熱設計必須過硬,可以讓CPU長時間運行在預設的最高主頻上。
GPU:遊戲引擎
GPU是SoC中重要性僅次於CPU的單元,我們可以將它理解為PC上的獨立顯卡,一款手機能支持多高的分辨率、刷新率、玩遊戲能跑出多少幀數,幾乎都需要看GPU的臉色。
GPU品牌
和SoC中的CPU單元由ARM一家獨大不同,其集成的GPU單元還未江湖一統,在Android手機領域正處於“三國爭霸”的格局——高通旗下的驍龍SoC全部集成自家Adreno品牌的GPU,華為/三星旗下的SoC則青睞ARM公司推出的Mali品牌GPU,聯發科則經常“腳踏兩隻船”,ARM Mali GPU和Imagination公司的PowerVR GPU都有所涉獵。
據悉,三星已經攜手AMD,在未來Exynos SoC很可能會集成由AMD授權的RDNA架構GPU,而華為也正在開展自研GPU的項目。
核心架構
和ARM CPU架構總在不斷升級一樣,各個品牌的GPU每隔1年~2年也會完成一次迭代。
其中,高通Adreno GPU剛剛完成了Adreno 500向Adreno 600的全面升級,從定位中低端的驍龍665(Adreno 610)到最新的頂級旗艦驍龍865(Adreno 650),Adreno 6x0中的“x”數字越大代表性能越強。
ARM Mali品牌的高端GPU正經歷由Mali-G76(與Cortex-A76 CPU搭配)向Mali-G77(與Cortex-A77 CPU搭配)過渡,而中端GPU很快也要從Mali-G52升級到Mali-G53。
在大的方向上,Mali-G7x肯定強過Mali-G5x,並同樣是“x”數字越大代表性能越強。Imagination GPU很快也要從第九代(PowerVR 9)過渡到第十代(PowerVR IMG A),考慮到該系列GPU比較小眾,我們就不在本文贅述了。
如果你想了解更多手機GPU的歷史和相關技術,請參考《手機處理器的GPU誰最強?看完這篇文章你就懂了!》這篇文章。
計算單元
在現實中,很多GPU都採用相同架構的核心,但它們的GPU性能卻存在很大的差異。
比如,驍龍675(Adreno 612)和驍龍730(Adreno 618)集成的都是Adreno 61x系列GPU,麒麟990和Exynos 980集成的也都是Mali-G76 GPU,但它們兩兩之間的3D性能卻不可同日而語。
DIY用户都知道,PC領域的獨立顯卡會根據不同數量的“流處理器”來劃分檔次。
手機SoC內的GPU也是如此,只是這裏的“流處理器”叫法不同,高通Adreno GPU稱做“ALUs”,ARM Mali GPU則叫“Shader Core”,我們習慣將它們統稱為“計算單元”。
圖形接口
在3D遊戲的開發中,API圖形接口越先進,GPU的執行效率越高。
如果手機GPU恰好支持這種API,就能最大限度避免“負優化”,還有機會實現“越級挑戰”。
手機SoC GPU所支持的API主要以OpenCL、OpenGL、Vulkan和DirectX為主,目前它們最新的版本分別為OpenCL 2.0FP、OpenGL ES3.2、Vulkan 1.1和DX12,很多最新的GPU加入了多神經網絡加速器的優化,可配合NPU單元進一步加速AI運算。
和CPU一樣,GPU的強弱除了架構之外,也受到運行頻率的牽制。聯發科Helio G90、驍龍730和驍龍765是最具代表性的SoC,它們都存在一個後綴帶“G”的型號,通過提升CPU和GPU的頻率獲得了更強的性能(表2)。
當我們看到一款陌生的SoC時,可以先看製程工藝,如果它能採用7nm或7nm EUV就代表它具備更加節能省電的特性。
然後看CPU架構和主頻,Cortex-A77和Kryo 500核心代表着當前架構的最強音,當CPU主頻高於2.6GHz那它就具備旗艦級的CPU性能,如果低於2.4GHz就是中等偏上。
如果你喜歡玩遊戲,就需要看它的GPU是Mali-G7x還是Mali-G5x,並數一下計算單元的數量,多多益善。
然而,手機並不僅限於跑分和玩遊戲,在追求更強性能之餘,它在日常應用環境下的表現,往往要比絕對的性能更加重要。比如,基帶、DSP、ISP等單元,如果你對它們的作用感興趣,請關注CFan的後續報道。