向7nm時代的性能巔峯出擊!ARM Cortex-A76架構解析

ARM的處理器架構基本上維持著一年一變。從早期的Cortex-A15到Cortex-A57,再到Cortex-A72、Cortex-A73以及Cortex-A75,ARM最近數年內不斷通過發佈全新架構,推動了移動計算性能的不斷前行。今年五月,ARM又發佈了全新的Cortex-A76架構,這款架構瞄準的是全新7nm工藝,其性能表現有望再攀高峰。

ARM在五月的ARM Tech Day上,發佈了一個全新的架構:Cortex-A76。和近期所有命名為“7x”的架構一樣的是,Cortex-A76是一款主打高性能的大核心產品。實際上,這款全新的高性能架構並不是那麼簡單,它有可能將ARM帶入一個全新的市場,向從未正面交鋒的對手發起衝擊。

來自奧斯汀家族的高性能移動架構

在本刊《移動世界的新王者—深度解析Cortex-A73》一文中,曾經詳細梳理了ARM幾大研發中心對應的產品及研發歷史。ARM的架構研發團隊有三個,分別位於美國得克薩斯州的奧斯汀、法國索菲亞以及英國劍橋。在過去一段時間中,其奧斯汀團隊和旗下產品較少在人們面前出現,人們熟悉的Cortex-A73、Cortex-A75等都來自索非亞團隊。實際上沉默是為了更好的爆發,奧斯汀團隊早在2016年就已經開始研發有關未來微架構體系的相關內容,尤其是在FP/SIMD方面,Cortex-A75就從奧斯汀團隊的新架構中吸取了不少“養分”。

奧斯汀團隊最新的研發成果就是Cortex-A76。對ARM來說,Cortex-A76是一個全新研發的架構,也是一個全新的起點—對一個以出售IP為主的企業來說,一般不會研發全新架構,因為這往往意味著高昂的投入。但是ARM還是這樣做了,並宣稱其為第五代“年度節點”產品。從ARM過去五年的發展來看,其每年推出一個新的微體系架構類似於英特爾的“Tick-Tock”,但在ARM這裡實際上是“Tock-Tock-Tock”。ARM宣稱其每一代的GAGR(Compound Annual Growth Rate,年度複合增長率)高達25%,並全部來自於微架構的改進。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76是一個“筆記本電腦”級別的處理器產品。

那麼Cortex-A76為何值得ARM投入甚多,並讓重要的架構研發團隊從零開始、全力投入呢?這是因為Cortex-A76的優勢在於設計時兼顧了高性能和高效率。如果從傳統架構改進而來,研發人員不得不遇到很多掣肘,但是設計一個全新架構,研發人員可以消除整個系統中的瓶頸,並打破之前微架構的限制。

Cortex-A76的重點放在了高性能上,並且保持極高的能耗比使其能夠適應不同的場合,包括對功耗及其敏感的移動設備等。鑑於Cortex-A76如此優秀的特性,用ARM的話來說,Cortex-A76是一款“筆記本電腦”級別的高性能處理器架構,同時還具有高效能。這個理念貫穿了ARM Tech Day的始終,ARM希望利用Cortex-A76的巨大性能提升來進一步強化新興市場的競爭,例如高通正在宣傳其驍龍處理器的“Always Connected PCs”,正是基於這個理由。

在一些寬泛的指標中,ARM對Cortex-A76的具體期望如下:性能提高35%,功率效率(能耗比)提高40%,此外還有對機器學習的支持,性能提升至原有架構的4倍等。ARM還給出了性能對比的基準:10nm工藝、2.8GHz運行的Cortex-A75架構對比7nm工藝、3GHz運行的Cortex-A76架構。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲ARM對Cortex-A76的性能期望。

另外,Cortex-A76還可以兼容最新的DynamIQ技術,可以將其配合Cortex-A55,組成一個兼顧高性能和高性能功耗比的處理器集群,廠商可以和目前的Cortex-A75搭配Cortex-A55那樣,推出Cortex-A76搭配Cortex-A55的“1+6”或者“2+6”處理器集群。值得一提的是,Cortex-A76在設計中也作出了一些取捨,比如ARM依舊指出Cortex-A75擁有最好的PPA(單位面積性能),因此Cortex-A75也並非落伍,在具體產品中使用誰將取決於廠商的需求。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76支持DynamIQ,能夠組成不同的核心。

接下來,本文將深入Cortex-A76的核心,帶你瞭解這一全新架構。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76架構設計的一些要點

Cortex-A76前端架構

總體來看,Cortex-A76是這樣一個結構:超標量亂序結構,擁有4個解碼前端(4發射),8個執行端口,總流水線級數13級,執行延遲為11級。在前端,ARM設計了一個新的預測/獲取單元,被稱為“基於預測的獲取”,這意味著分支預測單元將介入指令獲取單元的工作,這和之前所有的ARM微架構都有所不同,能夠實現更高的性能和更低的功耗。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76的架構總覽

