機器之心報導
參與:澤南、杜偉、小舟
Arm 剛剛發布的新架構 A78 與 X1,多核性能超過了蘋果 A13。高通驍龍 875 和三星獵戶座 1000 估計明年初會用上,麒麟 1020 還不確定。
2019 年對於 Arm 來說是振奮人心的一年,在移動端這家公司仍像往常一樣如日中天,而在雲服務領域,越來越多公司(如亞馬遜、華為等)推出了基於 Arm 架構的伺服器晶片,而英偉達也已宣布旗下 GPU 可以配合 ARM 處理器進行深度學習加速。
但正如我們所知,Arm 晶片仍有其不足之處:過去幾年中,Arm 的移動端 Cortex 內核一直活在蘋果高度定製版 CPU 微體系結構的陰影之下,蘋果的「黑科技」總是有辦法能展現超出人們預期的能力——即使前年的 A12 單核性能也比驍龍 865 高出 15%(當然,多核性能是後者更好了)。這些差距儘管有技術上的原因,當然也有 Arm 在商業上的考量。
不過這一切在下一代 Arm 晶片上看起來要有變化了,在昨天 Arm 2020 TechDay 活動上,人們期待已久的 Cortex-A78 確實終於面世了,而且這次 Arm 還放了一個大招:推出了 Cortex-X1 CPU 作為該公司的新旗艦架構。
此舉不僅令人驚訝,也標誌著 Arm 向多種設備妥協的理念正在產生變化。
全新 Cortex-A78:功耗效率翻倍
首先我們還要從 Cortex-A78 來看起。兩年前 Arm 提出的未來路線圖就透露了代號為 Hercules 的架構,它就是 A78 的前身,其代表了最新 Austin 系列 CPU 微體系結構的第三次迭代,這一系列自 A76 開始。
全新 Cortex-A78 很大程度上還是按照 Arm 傳統的設計理念來打造的,它嚴格遵循著性能、功率和面積之間的平衡(PPA)來設計。在保持功耗不爆炸的前提上,A78 有了 20% 的性能提升——這是結合微體系結構改進和全新的 5 納米製程工藝帶來的改進。
Cortex-A78:遵循平衡設計
新一代 Cortex-A78 在 Arm 的路線圖上已經存在了幾年,一直被認為會是 Austin 系列中最小的一代微體系結構升級。作為 Arm 的 Austin 核心設計的第三次迭代,A78 遵循了 Arm 在 Cortex-A76 和 A77 上實現的 25-30%的 IPC 改進。
由於 X1 CPU 架構的出現,A78 這次可以更加專注於效率的提升,我們自然地看到 Arm 的目標在於合理地提升性能。它仍然是 Arm 8.2 CPU,與 Cortex-A55 CPU 分享 ISA 兼容性。在 Arm 給出的設計模板上,我們可以看到每個 DSU(DynamIQ Shared Unit)可有 4 個核心,L3 緩存最多可擴展到 4MB。
在核心的很多地方我們都可以找到微架構改進的痕跡。在前端最大的變化是分支預測器,它現在能夠在每個周期處理最多兩個分支,去年的 Cortex-A77 本質上每個周期只能解決一個。在 L1I 緩存方面,現在我們可以看到 Arm 提供了 32KB 的實現選項,它可以使客戶進一步縮小內核面積,對性能的影響不大,但效率卻有不少提升。
在中核與執行流水線中,大部分工作都在於改善設計的面積和功率效率。我們看到了更多的指令融合案例,這不僅有助於提高內核性能,也還提高了電源效率,因為在相同的工作量下,它消耗的資源越來越少,能耗也變得更小。
總體而言,如果單獨發布 Cortex-A78,恐怕人們會感到有些失望,因為我們看到的是大量減少結構尺寸、犧牲少許性能提高效率的設計。考慮到 X1 的出現,這自然是有道理的。
性能與功耗的完美結合
精準定義期待的性能,新的 Cortex-A78 應達到的功率和 X1 內核的面積增益。
在 Cortex-A78 上,第一組對比數據代表 2021 年目標系統在臺積電 5 納米製程節點上 A78 將達到的提升。
就性能而言,當內核的 ISO 功率目標是 1W 時,Arm 表示 A78 的實現將有 20% 的性能提升。同時,通過 ISO 性能比較,與 N7 上的 2.3GHz 的 A77 相比,A78 可以將功耗和能耗減少一半。
查看和具有相似內核配置的 ISO 進程節點的比較,會發現 A78 的性能比 Cortex-A77 提升了大約 7%,同時功耗降低 4%,面積減小 4%。看起來製程對於性能的提升還是貢獻了大頭。
有趣的是,這是 Arm 首次公布微架構的性能/功率曲線。
對比 Cortex-A77 和 Cortex-A78,在較高的操作頻率下成本較高,並且為了達到更高的操作頻率,所需的電壓也隨功率的平方增加(P = f * V^2)。A78 達到 A77 的性能峰值點,將降低 36% 的功耗。在中間性能水平上,功耗降低 30%。在相同的功耗水平上,A78 的性能提升了 7%。
全新 Cotex-X1:打破功耗約束
Arm 現有的業務模型一直在嘗試構建最廣泛用戶所需要的晶片,但這也產生了一個悖論:性能、功率和面積三者只能取其二。儘管可以肯定的是,蘋果的 CPU 內核在技術上是強大的,但 Arm 性能劣勢的一個重要因素是其業務需求不支持構建一個「超大核」。
但隨著公司業務的擴展,看起來新一代微架構已經和 Cortex-A76 時代有了顯著的變化。
粗略地看 Cortex-X1,你會發現它要比 Arm 天梯圖上的任何其他核心都要高。X1 顯然是基於 A78 打造的,他們都來自於 Austin CPU 設計團隊,但 X1 最大的不同在於打破了以往對於功耗和面積的枷鎖,專注於獲得最高性能。
就最終性能表現來說,與前代 Cortex-A77 相比,Cortex-X1 的整數性能提升了 30%;與同步推出的 Cortex-A78 相比,整數性能提升了 22%;機器學習性能更是較 Cortex-A77/78 提升了 100%。
另一個值得注意的地方在於,Cortex-X1 的設計遵循 Arm 的新許可體系「Cortex-X Custom Program」,其允許客戶在新微體系結構的設計階段早期進行協作,並要求對晶片配置進行高度的自定義化。沒錯,高通就是這套許可之前版本的主要受益者。
Cortex-X1:體積更大、性能更好
這款具有全新架構的 Cortex-X1 完全脫離了 Arm 往常追求「性能平衡」的設計哲學,轉而追求純粹性能,即使犧牲掉一些能耗和空間效率也在所不惜。
與 Cortex-A78 相比,Cortex-X1 整體的提升情況是怎樣的呢?
需要注意的是,Cortex-A78 和 Cortex-X1 都基於 ARMv8.2 指令集,指令集是兼容的,但 Cortex-X1 是自定義 CPU 核心;
從解碼帶寬來看,Cortex-A78 是 4 路,Cortex-X1 增加到了 5 路,提升了 25%;
NEON 浮點從 2 條 128b 提升到了 4 條 128b,這意味著浮點運算性能實現了翻番;
從緩存方面來看,Cortex-X1 的 L1 緩存為 64K、L2 緩存為 1M、L3 緩存為 8M,這些都較 Cortex-A78 提升了一倍。
Cortex-X1 與 Cortex-78 的架構的整體對比詳情。
接下來一一分析 Cortex-X1 相對於前代 CPUs 和 Cortex-A78 都在哪些方面做了提升。
首先,Cortex-X1 具有一個更強大的核心,主要體現在以下幾個方面:
L0-BTB 容量從 64 提升到了 96,增加了 50%;
可用指令取出帶寬增加,具體來說,L1I 的取出帶寬從 4 條指令增加至 5 條,提升了 25%,同時解碼帶寬也相應增加;基於 Mop-cache 的取出和重命名帶寬提升了 33%,每周期指令從 6 條增加至 8 條;
2x Mop 高速緩存容量較 Cortex-A77 增加一倍。
其次,Cortex-X1 突破了帶寬和深度的極限,主要體現在以下幾個方面:
與 Cortex-A78 相比,Cortex-X1 的分配帶寬提升 33%,達到了每周期 8 指令;
無序窗口大小(out-of-order window size)提升了 40%,從 160 增加至 224 entry;
FP/ASIMD 執行帶寬提升一倍,具體來說,Cortex-X1 的總帶寬達到了 4×128b,相當於英特爾 Sunny Cove 或者 AMD Zen2 臺式機核心。
最後,Cortex-X1 集成大帶寬和高性能,具體體現在以下幾個方面:
L1I 和 L1D 的緩存配置為 64K,L2 最大緩存達到 1M;
提升存儲子系統(memory subsystem)性能,以支持更大的動態負載和存儲(in-flight loads and stores),將窗口大小提升了 33%;
L2-TLB 的大小較 Cortex-A78 增加一倍,較 Cortex-A77 增加 66%,覆蓋了 2000 entry,在 4K 頁面上提供最高 8M 的內存。
此外,與 Cortex-A77 相比,Cortex-X1 有 30% 的 IPC 提升,涵蓋了 SPEC2006 的整數和浮點運算套件。
Arm 在 Cortex-X1 的功率和面積效率方面相對模糊。如果供應商能夠執行良好的實現,並且即將推出的 5nm 製程不會有壞消息的話,那麼就會得到以下功耗預測:
最後,如果你想要具體性能對比的數字,雖然從 Arm 的設計到最終手機跑分還有一段距離,但過去的經驗表明這基本是八九不離十的:這一代廠商使用的 Cortex-X1 核心預計可以達到 Arm 宣稱的 3GHz 目標,Cortex-A78 估計跑不到這麼高。基於 A78 的核心,其功耗預計與使用 A77 的(如驍龍 865)核心相同,性能提升大約有 7%,加上少許的時鐘頻率提升,總體而言改進不甚明顯,但也符合預期。
X1 系統的性能提升將極具競爭力,甚至可以比驍龍 865 多出 37%,這會讓它單核水平接近 A13,多核能力超出。不過,它的競爭對手也將是蘋果還沒發布的 A14。
更有意思的是,X1 可以讓 Arm 在性能層面上接近英特爾和 AMD 目前的桌面系統。如果說之前人們對於手機晶片打 X86 嗤之以鼻,現在倒是可以認真考慮一下了。
功耗方面,保守地看 Cortex-X1 將使用 A78 的 1.5 倍功率,但即使 X1 的功耗是 A77/A78 的兩倍,它在能效方面仍然可以與蘋果競爭——核心性能提升很大程度上彌補了它功耗方面的不足。功耗的增加讓 X1 的能耗效率比 A78 低 23%,比目前的驍龍 865 低 11-14%。這樣的數字,看起來是可以接受的。
多年以來,我們一直希望 Arm 能夠獲得不妥協的性能,而 Cortex-X1 似乎正是這樣,實在令人興奮。
你想要幾個 X1 核心?
犧牲功耗提升性能,在手機上自然不是完美的選擇。Arm 確實也提醒人們,在移動端上我們幾乎不可能看到兩個以上 X1 大核的設計。而對於追求效率的客戶,只用 Cortex-A78 而不選擇 X1 也是有可能的。
看起來,帶有 Cortex-X1 的手機 SoC 將會是 X1、A78 和 A55 三種核心混用。在發布活動中,Arm 也展示了高通常用的 1+3+4 核心配置,下一代的驍龍 875 很可能也將如此設計。
與此同時,三星電子 SoC 設計團隊副總裁 Joonseok Kim 也對新設計表示歡迎,或許下一代旗艦 Exynos 晶片也將出現 X1 的身影。不過三星是否會採用兩塊 X1 大核,以及三星的 5 納米製程進度都是未知數。
而正受到貿易戰影響的華為海思,今年下半年的麒麟晶片採用最新 Cortex-X1 設計的可能性則更小。而且華為最近幾代也傾向於不使用最新的 Arm 架構。
總結:ARM 終於開始追求純粹的性能
剛剛發布的 Cortex-A78 和 Cortex-X1 給我們帶來的感覺非常不同。A78 顯然是最近一代架構中升級幅度最小的,與之相對的是,Cortex-X1 對 Arm 來說是一個巨大的改變,其 30% 的 IPC 提升大大超過了人們對於新架構每年 20-25% 左右提升的期待。這一步伐遠遠超過了競爭對手的能力範圍。
而且這一預測性能還在極度接近 X86 架構高端晶片的水平,著實令人興奮。明年各家的旗艦系列手機,讓我們充滿期待。
參考內容:
https://www.anandtech.com/show/15813/arm-cortex-a78-cortex-x1-cpu-ip-diverging