AMD Zen3架構深度決議!揭開性能暴漲39%的秘密

AMD基于Zen3全新架構的銳龍5000系列終于解禁上市了,不知道銳龍9 5950X、銳龍9 5900X的性能是否讓大家滿意?大喊YES的同時有沒有剁手買買買?

接下來,快科技還會奉上銳龍7 5800X、銳龍5 5600X的評測,敬請期待,

這次,銳龍一直以來可以說唯一弱勢的單核心/游戲性能終于不再是短板,一舉實現了對Intel的反超,而且還是在制造工藝維持7nm工藝完全不變的前提下做到的,全新設計的Zen3架構可以說功不可沒,這也是Zen誕生以來最大規模的變革,

今天,我們就好好聊一聊Zen3架構的革新之處,

當然了,處理器架構設計是極為高深的學問,我們不可能講得多么深入、專業,就說說一些比較表層和便于理解的東西,看看如此逆天的性能飛躍究竟如何而來,

首先,做任何事都要有目標,設計一個處理器架構更是如此。Zen3的目標就有三個:

一是提升單執行緒性能,專業名詞叫IPC(每時鐘周期指令數),畢竟之前幾代一直追求多核心為主,是時候把單核性能提升到足夠的高度了,不然始終是瘸著腳走路,缺乏長久競爭力,

二是在維持8核心CCD模塊的前提下,統一核心與快取,提升彼此通信效率,降低延遲。

三是繼續提高能效比,性能提升的同時功耗不能失控。

為此,Zen3架構對于所有模塊都進行了翻新,前端、預取、解碼、執行、整數、浮點、載入、存盤、快取等等,每個環節都是煥然一新。

首先,Zen3設計了一個堪稱藝術級的分支預測器,它之后有兩條通道將指令送入佇列,然后進行分派,一是8路關聯的32KB一級指令快取和x86解碼器,二是4K指令的操作快取(Op-cache)。

x86解碼器的限制是每個時鐘周期只能處理最多4條指令,但如果是熟悉的指令,就可以放入操作快取,每個周期就能處理8條,二者結合指令分發效率就大大提升,相比于Zen2直接上升了一個檔次,

指令分派之后就來到執行引擎階段,分為整數、浮點兩大部分,每個時鐘周期可以向它們分派6條指令,

其中,整數單元還是4個,但更加分散,并增加了一個單獨的分支與資料存盤單元,提升吞吐量,每時鐘周期可以生成3個地址。

浮點方面則分為六條流水線,進一步提升吞吐量和效率,

記憶體方面,每時鐘周期可以執行3個載入,或者1個載入加2個存盤,再次提升吞吐量,并且可以更靈活地處理不同工作負載。

單純說Zen3可能感覺不到什么,那就對比一下Zen2,變化太多還是撿最核心的說,

前端方面,主要有容量翻番的L1 BTB、更大的分支預測器帶寬、更快的預測錯誤恢復、更快的操作快取拾取、更精細的操作快取流水線切換,等等,

執行引擎方面,主要有獨立的分支與資料存盤單元、更大的整數視窗、更低的特定整數/浮點指令延遲、6寬度拾取與分發、更寬的浮點分派、更快的浮點FMAC(乘法累加器),等等,

載入/存盤方面,主要有更高的載入帶寬(2個變3個)、更高的存盤帶寬(1個變2個)、更靈活的載入/存盤指令、更好的記憶體依賴檢測,等等。

以上是Zen、Zen2、Zen3三代架構在核心、快取一些關鍵指標上的變化,乍一看,Zen3變化的力度似乎不如Zen2,但一則這些數字不能完全反應更深層次的變化,二則Zen3在關鍵指標上更有突破,比如說分發寬度從10/11一躍來到16,執行效率提升可不止一點半點,

正是基于這些改進,Zen3架構的IPC提升了多達19%,來自前端、載入/存盤、執行引擎、快取預取、微操作快取、分支預測等部分的合力貢獻。

那么大家可能會疑惑了,19%這個數字怎么來的?

說起來也簡單,Zen3、Zen2架構都固定在8核心、4GHz頻率,然后對比不同應用的性能變化,最后綜合而來,

不同工作負載的提升幅度當然不盡相同,變化最大的是銳龍之前的弱項網游,吃雞、LOL、CSGO這些提升了多達35-39%,再加上頻率提升等,最終大家就看到了銳龍5000在網游里邊翻天覆地的變化。

事實上,提升幅度超過19%平均水平的,基本都是游戲,也正因為如此,銳龍5000才在游戲性能上奪走了Intel的最后一處陣地,有資格說自己是最好的游戲處理器。

提升幅度相對較小的是一些基準性質專案和一些難以深度優化的游戲,尤其是單執行緒性能,比如POV-Ray 9%、CPU-Z 12%、CineBench R20 13%,CineBench R15 18%,但即便如此大家也看到了非常明顯的實際性能提升,這可比某幾代酷睿每次最多5%左右的變化良心太多了,

如果你覺得前邊講的架構不過癮,想了解更深入,接下來我們就拆解成不同模塊,單獨來看一看它們的變化。

前端部分,Zen3打造了一個更快的分支預測器,可以在每個時鐘周期內處理更多指令,同時在操作快取、指令快取之間切換更加快速,應付不同工作負載更加靈活高效。

