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