1. 引言
前文介紹了Arm公司近幾年在移動(dòng)處理器市場(chǎng)推出的Cortex-A系列處理器。Cortex-A系列處理器每年迭代,性能和能效不斷提升,是一款非常成功的產(chǎn)品。但是,Arm并不滿足于Cortex-A系列每年的架構(gòu)小幅度升級(jí),又推出了X計(jì)劃,也就是Cortex-X產(chǎn)品線。Cortex-X系列處理器采用了激進(jìn)的架構(gòu)設(shè)計(jì),大幅度提升移動(dòng)處理器的性能(俗稱超級(jí)大核),本文將重點(diǎn)介紹Arm的Cortex-X系列產(chǎn)品。
2. X計(jì)劃起源
Cortex-X計(jì)劃起源可以追溯到2016年,當(dāng)時(shí)Arm推出了一個(gè)新的客戶Licence叫做“Build on Cortex”,允許用戶請(qǐng)Arm基于Cortex核心做一些定制優(yōu)化,如可以增加或者減少Cache數(shù)量等,客戶如高通公司一直是該計(jì)劃的使用方,用于開發(fā)和迭代每年的Kyro系列處理器。到了2020年,Arm公司正式宣布推出Cortex-X這一全新的高性能處理器設(shè)計(jì)計(jì)劃。Cortex-X計(jì)劃的目標(biāo)是為高端移動(dòng)平臺(tái)、云服務(wù)場(chǎng)景、邊緣計(jì)算和高性能計(jì)算設(shè)備提供更快、更強(qiáng)大的處理器核心。
Cortex-X系列定制處理器計(jì)劃,相比2016年的定制方案要更加深入,Cortex-X系列處理器的目標(biāo)是給用戶提供足夠強(qiáng)大性能的核心,在此計(jì)劃下芯片廠商可以早期參與Arm的Cortex處理器架構(gòu)設(shè)計(jì),并基于 Cortex-X 核心進(jìn)行定制優(yōu)化,以適應(yīng)自己的產(chǎn)品需求。但是從產(chǎn)品的表現(xiàn)看,由于Arm每年都在迭代Cortex-X系列處理器(2023,第四年,預(yù)計(jì)會(huì)更新Cortex-X4),迭代速度和周期都非常快,芯片廠商并沒有針對(duì)X系列處理器特殊定制微架構(gòu),而是通過搭配不同尺寸的緩存,設(shè)計(jì)出面向不同價(jià)位段的產(chǎn)品。
Cortex-X系列的出現(xiàn),和市場(chǎng)競(jìng)爭(zhēng)日益激烈,芯片廠商有較強(qiáng)需求相關(guān)。市場(chǎng)上,蘋果公司堅(jiān)持自己研發(fā)A系列處理器, 蘋果的A系列處理器是專為iPhone和iPad設(shè)備設(shè)計(jì)的自研處理器,基于Arm指令集,蘋果自己設(shè)計(jì)并優(yōu)化了微架構(gòu)。從2010年推出的A4處理器開始推出第一款量產(chǎn)產(chǎn)品,當(dāng)前蘋果A系列處理器已發(fā)展到A16(2022年)。A系列處理器一直采用較為激進(jìn)的微架構(gòu)設(shè)計(jì),通過強(qiáng)大的計(jì)算能力領(lǐng)先行業(yè)。最新A16還是保持Armv8指令集,沒有升級(jí)到Armv9指令集,最后我們會(huì)簡(jiǎn)單對(duì)比下Cortex-X系列和蘋果的A系列處理器的差異。
2017年至2022年的Arm系列處理器
?
3. Cortex-X1:第一代Cortex-X處理器
2020年5月,Arm發(fā)布了基于Armv8.2架構(gòu)的最后一款處理器Cortex-A78,同時(shí)還發(fā)布了一顆性能更強(qiáng)大的Cortex-X1處理器。Cortex-X1 處理器比之前的 Cortex-A77 提升了 30% 的性能,由于采用大緩存的設(shè)計(jì)架構(gòu),還提升了 23% 的芯片能效。簡(jiǎn)單總結(jié)下,X1提供了更強(qiáng)的性能,整體更優(yōu)秀的能效,但是極限功耗高于Cortex-A78。
Cortex-X1性能強(qiáng)大,能效有明顯改善,但是由于增大了緩存和處理單元,使得芯片的整體面積增大不少,廠商往往出于成本考慮,一般在處理器中只會(huì)放置一顆Cortex-X系列處理器來提升單線程的峰值性能。從Cortex-X1出現(xiàn)后,市場(chǎng)上的旗艦處理器架構(gòu)發(fā)生了變化,逐步從4+4架構(gòu),演變成有一個(gè)超級(jí)大核心的1+3+4架構(gòu)。
下圖是一個(gè)典型示意圖,在5nm工藝下如果僅升級(jí)到A78,性能提升20%,面積可以減少15%;在5nm工藝下升級(jí)到1個(gè)X1+3個(gè)A78,L3增大,峰值性能可以提升30%,但是面積要增加15%,一來一回差異30%芯片面積,這樣看來,旗艦芯片要漲價(jià)也情有可原了。
我們看一下Cortex-X1的微架構(gòu)細(xì)節(jié),相比A78,Cortex-X1具體有以下提升:
1、BPU分枝預(yù)測(cè)單元的L0 BTB從64提升到96,增加50%;
2、前端Decode從4路提升到5路;
3、MOP通路從6路提升到8路;
4、MOP Cache從1.5K提升到3K,增大一倍;
5、ROB緩沖從160(推測(cè))提升到224(參考,AMD的Zen2處理器的ROB是224);
6、L1L2L3都較大,分別是64KB起、256KB起、最多8MB;
7、執(zhí)行單元整數(shù)和存儲(chǔ)部分變化不大,浮點(diǎn)單元相比A78提供了2倍的NEON單元,可以同時(shí)提供4個(gè)128bit運(yùn)算能力;
8、存儲(chǔ)單元通路雖然沒有變化,但是其LoadStore的緩沖數(shù)量增加了33%。
下面用一張表格列舉了一些微架構(gòu)的核心變化:
第一代的Cortex-X1還是使用的Armv8.2的指令集,并沒有升級(jí)到Armv9,似乎Arm覺得要在2021年同時(shí)發(fā)布Armv9和全新的Cortex-A、Cortex-X系列壓力有點(diǎn)大,所以提前將Cortex-X1的發(fā)布放在了2020年。
可惜,Cortex-X1的命運(yùn)可謂生不逢時(shí),2020年采用Cortex-X1的典型旗艦處理器有三星的Exynos 2100和高通的Snapdragon 888,這兩款處理器都搭載了三星的5nm工藝(5LPE),這一次三星工藝翻車了,架構(gòu)的提升得不到工藝的補(bǔ)償,導(dǎo)致這兩款處理器的性能和功耗的表現(xiàn)都不是很好。目前(2023年)市面上還活躍著不少采用A78處理器架構(gòu)的芯片,如MTK的天璣8100、8200等處理器,但是已經(jīng)鮮少看到搭載Cortex-X1處理器的芯片了。
4. Cortex-X2:第二代Cortex-X處理器
2021年5月,Arm的Cortex-X2系列處理器如期而至。這一次,Cortex-X2正式升級(jí)到了Armv9新架構(gòu),搭載了SVE2指令集,并且只支持運(yùn)行64bit軟件。還記得A710的產(chǎn)品代號(hào)叫做Matterhorn么?這一代Arm為了更好的記憶產(chǎn)品代號(hào),將Cortex-X2處理器的產(chǎn)品代號(hào)命名為Matterhorn-ELP,后續(xù)Cortex-X系列應(yīng)該也是基于同期Cortex-A系列的產(chǎn)品代號(hào),增加ELP后綴,ELP的全稱是Enhanced Lead Partner的意思。
第一代的Cortex-X1由于搭配工藝的原因?qū)е抡w不佳的表現(xiàn)并沒有掩埋Cortex-X系列微架構(gòu)的成功,Arm計(jì)劃將Cortex-X系列發(fā)揚(yáng)光大,后續(xù)我們看到的也是每年一更新的快速迭代節(jié)奏。如此快速的更新節(jié)奏,芯片廠商也很難深度定制,后續(xù)各大廠商發(fā)布的幾款采用Cortex-X系列處理器的產(chǎn)品,還是采用了Arm的公版架構(gòu),基于產(chǎn)品的價(jià)位段,在Cache容量上做一些差異化的配置。
從上圖中可見,Arm對(duì)于兩個(gè)系列的策略有所不同,Cortex-A系列主打均衡能效并小幅度改善性能 ,Cortex-X2相比Cortex-X1在性能上有更明顯的提升,進(jìn)一步拉開了A系列和X系列的性能差距,由此可見Cortex-X系列的目標(biāo)是推進(jìn)Arm核心架構(gòu)的算力提升和突破。
從互聯(lián)網(wǎng)上可以找到Cortex-X2的微架構(gòu)框圖,我們可以此對(duì)比Cortex-X2和Cortex-X1的微架構(gòu)差異,并分析影響性能提升的因素。Cortex-X2相比Cortex-X1,在微架構(gòu)上有以下變化:
1、將分支預(yù)測(cè)和Fetch解耦,提升并行度;
2、指令流水線從11級(jí)減少到10級(jí),dispatch從2個(gè)時(shí)鐘周期減少到1個(gè)時(shí)鐘周期;
3、ROB緩沖從224提升到288,提升了30%;
4、支持SVE2 SIMD指令集;
5、ML能力支持Bfloat16;
6、取消了Aarch32支持;
7、LoadStore結(jié)構(gòu)體緩沖提升33%;
8、d-TLB從40提升到48,提升了20%;
再來看看具體性能數(shù)據(jù),Arm宣稱Cortex-X2相比Cortex-X1在整數(shù)性能上提升了16%,在ML能力上提升了2倍。回顧一下A710,Arm宣稱的數(shù)據(jù)是相比A78提升了10%的整數(shù)性能。從能效曲線上看,Cortex-X2的最大性能和功耗都有增加,能效在低頻率區(qū)間和Cortex-X1差異不大,在中高頻率區(qū)間相比Cortex-X1有改善。由于極限功耗持續(xù)增加,對(duì)于散熱能力和發(fā)熱策略改善提出了更大的訴求和壓力。
2021年,第一代搭載了Cortex-X2的處理器高通8Gen1,由于采用了三星4nm LPX工藝,性能功耗的表現(xiàn)不是很理想,后續(xù)高通將工藝切換到臺(tái)積電4nm工藝,在2022年推出了同樣設(shè)計(jì)的8+Gen1處理器,宣稱CPU功耗降低了30%,這才發(fā)揮出了Cortex-X2的實(shí)力,目前有多部熱門手機(jī)搭載,當(dāng)前也是Cortex-X系列產(chǎn)品中賣的最好一代。
5. Cortex-X3:第三代Cortex-X處理器
2022年6月,市場(chǎng)上還在關(guān)注升級(jí)新工藝的Cortex-X2系列處理器產(chǎn)品時(shí),Arm發(fā)布了當(dāng)年的新品Cortex-X3,Cortex-X3的代號(hào)是Makalu-ELP,和同期Coretex-A715的代號(hào)Makalu保持一致。2021年的Cortex-X2肩負(fù)著升級(jí)Armv9指令集的任務(wù),在微架構(gòu)上的修改上相比第一代并不是很多。新一代的Cortex-X3在微架構(gòu)上的升級(jí)和變化要更多一些,后續(xù)我們會(huì)詳細(xì)分析。性能上,Arm宣稱Cortex-X3在性能相比上一代IPC提升11%,綜合性能有22%的提升(包含工藝的提升)。
從Cortex-X2開始,X系列處理器就不再支持32bit應(yīng)用,這一代Arm繼續(xù)針對(duì)64bit進(jìn)行微架構(gòu)的優(yōu)化,通過剔除和優(yōu)化一些陳舊的32bit兼容設(shè)計(jì),進(jìn)一步提升64bit應(yīng)用程序的執(zhí)行效率。
下面我們具體看一下Cortex-X3微架構(gòu)相比上一代的變化:
1、MOP Cache尺寸變化。隨著半導(dǎo)體工藝的持續(xù)演進(jìn),接下來的3nm新工藝將繼續(xù)縮小半導(dǎo)體器件的尺寸,但是,在半導(dǎo)體中SRAM的尺寸并沒有隨器件尺寸縮小而同步縮小。如何減少SRAM的占用,是對(duì)先進(jìn)工藝設(shè)計(jì)提出的一個(gè)考驗(yàn)。在Cortex-X3的前端設(shè)計(jì)中,Arm將L0的MOP Cacha的SRAM從上一代的3K減少到1.5K,推測(cè)也是為了減少未來在先進(jìn)工藝中SRAM的占比。同時(shí),Arm提出通過優(yōu)化Cache的填充算法,來做到盡量不影響性能。記得MOP Cache在A77引入時(shí)就有討論過,1.5K的容量就可以達(dá)到85%的命中率,增加容量帶來的邊際效益也增加,所以增大Cache帶來的效果提升會(huì)越來越小,所以這次Arm將Cortex-X3的MOP Cache降低到1.5K(同期的A715則是取消了MOP Cache)。
2、Fetch-decode通路從5路提升到6路,F(xiàn)etch能力提升了20%;
3、在ROB重排序緩沖區(qū)上,上一代Cortex-X2是228個(gè),Cortex-X3繼續(xù)提升11%,達(dá)到了320 entries;
4、Arm繼續(xù)提升Cortex-X3的分支預(yù)測(cè)能力,L1 BTB從64提升到96,L2 BTB從16384提升到24576。分支預(yù)測(cè)單元通過解耦合設(shè)計(jì),和Fetch形成兩條核心指令通路,大幅提升同步執(zhí)行效率,一旦發(fā)生了分支錯(cuò)誤,可以快速從BTB緩沖中拿到需要的指令,進(jìn)行快速切換。通過這些優(yōu)化,Arm宣稱平均分支預(yù)測(cè)延遲周期數(shù)減少了12.2%,整體執(zhí)行流程中Stall占比降低了3%;
5、在分支預(yù)測(cè)模塊上持續(xù)優(yōu)化,Cortex-x3中為indirect branches新增了一個(gè)獨(dú)立預(yù)測(cè)單元,并提升了conditional branches的準(zhǔn)確率,Arm宣稱平均的分支預(yù)測(cè)錯(cuò)誤率可以降低6.1%;
6、流水線的優(yōu)化,Cortex-X3繼續(xù)優(yōu)化了流水線,從10級(jí)優(yōu)化到9級(jí),主要是優(yōu)化了MOP Cache的讀取周期;
7、執(zhí)行單元上,這次Cortex-X3大幅度提升了整型ALU的數(shù)量,從4個(gè)提升到6個(gè),是一個(gè)比較大的變化,整體從2個(gè)branch+2個(gè)ALU變化為2個(gè)branch+4個(gè)ALU,主要是提升了整型性能;
8、訪存單元上,因?yàn)樘嵘薃LU的數(shù)量,相應(yīng)的整型讀取帶寬也從24提升到了32,并且增加了兩個(gè)額外的數(shù)據(jù)預(yù)取模塊。
上面是Cortex-X3的微架構(gòu)框圖,我們把X1至X3放在同一張表中對(duì)比:
6、Cortex-X3和蘋果處理器的對(duì)比
Cortex-X系列處理器通過三代的迭代,不斷升級(jí)微架構(gòu)提升性能,其單核心有明顯提升,已經(jīng)在拉近蘋果A系列處理器和Intel臺(tái)式機(jī)處理器的差距。圖中對(duì)比了不同處理器的單核心的性能,可以看到Cortex-X3相比Cortex-X2有進(jìn)一步的提升,距蘋果的A15處理器還有一些差距。目前我還沒有找到蘋果A15處理器的微架構(gòu),但是有找到2020年A14處理器大核心(Firestorm)的微架構(gòu),下面通過表格做了一個(gè)對(duì)比。
從Cortex-X系列和蘋果A14的對(duì)比可以看出,蘋果在設(shè)計(jì)A系列處理器時(shí)對(duì)于微架構(gòu)的調(diào)整更加激進(jìn),采用了更大的L1、L2緩存,Decoder數(shù)量更多,而ROB緩沖的尺寸幾乎是Cortex-X系列的一倍,這也對(duì)于指令重排序的效率和算法優(yōu)化能力提出了更高的要求。
雖然Cortex-X系列每年迭代,相比蘋果的A系列激進(jìn)的設(shè)計(jì),目前還存在一定的差距。但是隨著Cortex-X系列處理器的每年迭代更新,我們也希望看到在微架構(gòu)能力上打平甚至超過競(jìng)品的那一天。
由于蘋果在A系列處理器采用大緩存大尺寸設(shè)計(jì),在智能手機(jī)產(chǎn)品中一般是放置兩顆大核心,采用2+4的架構(gòu)。采用Cortex-X系列處理器的安卓手機(jī),一般采用八核心的架構(gòu),例如最新的高通8Gen2處理器,采用1個(gè)Cortex-X3+2個(gè)A715+2個(gè)A710+3個(gè)A510的組合架構(gòu),提供了5個(gè)大核心的算力,在多核心算力上相比6核心有多2個(gè)核心的優(yōu)勢(shì),一定程度上彌補(bǔ)了多核心的差距。
?
7、總結(jié)和對(duì)Cortex-X4處理器的期望
距2023年中Arm發(fā)布Cortex-X4處理器的時(shí)間不遠(yuǎn)了,下一代的Cortex-X4處理器的代號(hào)叫做Hunter-ELP,期望這一代的“獵人”能給我們帶來更多的驚喜,新的架構(gòu)改了什么地方,有多少性能提升,我也會(huì)第一時(shí)間關(guān)注和分享。
Arm公司通過三年時(shí)間迭代Cortex-X系列處理器,每年的性能上都有兩位數(shù)的提升,切實(shí)讓消費(fèi)者使用上了更快更強(qiáng)的處理器和產(chǎn)品,這半年來,采用Cortex-X2和Cortex-X3系列架構(gòu)的高通8+Gen1、8Gen2、MTK的天璣9200等處理器的市場(chǎng)口碑都很不錯(cuò)。
此外,高通的8Gen2處理器還第一次打破了傳統(tǒng)4顆大核心的架構(gòu),提供了1+4+3的5顆大核心配置組合。期望未來的產(chǎn)品不但可以看到Arm的最新架構(gòu),而且可以看到更多有意思的CPU核心架構(gòu)組合,如果可以在一個(gè)處理器中放置多顆Cortex-X核心,相信基于Cortex-X系列的Arm處理器也可以挑戰(zhàn)蘋果 A系列處理器綜合性能。
編輯:黃飛
?
評(píng)論
查看更多