當然,分支預測不可能百分之百準確,都是有概率的,有時候會預測錯誤,這時候的關鍵就是能不能快速恢復,Zen3就大大降低了這時候的延遲,可以快速回到正軌,分支預測的精度也得到提升,

拾取與解碼部分,這里可以看到分支預測器的更多細節,尤其是精度提升是怎么來的,比如分支目標緩沖重新設計、L1 B2B容量翻倍、L2 B2B重新組織、間接目標陣列(ITA)增大、流水線縮短、錯誤預測延遲降低等等。

同時,32KB 8路關聯的一級指令快取進行了優化,從而改進預取能力和利用率。

操作快取也更加精煉,佇列拾取效率更高,操作快取與指令快取流水線的切換也更加自如,

執行引擎方面,增加了浮點和整數分發寬度,降低了FMAC延遲,還增大了執行視窗。

整數執行方面,整數調度器節點從92個增至96個(4×24分布),用來重命名邏輯暫存器以提升亂序執行效率的物理暫存器檔案也從180個增至192個,

每時鐘周期的分發也從7個增至10個,包括4個ALU(算術邏輯單元)、3個AGU(地址生成單元)、1個分支單元、2個存盤資料單元,

此外,記錄器緩沖(ROB)所保存的x86指令也從224個增至256個,

Zen3里的整數單元沒變還是4個,但共享了ALU、AGU調度器,應對不同負載時更加均衡,

浮點執行方面,浮點單元增至6條流水線意味著可以一次性分派6個微操指令,同時以前兼顧負責存盤與浮點暫存器檔案的MUL乘法、ADD加法整數單元現在改為獨立流水線,需要的時候可以更好地處理真正的MUL、ADD指令,

另外還有更快的4周期FMAC、分離的F2I與存盤單元、更大的調度器,

載入/存盤方面,存盤佇列節點從48個增至64個,同時增大了與32KB一級指令快取之間的帶寬,每時鐘周期可以執行3個載入,或者2個浮點與1個存盤,另外還改進了預取演算法,以更好地利用容量翻番的三級快取,

接下來我們回到“高級”層面,看看Zen3在核心與快取方面的設計。

這張CDD核心與快取布局圖大家很熟悉了。Zen2、Zen3的每個CCD都是8個物理核心、32MB三級快取,但前者是隔離的兩部分,每4個核心共享一半的16MB三級快取,而后者是完整的一部分,所有8個核心共享所有32MB三級快取,等于每個核心可獲取的三級快取容量直接翻了一番,

Zen2上邊,如果某個核心需要的指令、資料在非直接共享的另一半三級快取里,那么就要繞一個圈,延遲自然大大增加,現在可以直接一步到位了,當第一個核心需要的資料在第八個核心里的時候,也可以直接在CCX內部快速獲取到。

再看快取細節。一二三級容量都沒變,但效率高得多,比如32KB一級指令快取支持32bit拾取,32KB一級資料快取支持最多3個載入、2個存盤,512KB二級快取速度也更快了。

三級快取容量增大、訪問統一后,可以完全保存二級快取里被丟棄出來的犧牲品快取(victim cache),相當于一個備份,因為它們被再次訪問的概率很高,這樣無論哪個核心再次需要,都可以直接從快取從交換獲取。

另外,每個核心從二級快取到三級快取允許64個命中失敗,從三級快取到記憶體則允許192個命中失敗,

銳龍5000系列讓然延續chiplet小芯片設計,一個或兩個CCD Die搭配一個IOD(負責記憶體控制器和輸入輸出),但是由于每個CCD里只有統一的一個CCX而不再是獨立的兩個,CCD與IOD、記憶體之間的連接通信也更加一致、高效,

兩個CCD搭配一個IOD的時候,帶寬是相同的,也是同樣的一致性系統。

這時候也再次體現了chiplet小芯片設計的好處,可以輕松做到16核心,可以不換布局和平臺就升級到Zen3架構,一切都在封裝內部進行。

安全方面,Zen3重點增加了控制流強制技術(CET),Intel此前已支持。它引入了影子堆疊(shadow stack),只包含回傳地址并且存盤在系統記憶體中,同時受到處理器記憶體管理模塊的保護,如果有惡意代碼利用漏洞村改堆疊,在造成傷害之前就能被發現并阻止,

指令集方面,Zen3增加了MPK,也就是記憶體保護密鑰,可以由軟體更高效地改變資料讀寫權限,另外VAES、VPCLMULQD指令增加支持AVX2,

最后說說能效,按照官方說法Zen3架構的銳龍9 5950X、銳龍9 5900X相比于i9-10900K分別達到了2.8倍、2.4倍,而對比Zen2架構的銳龍9 3950X、銳龍9 3900XT也分別提高了12%、26%,從而做到了性能更好,但功耗不增加。

總之,Zen3順利實現了預期目標,包括IPC大幅提升(平均19%)、延遲大幅降低(統一8核心與32MB三級快取)、記憶體訪問大幅加速(三級快取直接訪問翻倍)、頻率大幅提高(最高加速4.9GHz)、能效大幅改進(最高2.8倍)、游戲幀率大幅增長(1080p下平均約26%)。

AMD Zen的下一站將是Zen 4,會同時搭配更先進的5nm工藝,目前正在設計中,一切按計劃推進,看時間表應該會在2022年上半年推出。

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