在分支預測單元方面,ARM首次採用了混合間接預測器。預測器和讀取單元分離,其支持的大型結構獨立於機器其餘部分運行。獨立結構意味著可以使用時鐘門控技術控制功耗,這對分支預測單元而言是能效比上的積極改進。分支預測器方面,ARM設計了3級分支目標緩存,一個16通路的nanoBTB,一個64通路的microBTB和一個6000通路的主BTB。

相比之下,雖然ARM在Cortex-A73和Cortex-A75的分支預測器上宣稱能夠預測所有分支,但是Cortex-A76的分支預測器顯然更為強大,能夠帶來比前代產品更強的分支預測效果,以提高效能。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76的前端,強化的預測部分的功能。

Cortex-A76的分支預測單元運行速度是讀取單元的2倍,也就是32Bit/週期,這意味著每週期可以執行多達8×32bit條指令,這些指令在由12個“區塊”所組成的指令提取單元前會組成一個指令提取隊列。相對應的,讀取單元以16Bit/週期操作,執行4×32bit的指令。以指令讀取單元2倍速度運行的分支預測單元,能夠在預測錯誤的情況下,隱藏流水線中的分支“氣泡”並避免錯誤影響指令提取單元以及後續的核心其餘部分,一些消息顯示核心方面能夠處理指令方面出現的8次錯誤,大大提高了容錯率。

所謂“氣泡”,是指那些可能存在的危險導致流水線發生指令停滯或者延遲。在之前的微架構中,即使預測正確,並且指令端能夠向解碼端發送大量的指令,但一旦指令輸入解碼端並被分解成微操作的時候,就有很大可能遇到“氣泡”。

流水管線方面,Cortex-A76擁有13級流水線和11級核心的延遲。在這個過程中,指令等待的關鍵路徑和階段可以重疊,比如發生在分支預測過程的第二個循環和指令提取過程的第一個循環之間。在最理想的情況下,核心延遲可以縮短3個週期。

在解碼和重命名階段,Cortex-A76的每個週期吞吐量為4個指令,也就是4發射方案。相比之下,Cortex-A73和Cortex-A75在這個階段的指令吞吐能力分別為2和3,所以Cortex-A76帶來了比Cortex-A75約33%的指令寬度增幅。Cortex-A72的指令吞吐能力為3,但是在Cortex-A73上變為2,主要是考慮到架構需要進一步優化效率和功率,並儘可能高的提高前端設備的利用率。隨著Cortex-A76進入4發射,ARM引來了自己最“寬”的微架構,雖然相比三星或者蘋果,Cortex-A76依舊顯得比較“瘦”。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76的解碼和重命名階段的設計。

Cortex-A76的提取單元提供最多16個32bit的指令解碼隊列。流水線階段由2個指令對齊和解碼循環組成。在這一步,ARM決定使用2週期單元而不是之前架構上的1週期單元。另外,在處理ASIMD/FP管線指令時,之前的索菲亞內核在解碼階段依舊需要一個輔助週期,但是ARM似乎發現了其他的優化方法,使得Cortex-A76的微架構能滿足設計的需求。

解碼階段的每個週期採用4條指令,並且以每條指令1.06Mops的平均比率輸出宏操作。ARM同樣在寄存器重命名階段進行了功耗優化,做法和之前的分支預測單元類似,都是為功能模塊加入時鐘門控。Cortex-A76中的重命名單元時獨立的,通過時鐘門控控制整數、ASMID和標誌操作等。

另外,Cortex-A76的重命名和調度只需要使用1個循環,相比之前的2個週期有所減少。在宏指令方面,Cortex-A76的宏指令按照每條指令1.2uop的比例拆分為微操作,因此每個週期擁有高達8uops的調度次數,這比之前Cortex-A75的6uops和Cortex-A73的4uops增加了不少。

在亂序執行方面,Cortex-A76的亂序窗口大小為128,緩衝區被分成負責指令管理和負責回收註冊的兩個方面,ARM稱其為混合提交系統。這裡需要強調的是,ARM沒有把重點放在增加相關單元和設計方面,因為ARM發現這部分的性能投資回報非常糟糕。一些數據表明重新排序緩衝區7%才能增加1%的性能,因此這部分設計只需要做到夠用就好。另外,ARM還表明自己試圖優化前端,一夥的管理程序活動和系統調用方面的最低延遲,但是沒有更進一步的消息。

Cortex-A76的後端架構

