文章摘要: 讓Cortex A76執行在3GHz+的頻率上7nm的Cortex A76相比10nm的Cortex A75可提升40%效能
又是一年6月,ARM在舊金山釋出了全新的Cortex A76架構。
數碼愛好者們對ARM的架構代號想必已經耳熟能詳,但或許並不知道這些架構具體出自誰手。實際上,ARM在全球擁有3家設計團隊,分別是位於美國德州的奧斯丁團隊、位於法國南部的索菲亞團隊以及位於英國大本營的劍橋團隊。
這三家團隊各有分工,奧斯丁團隊負責設計高效能架構,代表作為Cortex A57和Cortex A72;劍橋團隊專門設計Cortex A53和Cortex A55等低功耗架構;而索菲亞團隊則主打均衡,Cortex A73和Cortex A75便是出自其手。
不過自摩爾定律在28nm節點放緩開始,奧斯丁團隊在Cortex A57和Cortex A72架構上兩次遭遇瓶頸,效能強勁是不假,可功耗和發熱也堪稱恐怖。自那以後的幾年裡,奧斯丁團隊一直沒有什麼動作。就在人們幾乎已經忘了這群美國壯漢的時候,奧斯汀團隊帶著全新的Cortex A76迴歸了。
從設計的角度來看,Cortex A76對於ARM來說至關重要,他是一款完全重新打造的全新微架構,是「第二代奧斯汀家族」的領軍者,代表了一個全新的開始。ARM稱它「是一款具有的筆記本級效能的處理器。」
Cortex A76在最新7nm工藝下,執行頻率預計將達到3GHz,相比基於10nm工藝製造、執行在2.8GHz的Cortex A75,能耗將降低40%,效能可提升35%,機器學習能力可提升4倍。
Cortex A76架構淺析
Cortex A76是一個亂序超標量核心,前端為亂序4發射指令解碼,後端為13級流水線,執行延遲為11個階段。ARM在設計了一個「定向預測獲取」單元,這代表分支預測單元會反饋到取指單元中。ARM還在業內首創使用了「混合間接預測單元」,將預測單元與取指單元分離,且支援核心中的各模組獨立執行,執行期間更易於進行時鐘門控以節省功耗。
Cortex A76分支預測單元由3級BTB(分支目標快取)支援,包括一個16鏈路nanoBTB,一個64鏈路microBTB和一個6000鏈路主BTB。在Cortex A73和Cortex A75世代,ARM便聲稱其分支預測單元幾乎能預測所有分支,Cortex A76的這個新單元似乎還要比之前更強一些。
取指單元的執行速度為每時鐘週期16Byte,分支預測單元的執行速度是取指單元頻寬的兩倍,為每週期32Byte,可在由12個「塊」組成的取指單元之前提供一個取指佇列。這樣做的目的是,分支預測錯誤時可以在管道中隱藏分支氣泡,並避免使取指單元和核心的其餘部分陷入停滯,ARM稱Cortex A76最多可應對每週期出現8次分支預測錯誤。
Cortex A76的取指單元最多可提供16條32bit指令,取指流水線由2個指令對齊和解碼迴圈組成。在指令解碼和重新命名階段,Cortex A76每週期可吞吐4條指令,並以平均每條指令1.06Mops的比率輸出巨集指令。
此前,Cortex A72和Cortex A75每週期可吞吐3條指令,Cortex A73則只能吞吐2條。根據雷鋒網掌握的資料來看,Cortex A73相比Cortex A72解碼頻寬下降是爲了優化能效,而隨著對移動處理器效能需求的提升,Cortex A75恢復了每週期3吞吐的設計。此次Cortex A76則更進一步,成爲了公版架構中解碼頻寬最高的,但仍低於三星和蘋果的定製架構(三星M3每週期6吞吐/蘋果A11每週期7吞吐)。
在指令重新命名階段,ARM分離了重新命名單元,並將時鐘門控用於整數/ASIMD/標記操作,重新命名和排程從A73和A75的每次2週期縮短為1週期。巨集指令按照每條指令1.2μop的比例擴充套件為微操作,每週期執行8μops排程,相比Cortex A75的6μops/週期和Cortex A73的4μops/週期有明顯增強。
Cortex A76的亂序提交視窗大小為128,緩衝區被分成負責指令管理和註冊回收的兩個結構,稱為混合提交系統。由於效能縮放比只有1/7,即緩衝區增加7%只能提升1%效能,所以ARM並沒有著重增強這部分設計。
流水線方面,整數部分包含6個問題佇列和執行埠,共3條整數執行流水線,由1個16深度的問題佇列提供服務。其中2條整數流水線可執行簡單算術運算,1條可執行乘法、除法和CRC等複雜操作。ASIMD/浮點部分則包含2條流水線,它們由2個16深度的問題佇列服務。
在整數運算方面,Cortex A76將乘法和乘法累加延遲從Cortex A75的3個週期降低到2個週期,總吞吐量保持不變。而由於Cortex A76有3條整數流水線,在執行簡單算術運算時的吞吐量相比Cortex A75的2條流水線增加了50%。
在負責浮點和ASIMD操作的「VX」(向量執行)流水線中,ARM也做了重要的改進。Cortex A76的浮點算術運算延遲從3個週期降低到2個週期,乘法累加也從5個週期降低到4個週期。ARM表示,相比Cortex A75,Cortex A76的雙128bit ASIMD可帶來雙倍的執行頻寬,四倍精度操作的執行吞吐量增加了一倍。
ARM還在Cortex A76上引入了第四代預讀取單元,每個核心有4個不同的預讀取引擎並行執行,檢視各種資料模式並將資料載入到快取中,以更接近完美快取命中操作的目標。ARM在Cortex A76的快取體系設計上沒有做絲毫妥協,在頻寬和延遲兩個方面都做到了堪稱完美的水平,據說可將快取頻寬提高90%之多。
效能和功耗預測
綜合以上這些架構改進,ARM稱Cortex A76相比Cortex A75,每週期整數效能和浮點效能可分別增長25%和35%,再加上高達90%的快取頻寬提升,Cortex A76的GeekBench4跑分提升了28%,JavaScript效能提升了約35%(Octane,JetStream)。
ARM給出了執行SPECint2006測試的效能對比,在執行GCC編譯的基準二進制檔案時,Cortex A76在2.4GHz時便幹掉了驍龍845,同頻效能提升了15%。當然,半導體工藝所帶來的頻率紅利對SoC的效能提升也非常重要,如果臺積電7nm工藝順利投產,讓Cortex A76執行在3GHz+的頻率上,Cortex A76的效能將和使用三星自研M3架構的全新Exynos 9810持平。
除了效能增強之外,Cortex A76的能效比也有一定提升。在750mW的核心功耗預算下,7nm的Cortex A76相比10nm的Cortex A75可提升40%效能。ARM表示,Cortex A76可實現四核持續滿載時保持滿速不降頻執行。
不過此前ARM立下的頻率目標往往有些過於樂觀,例如最初預計Cortex A73將執行在2.8GHz,Cortex A75則為3GHz,而二者的實際最高執行頻率僅為2.45GHz和2.7GHz。對半導體供應商來說,工藝成熟度和不同流水線間的差異均會影響晶片執行頻率,壓低頻率上限是爲了保證供貨量不得已而為之。
此外據雷鋒網 (公眾號:雷鋒網) 瞭解,每種核心架構在某一工藝下,都有一個能效比最佳的頻率區間。以使用三星自研M3架構的全新Exynos 9810為例,其CPU大核叢集在單核、雙核、四核滿載的情況下頻率分別為2.7GHz、2.3GHz、1.8GHz,功耗均為3.5瓦左右。 換言之,經過逆推可知,M3核心從1.8GHz到2.3GHz, 提升 500MHz頻率功耗便翻了一倍,而從2.3GHz提升到2.7GHz,僅400MHz的提升就讓功耗再次翻倍。
而從1.8GHz到2.7GHz,即便效能也線性同步提升,幅度也只有50%,功耗則翻了兩番。可見越過最佳能效比區間後,衝擊高頻需要付出極大的功耗代價。而驍龍845的Kryo 385 Gold核心的表現也與之類似,在超過大約位於2.1GHz的閾值後,功耗飆升的幅度甚至比三星的M3核心猶有過之。
因此,首批使用Cortex A76架構的SoC,頻率有很大可能依然達不到3GHz。雷鋒網認為,考慮到核心架構的變化和規模的增長,其實際頻率會在2.5GHz左右,但不排除隨著後期工藝成熟或將其應用在筆記本等對功耗較為寬限的裝置時可衝上3GHz+的高頻。
結論與思考
最近幾年裡,人們一直在期待能與蘋果一較高下的強勁架構。三星在不久前推出的自研架構M3雖然在效能上追近了蘋果A11,代價卻是單核3.5W的恐怖功耗。在這種情況下,ARM依然選擇穩紮穩打的進行世代更替,這次奧斯丁團隊的Cortex A76並不是效能怪獸,它充分顯示了一個平衡的微架構有多麼重要。
據悉,高通和華為海思已經在準備Cortex A76 SoC的研發和生產,我們很可能會在今年年底前看到它在商業產品中出貨。而三星方面則比較微妙,Cortex A76的效能並沒有超越M3,所以在理論上三星只需重點改善M4(如果有的話)的能效比即可。
不出意外的話,基於Cortex A76的架構將在接下來的幾年裡至少進行兩次迭代升級。ARM已經連續5年達成年度規劃目標,並且年複合增長率為20-25%,隨著移動處理器迅速接近X86處理器的效能,未來幾年的處理器市場將會更加有趣。
via: Anandtech
雷鋒網原創文章,未經授權禁止轉載。詳情見 轉載須知 。