AMD基于Zen3全新架構(gòu)的銳龍5000系列終于解禁上市了,不知道銳龍9 5950X、銳龍9 5900X的性能是否讓大家滿(mǎn)意?大喊YES的同時(shí)有沒(méi)有剁手買(mǎi)買(mǎi)買(mǎi)?
接下來(lái),快科技還會(huì)奉上銳龍7 5800X、銳龍5 5600X的評(píng)測(cè),敬請(qǐng)期待。
這次,銳龍一直以來(lái)可以說(shuō)唯一弱勢(shì)的單核心/游戲性能終于不再是短板,一舉實(shí)現(xiàn)了對(duì)Intel的反超,而且還是在制造工藝維持7nm工藝完全不變的前提下做到的,全新設(shè)計(jì)的Zen3架構(gòu)可以說(shuō)功不可沒(méi),這也是Zen誕生以來(lái)最大規(guī)模的變革。
今天,我們就好好聊一聊Zen3架構(gòu)的革新之處。
當(dāng)然了,處理器架構(gòu)設(shè)計(jì)是極為高深的學(xué)問(wèn),我們不可能講得多么深入、專(zhuān)業(yè),就說(shuō)說(shuō)一些比較表層和便于理解的東西,看看如此逆天的性能飛躍究竟如何而來(lái)。
首先,做任何事都要有目標(biāo),設(shè)計(jì)一個(gè)處理器架構(gòu)更是如此。Zen3的目標(biāo)就有三個(gè):
一是提升單線程性能,專(zhuān)業(yè)名詞叫IPC(每時(shí)鐘周期指令數(shù)),畢竟之前幾代一直追求多核心為主,是時(shí)候把單核性能提升到足夠的高度了,不然始終是瘸著腳走路,缺乏長(zhǎng)久競(jìng)爭(zhēng)力。
二是在維持8核心CCD模塊的前提下,統(tǒng)一核心與緩存,提升彼此通信效率,降低延遲。
三是繼續(xù)提高能效比,性能提升的同時(shí)功耗不能失控。
為此,Zen3架構(gòu)對(duì)于所有模塊都進(jìn)行了翻新,前端、預(yù)取、解碼、執(zhí)行、整數(shù)、浮點(diǎn)、載入、存儲(chǔ)、緩存等等,每個(gè)環(huán)節(jié)都是煥然一新。
首先,Zen3設(shè)計(jì)了一個(gè)堪稱(chēng)藝術(shù)級(jí)的分支預(yù)測(cè)器,它之后有兩條通道將指令送入隊(duì)列,然后進(jìn)行分派,一是8路關(guān)聯(lián)的32KB一級(jí)指令緩存和x86解碼器,二是4K指令的操作緩存(Op-cache)。
x86解碼器的限制是每個(gè)時(shí)鐘周期只能處理最多4條指令,但如果是熟悉的指令,就可以放入操作緩存,每個(gè)周期就能處理8條,二者結(jié)合指令分發(fā)效率就大大提升,相比于Zen2直接上升了一個(gè)檔次。
指令分派之后就來(lái)到執(zhí)行引擎階段,分為整數(shù)、浮點(diǎn)兩大部分,每個(gè)時(shí)鐘周期可以向它們分派6條指令。
其中,整數(shù)單元還是4個(gè),但更加分散,并增加了一個(gè)單獨(dú)的分支與數(shù)據(jù)存儲(chǔ)單元,提升吞吐量,每時(shí)鐘周期可以生成3個(gè)地址。
浮點(diǎn)方面則分為六條流水線,進(jìn)一步提升吞吐量和效率。
內(nèi)存方面,每時(shí)鐘周期可以執(zhí)行3個(gè)載入,或者1個(gè)載入加2個(gè)存儲(chǔ),再次提升吞吐量,并且可以更靈活地處理不同工作負(fù)載。
單純說(shuō)Zen3可能感覺(jué)不到什么,那就對(duì)比一下Zen2,變化太多還是撿最核心的說(shuō)。
前端方面,主要有容量翻番的L1 BTB、更大的分支預(yù)測(cè)器帶寬、更快的預(yù)測(cè)錯(cuò)誤恢復(fù)、更快的操作緩存拾取、更精細(xì)的操作緩存流水線切換,等等。
執(zhí)行引擎方面,主要有獨(dú)立的分支與數(shù)據(jù)存儲(chǔ)單元、更大的整數(shù)窗口、更低的特定整數(shù)/浮點(diǎn)指令延遲、6寬度拾取與分發(fā)、更寬的浮點(diǎn)分派、更快的浮點(diǎn)FMAC(乘法累加器),等等。
載入/存儲(chǔ)方面,主要有更高的載入帶寬(2個(gè)變3個(gè))、更高的存儲(chǔ)帶寬(1個(gè)變2個(gè))、更靈活的載入/存儲(chǔ)指令、更好的內(nèi)存依賴(lài)檢測(cè),等等。
以上是Zen、Zen2、Zen3三代架構(gòu)在核心、緩存一些關(guān)鍵指標(biāo)上的變化。乍一看,Zen3變化的力度似乎不如Zen2,但一則這些數(shù)字不能完全反應(yīng)更深層次的變化,二則Zen3在關(guān)鍵指標(biāo)上更有突破,比如說(shuō)分發(fā)寬度從10/11一躍來(lái)到16,執(zhí)行效率提升可不止一點(diǎn)半點(diǎn)。
正是基于這些改進(jìn),Zen3架構(gòu)的IPC提升了多達(dá)19%,來(lái)自前端、載入/存儲(chǔ)、執(zhí)行引擎、緩存預(yù)取、微操作緩存、分支預(yù)測(cè)等部分的合力貢獻(xiàn)。
那么大家可能會(huì)疑惑了,19%這個(gè)數(shù)字怎么來(lái)的?
說(shuō)起來(lái)也簡(jiǎn)單,Zen3、Zen2架構(gòu)都固定在8核心、4GHz頻率,然后對(duì)比不同應(yīng)用的性能變化,最后綜合而來(lái)。
不同工作負(fù)載的提升幅度當(dāng)然不盡相同,變化最大的是銳龍之前的弱項(xiàng)網(wǎng)游,吃雞、LOL、CSGO這些提升了多達(dá)35-39%,再加上頻率提升等,最終大家就看到了銳龍5000在網(wǎng)游里邊翻天覆地的變化。
事實(shí)上,提升幅度超過(guò)19%平均水平的,基本都是游戲,也正因?yàn)槿绱耍J龍5000才在游戲性能上奪走了Intel的最后一處陣地,有資格說(shuō)自己是最好的游戲處理器。
提升幅度相對(duì)較小的是一些基準(zhǔn)性質(zhì)項(xiàng)目和一些難以深度優(yōu)化的游戲,尤其是單線程性能,比如POV-Ray 9%、CPU-Z 12%、CineBench R20 13%,CineBench R15 18%,但即便如此大家也看到了非常明顯的實(shí)際性能提升,這可比某幾代酷睿每次最多5%左右的變化良心太多了。
如果你覺(jué)得前邊講的架構(gòu)不過(guò)癮,想了解更深入,接下來(lái)我們就拆解成不同模塊,單獨(dú)來(lái)看一看它們的變化。
前端部分,Zen3打造了一個(gè)更快的分支預(yù)測(cè)器,可以在每個(gè)時(shí)鐘周期內(nèi)處理更多指令,同時(shí)在操作緩存、指令緩存之間切換更加快速,應(yīng)付不同工作負(fù)載更加靈活高效。
當(dāng)然,分支預(yù)測(cè)不可能百分之百準(zhǔn)確,都是有概率的,有時(shí)候會(huì)預(yù)測(cè)錯(cuò)誤,這時(shí)候的關(guān)鍵就是能不能快速恢復(fù),Zen3就大大降低了這時(shí)候的延遲,可以快速回到正軌,分支預(yù)測(cè)的精度也得到提升。
拾取與解碼部分,這里可以看到分支預(yù)測(cè)器的更多細(xì)節(jié),尤其是精度提升是怎么來(lái)的,比如分支目標(biāo)緩沖重新設(shè)計(jì)、L1 B2B容量翻倍、L2 B2B重新組織、間接目標(biāo)陣列(ITA)增大、流水線縮短、錯(cuò)誤預(yù)測(cè)延遲降低等等。
同時(shí),32KB 8路關(guān)聯(lián)的一級(jí)指令緩存進(jìn)行了優(yōu)化,從而改進(jìn)預(yù)取能力和利用率。
操作緩存也更加精煉,隊(duì)列拾取效率更高,操作緩存與指令緩存流水線的切換也更加自如。
執(zhí)行引擎方面,增加了浮點(diǎn)和整數(shù)分發(fā)寬度,降低了FMAC延遲,還增大了執(zhí)行窗口。
整數(shù)執(zhí)行方面,整數(shù)調(diào)度器節(jié)點(diǎn)從92個(gè)增至96個(gè)(4×24分布),用來(lái)重命名邏輯寄存器以提升亂序執(zhí)行效率的物理寄存器文件也從180個(gè)增至192個(gè)。
每時(shí)鐘周期的分發(fā)也從7個(gè)增至10個(gè),包括4個(gè)ALU(算術(shù)邏輯單元)、3個(gè)AGU(地址生成單元)、1個(gè)分支單元、2個(gè)存儲(chǔ)數(shù)據(jù)單元。
此外,記錄器緩沖(ROB)所保存的x86指令也從224個(gè)增至256個(gè)。
Zen3里的整數(shù)單元沒(méi)變還是4個(gè),但共享了ALU、AGU調(diào)度器,應(yīng)對(duì)不同負(fù)載時(shí)更加均衡。
浮點(diǎn)執(zhí)行方面,浮點(diǎn)單元增至6條流水線意味著可以一次性分派6個(gè)微操指令,同時(shí)以前兼顧負(fù)責(zé)存儲(chǔ)與浮點(diǎn)寄存器文件的MUL乘法、ADD加法整數(shù)單元現(xiàn)在改為獨(dú)立流水線,需要的時(shí)候可以更好地處理真正的MUL、ADD指令。
另外還有更快的4周期FMAC、分離的F2I與存儲(chǔ)單元、更大的調(diào)度器。
載入/存儲(chǔ)方面,存儲(chǔ)隊(duì)列節(jié)點(diǎn)從48個(gè)增至64個(gè),同時(shí)增大了與32KB一級(jí)指令緩存之間的帶寬,每時(shí)鐘周期可以執(zhí)行3個(gè)載入,或者2個(gè)浮點(diǎn)與1個(gè)存儲(chǔ),另外還改進(jìn)了預(yù)取算法,以更好地利用容量翻番的三級(jí)緩存。
接下來(lái)我們回到“高級(jí)”層面,看看Zen3在核心與緩存方面的設(shè)計(jì)。
這張CDD核心與緩存布局圖大家很熟悉了。Zen2、Zen3的每個(gè)CCD都是8個(gè)物理核心、32MB三級(jí)緩存,但前者是隔離的兩部分,每4個(gè)核心共享一半的16MB三級(jí)緩存,而后者是完整的一部分,所有8個(gè)核心共享所有32MB三級(jí)緩存,等于每個(gè)核心可獲取的三級(jí)緩存容量直接翻了一番。
Zen2上邊,如果某個(gè)核心需要的指令、數(shù)據(jù)在非直接共享的另一半三級(jí)緩存里,那么就要繞一個(gè)圈,延遲自然大大增加,現(xiàn)在可以直接一步到位了,當(dāng)?shù)谝粋€(gè)核心需要的數(shù)據(jù)在第八個(gè)核心里的時(shí)候,也可以直接在CCX內(nèi)部快速獲取到。
再看緩存細(xì)節(jié)。一二三級(jí)容量都沒(méi)變,但效率高得多,比如32KB一級(jí)指令緩存支持32bit拾取,32KB一級(jí)數(shù)據(jù)緩存支持最多3個(gè)載入、2個(gè)存儲(chǔ),512KB二級(jí)緩存速度也更快了。
三級(jí)緩存容量增大、訪問(wèn)統(tǒng)一后,可以完全保存二級(jí)緩存里被丟棄出來(lái)的犧牲品緩存(victim cache),相當(dāng)于一個(gè)備份,因?yàn)樗鼈儽辉俅卧L問(wèn)的概率很高,這樣無(wú)論哪個(gè)核心再次需要,都可以直接從緩存從交換獲取。
另外,每個(gè)核心從二級(jí)緩存到三級(jí)緩存允許64個(gè)命中失敗,從三級(jí)緩存到內(nèi)存則允許192個(gè)命中失敗。
銳龍5000系列讓然延續(xù)chiplet小芯片設(shè)計(jì),一個(gè)或兩個(gè)CCD Die搭配一個(gè)IOD(負(fù)責(zé)內(nèi)存控制器和輸入輸出),但是由于每個(gè)CCD里只有統(tǒng)一的一個(gè)CCX而不再是獨(dú)立的兩個(gè),CCD與IOD、內(nèi)存之間的連接通信也更加一致、高效。
兩個(gè)CCD搭配一個(gè)IOD的時(shí)候,帶寬是相同的,也是同樣的一致性系統(tǒng)。
這時(shí)候也再次體現(xiàn)了chiplet小芯片設(shè)計(jì)的好處,可以輕松做到16核心,可以不換布局和平臺(tái)就升級(jí)到Zen3架構(gòu),一切都在封裝內(nèi)部進(jìn)行。
安全方面,Zen3重點(diǎn)增加了控制流強(qiáng)制技術(shù)(CET),Intel此前已支持。它引入了影子堆棧(shadow stack),只包含返回地址并且存儲(chǔ)在系統(tǒng)內(nèi)存中,同時(shí)受到處理器內(nèi)存管理模塊的保護(hù),如果有惡意代碼利用漏洞村改堆棧,在造成傷害之前就能被發(fā)現(xiàn)并阻止。
指令集方面,Zen3增加了MPK,也就是內(nèi)存保護(hù)密鑰,可以由軟件更高效地改變數(shù)據(jù)讀寫(xiě)權(quán)限,另外VAES、VPCLMULQD指令增加支持AVX2。
最后說(shuō)說(shuō)能效,按照官方說(shuō)法Zen3架構(gòu)的銳龍9 5950X、銳龍9 5900X相比于i9-10900K分別達(dá)到了2.8倍、2.4倍,而對(duì)比Zen2架構(gòu)的銳龍9 3950X、銳龍9 3900XT也分別提高了12%、26%,從而做到了性能更好,但功耗不增加。
總之,Zen3順利實(shí)現(xiàn)了預(yù)期目標(biāo),包括IPC大幅提升(平均19%)、延遲大幅降低(統(tǒng)一8核心與32MB三級(jí)緩存)、內(nèi)存訪問(wèn)大幅加速(三級(jí)緩存直接訪問(wèn)翻倍)、頻率大幅提高(最高加速4.9GHz)、能效大幅改進(jìn)(最高2.8倍)、游戲幀率大幅增長(zhǎng)(1080p下平均約26%)。
AMD Zen的下一站將是Zen 4,會(huì)同時(shí)搭配更先進(jìn)的5nm工藝,目前正在設(shè)計(jì)中,一切按計(jì)劃推進(jìn),看時(shí)間表應(yīng)該會(huì)在2022年上半年推出。
責(zé)任編輯:pj
-
處理器
+關(guān)注
關(guān)注
68文章
19052瀏覽量
228573 -
amd
+關(guān)注
關(guān)注
25文章
5407瀏覽量
133748 -
Zen處理器
+關(guān)注
關(guān)注
1文章
29瀏覽量
8622
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論