再來看看後端的執行部分。Cortex-A76的整數核心包含了6個執行單元,其中圖中有4個單元分別是1個分支、2個ALU、1個ALU/MAC/DIV單元,再加上一個加載/存儲單元。其中的3個整數執行流水線中的2個ALU進行簡單算術操作,1個複雜流水線執行乘法觸發和CRC操作。3個整數管道由一個深度為16的指令隊列提供指令服務,2個加載/存儲單元則由深度為12的指令隊列負責。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76的後端設計

浮點方面,ARM設計了2個執行單元,其中一個執行FMUL/FADD/FDIV/ALU/IMAC等,功能較為強大,另一個比較簡單隻執行FMUL/FADD/ALU,ASMID浮點核心由2個深度為16的隊列提供指令服務。

當人們談及後端架構時,往往會提到指令吞度量和延遲。Cortex-A76在指令延遲方面有很大進步,這是由於其架構設計可以在非常重要的指令上削減週期所致。Cortex-A76將乘法和乘法累加的延遲從之前的3個週期降低到了2個週期,吞吐量相比Cortex-A75保持不變。顯然,因為Cortex-A76有3個整數流水線,這相當於吞吐量相比Cortex-A75增加了50%,同時延遲更低。

在負責FP和ASMID操作的“VX”也就是矢量執行流水線中它有著更顯著的改進,ARM稱其為“最先進”的設計,雖然這個結果已經被炒作了好多年了。從設計來看,浮點算數運算的延遲從3個週期降低到了2個週期,乘法累加從5個週期降低到了4個週期。ARM在這裡稱執行帶寬依舊是“雙128位ASMID”的意思是,對於Cortex-A75和之前的處理器,只有一個向量管線能夠使用128位,另一個則是64位,在Cortex-A76上,2個向量管線都是128位,所以4精度操作的吞吐能力相比前代產品增加了一倍。

Cortex-A76的數據緩存固定為64KB,並且是4路關聯的設計方案,負載延遲保持在4週期,數據標籤和查找所需要的DTLB運行在一個單獨的管道中。ARM的設計目標是最大限度的提高MLP/內存級並行性,以便能夠支持更多的內核。此外,Cortex-A76還設計了4個不同的預取引擎,這些並行運行的預取引擎可以查看各種數據模式並將數據加載到緩存中。

就Cortex-A76的緩存層次而言,ARM設計的還是非常到位的,在帶寬和數據延遲方面達到兩全其美。64KB L1指令緩存和64KB L1數據緩存的讀取速度高達32Bit/週期。L2高速緩存可配置為256KB或者512KB,並且使用了第二代DSU設計,D端包括了一個2X 32Bit/週期寫入和讀取接口。L3緩存採用了獨佔設計。整體而言,核心微架構方面有關緩存的改進據說可以將內存帶寬提升最高達90%。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76的L1數據緩存設計

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76的緩存加入了第二代DSU

Cortex-A76在存儲微架構設計上的優勢在於通過詳細優化每一週期的運行以最大化整個核心的內存性能。在設計階段,工程師研究那些可以為性能或者功耗帶來0.25%差異的特性,如果可以達到,那麼就被認為是對核心有價值的設計。不要小看這些百分比,大量的小數據調優後能夠帶來相當顯著的性能提升。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲Cortex-A76的緩存性能比前代產品有很大提升

在延遲方面,ARM認為Cortex-A76做到了極致。ARM宣稱要使得自己的客戶能夠SoC上遵循自己的設計規範,以實現最高的性能並充分發揮優勢。比如對主內存每納秒的延遲提升將會帶來0.25%的性能。正如我們在驍龍845中所看到的,這顆SoC的問題在於其延遲較高的L4緩存,使得最終性能沒有達到ARM的期望。未來,ARM的客戶們需要更多的關注內存子系統的相關延遲信息,否則處理器的性能和功耗將會產生較大差異,甚至高於不同的架構帶來的差異。

性能和功耗預測

ARM對Cortex-A76的性能和功耗進行了預測,包括微架構設計差異、內存子系統差異、頻率和系統等。

就通用IPC而言,相比Cortex-A75,ARM承諾Cortex-A76的整數效能提升25%,ASIMD/浮點效能提升35%,再加上90%的內存效能提升,因此最終可以在GeekBench4中提升25%,JavaScript性能增加35%,在AI計算中,Cortex-A76的雙ASMID 128位計算單元使得半精度矩陣乘法的性能達到之前產品的3.9倍。考慮到微架構的改進,這些數據是可信的。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲ARM針對Cortex-A76的性能預測。

向7nm時代的性能巔峰出擊!ARM Cortex-A76架構解析

▲相比之前的Cortex-A75,Cortex-A76在給定工藝和頻率下綜合性能提升了35%。

需要注意的是,比較中的Cortex-A76使用的是更新的TSMC的7nm工藝,時鐘頻率也要更高一些。這一部分,ARM預測的結果是Cortex-A76在7nm工藝下可達3GHz,其GeekBench4的測試性能總分增加高達35%。

在單核心性能方面,Cortex-A76的情況是怎樣的呢?用目前常見的處理器為例的話,Cortex-A76在3GHz的情況下,單核心性能將和Exynos 9810、Apple A10接近,在2.5GHz情況下已經勝出驍龍845不少。從這一點來看,Cortex-A76的性能表現最終還是取決於頻率情況,在過去的發佈中,ARM總是在這一點上表現的過於樂觀,比如Cortex-A73最初預計高達2.8GHz,Cortex-A75甚至可達3GHz,最終實際產品不超過2.4GHz和2.8GHz。

由於不同的工藝和設計,即使採用一樣的核心架構,都會導致頻率和功耗的差異。由於移動性能芯片一是以性能分檔,二是以功耗分檔,因此最終在不同目標產品中使用時,有可能會降低頻率以更好的平衡功耗和性能,兩者都會帶來頻率降低。對於實際上市的第一批Cortex-A76產品而言,頻率可能難以達到3GHz,估計以2.5GHz左右居多。

在這裡,ARM的預測則更為激進一些,更偏向於高TDP平臺所能達到的頻率。ARM還展示了一張幻燈片,顯示了處理器在3.3GHz下的極限性能,此時Cortex-A76的性能幾乎可以達到Cortex-A73的2倍。需要注意的是,這裡的功耗已經超過了5W,因此使用場合可能並非電池供電的小尺寸移動設備。

再來看看功耗方面的改進。ARM給出的數據是在750mW每內核的功耗下,10nm工藝的Cortex-A75和7nm工藝的Cortex-A76對比時,後者的性能提高了40%;或者說在運行同樣的SPECRAM2006,輸出同樣的性能時,Cortex-A76的只有對比產品的一半。在這所有的測試和對比中,我們尚未看到處理器更詳細的性能對比,包括3GHz下Cortex-A76的一些細節表現等。

從目前的工藝情況來看,臺積電的承諾是10nm FF相對於其16nm FF功耗下降40%,但是迄今為止臺積電還未在實際生產中出貨過Cortex-A75的產品,實際上只有三星的10nm LPP上生產過Cortex-A75相關的驍龍845處理器,從一些數據上來看三星的工藝可能略勝臺積電的10nm FF。

在能耗方面,ARM引用的是SEPCint2006的性能指標,據猜測ARM在這個對比中使用的是2.8GHz的Cortex-A75作為參照,如果ARM要和驍龍845作對比的話,大概和2.4GHz的Cortex-A76相當,考慮到工藝的進步,這大概還為Cortex-A76留下了約15%的架構優勢。但是,由於Cortex-A76的目標是性能提升35%,正如我們看到的那樣,提升頻率獲得性能後,功耗並非線性增長,因此功耗和效率優勢在峰值性能下可能會很快的降低。

儘可能考慮所有因素後,我們認為7nm的Cortex-A76在峰值性能的能耗比表現可以略微勝出目前的高端SoC,這是一個非常重要的指標。如果更保守的來看的話,2.5GHz的情況下,Cortex-A76和Cortex-A73以及Cortex-A75相比,能耗比優勢將會擴大至30%。

總的來看的話,Cortex-A76的能源效率(能耗比)非常高,但是它也可以是一個受到TDP控制的設計,峰值性能下TDP較高,但這種處理器往往並不會使用在手機這樣的小尺寸產品中,因為它們需要更低的頻率以更好地控制發熱。對於筆記本電腦這類設備而言,Cortex-A76可以儘可能使用高頻率來獲取較高性能,畢竟大尺寸設備在散熱和電源方面都會有更好的表現。

未來兩代處理器的基礎

Cortex-A76並非一個龐大的架構,而是在各方面都很均衡。除了性能的提升外,Cortex-A76在幾乎每一步設計中都非常關注電源效率,ARM希望得到的是能兩全其美的架構。

Cortex-A76的相關產品目前已經有兩家廠商與ARM在合作,很可能今年年底之前就有相關產品發佈。其中華為海思是最重要的合作伙伴之一,高通在下一代產品上也可能採用Cortex-A76。至於三星,由於Cortex-A76沒有明顯超越M3,三星在改進M3的能耗比後還可能進一步推出M4,因此可能不再使用ARM公版或者改版。

根據ARM的規劃來看,Cortex-A76將成為未來2代處理器的基礎,也就是說未來的新的架構將以Cortex-A76為基礎進行進一步開發,提高性能或者提高能耗比。根據ARM的數據,他們希望自己的產品年複合增長率為25%,這意味著未來幾年移動SoC就有希望追上PC處理器的性能,這會讓市場變得更加有趣。


分享到:


相關文章: