我們已經很長時間沒有看到一個新CPU性能較之上一代能有明顯的提升的狀況出現,而AMD的Ryzen 5000系列產品以及他們的新Zen 3內核就做到了這一點。
雖然我們只有很短的時間來使用功能全面的Ryzen 5950系統,但這就足夠給我們留下了深刻的印象。Linux Mint 20的啟動速度是如此之快以至于引人注目,這實際上是我們日常主要系統花費時間的一小部分。其中大部分取決于PCIe4 SSD,但CPU不得不在輸入數據時對其進行處理。
在系統上花了幾分鐘的時間后,我們在技嘉X570 Aorus Master主板上搭配了AMD Ryzen 9 5950X、三星980 Pro PCIe4 SSD和16GB GSkill Trident Z Royal DDR4-3600內存,該系統在所有內核上均以1.25V的電壓在4.5GHz頻率運行。
考慮到所有這些,在我們看來,有一件事也很突出,該系統速度非常快。由于它是目前市場上最高端的游戲PC,因此您希望它能發布出最好的數字,并且對網絡的簡要了解表明它確實符合SemiAccurate的早期主張,即“ AMD應該在現在一切上取勝,而英特爾沒有回應”。唯一真正的問題是它如何到達那里,這是一個漫長的故事。
Ryzen 5000 Chiplet布局
如果您查看Ryzen 5000 CPU的高級框圖,它們看起來就像基于Zen 2的Ryzen 3000。他們有一個或兩個CCD,但是基于經過改進的7納米制程(在Intel語言中為+或++)和一個cIOD。該cIOD與R3K產品線中的cIOD完全相同,而這顆來自Global Foundries 12nm的芯片面積為125平方毫、擁有20.9億個晶體管,整個die幾乎沒有任何改變。
在CCD方面,幾乎所有方面都發生了變化,但現在我們將重點關注在die本身上。這些變化需要一個新的封裝,其接線方式不同,但僅此而已。每個CCD為80.7平方毫米,包含41.5億個晶體管。這意味著單個CCD封裝的總硅面積為205.7平方毫米,兩個CCD SKU的總硅面積為286.4平方毫米。更令人印象深刻的是,AMD能夠提高DDR4-4000支持的內存速度,而無需更改包含內存控制器的cIOD。對于基于Milan的服務器產品,這具有一些非常有趣的含義,但這又是另一回事了。
更多緩存:
深入研究CCD,我們會看到一些差異出現,特別是在核心組織層面。Zen 2 / Rome CCD邏輯上細分為兩個4C CCX,每個CCX具有16MB的L3緩存。這兩個高速緩存片和核心群集沒有直接連接,要使核心4與核心5進行通信,它必須離開裸片,轉到cOID,然后返回同一CCD上的另一個CCX。這是巨大的功耗浪費,還增加了延遲,而且通常不是一個好主意。您唯一能說的好事是,任何兩個CCX之間的延遲都相當一致。
Zen 2 vs Zen 3 的CCX安排???????????
Zen 3 / Milan通過將CCX升級為具有32MB可直接訪問的L3緩存的8C來解決此問題。每個L3高速緩存塊都經過地址切片(address sliced),但轉到另一個CCD仍意味著需要進行一些封裝和cIOD traversals,并且鏈接的負載遠小于Zen 2設備上的負載。借助少量的OS調度程序支持或軟件優化,這將帶來整體性能顯著提高。不利的一面在于,較大的L3意味著延遲從16MB Zen 2 L3中的39個周期增加到Ryzen 5000中的46個周期。總體而言,最壞的情況稍差一些,但平均性能和實際性能要好得多。
Zen 3的緩存層次結構
在L1和L2緩存上,Zen 3與上一代相比沒有太大變化。L1 I $和D $仍然分別為32K,而L2仍為512K,這三個延遲均保持不變。L3則是高速緩存的“受害者”,因此僅當從L2撤出東西時才填充它,但它具有陰影標簽,因此其他內核可以從同一裸片上的L2中拉出而無需掉頭到內存控制器。
從核心開始,帶寬也得到了改善,該核心現在可以每個周期執行三個負載或兩個存儲,除非它是一個256b操作,分別最大為2和1。內存路徑始終為32B /周期,但L3寫入內存的方式僅為16B /周期。除此之外,從上表中可以看到,一切變化不大。一切都相同或更好,并且在實際工作負載中顯示出了好處。
進入核心:
Zen 3核心是全新的,其整數管道(Integer pipes)從7擴展到10,FP從4擴展到6,并且據稱可以更好地利用一切。AMD將新內核的目標描述為性能,延遲和效率的提升,但凈能耗沒有增加。據了解。其IPC增長了19%,每瓦性能提高了24%,所有這些似乎都表明AMD達到了目標。
Zen 2 vs Zen 3框圖
一如既往,細節決定成敗,但即使從高級的角度來看,很明顯內部也發生了很多變化。在前端,兩種架構之間的情況看起來相當相似,但Zen 3將Micro-Op Queue分為Op Queue和Dispatch階段,但實際差異更加細微。BTB翻倍、分支預測器帶寬增加、等待時間減少、準確性增加,并且過渡得到更好的處理。
Zen 3前端概述
分支預測器變得更快是不錯的,準確性也略有提高,但最大的成功在于延遲。“無氣泡”聲明意味著一旦預測到某些結果,該結果就可以在下一個周期使用,而不必等到將結果發送到正確的塊時再使用。這確實很難做到,AMD不會評論確切的方法,但是會花費很多時間。類似地,從錯誤預測中恢復所花費的時間也減少了,這同樣也是為了降低預測延遲。
Zen 3的提取/解碼單元
分支預測器每個周期可以將四個操作拉入隊列。AMD改進了處理極端情況和邊界過渡的方式,這再次提高了延遲。那就是說x86可變長度操作數是一個痛苦的事情,即使有了改進,事情也會變得很快復雜。一旦將其解碼并存儲在操作緩存中,這些邊界是已知的,并且情況變得更加清晰,因此每個周期可以將八個操作分配給該橙色框而沒有名稱。
所說的半匿名橙色框非常重要,因為Zen 2令人頭疼的是將I $端和Op-Cache端的操作重新組合在一起,這可能需要花費一些時間才能正確排列所有內容。Zen 3這樣做的速度更快,減少了等待時間,并且又是專有的。最重要的是,這里做出的決策要細得多,因此要好一些,要快一些。總而言之,總的來說,前端要稍微精確一些,而延遲卻要低得多,從而在性能和功耗上取得了巨大的成功。
整數上升:
Zen 3的前端每個周期可以發出16條指令,而Zen 2中為11條指令。在幾乎不可思議的巧合中,該數字與Zen 3中的16條管道非常接近,而Zen 2中為11條。FP則從4增加到6。從整體芯片的效率可以看出,AMD在這方面似乎已經取得了平衡。
Zen 3的整數單元
可以看到,調度程序(scheduler )從92個條目增加到96個條目,更具體地說,是四個24條目調度程序,物理寄存器文件從12個增加到192個,ROB則提高到256個條目,而不是Zen 2的224個。這些數字在效率方面非常有用,他們確保每個單元都有足夠的空間來保持最佳狀態,但是真正的變化在于管道本身。
如您所見,現在有4個ALU,3個AGU,一個專用分支單元和2個存儲單元。這10個單元中的每個單元(注意,上面的幻燈片中沒有全部圖示)可以在每個周期內饋送,這是較之Zen 2的一個很大改進。還要注意,管道的排列方式使每個ALU / AGU對都由一個調度程序饋送,但是它們仍然能夠獨立工作。這是效率的重要部分,它允許以更少的復雜性進行更多的工作。如果必須對其進行總結,則會添加管道以避免爭用,并且出于類似的原因,它們的排列也更好。較少的復雜性和布線往往會使事情變得更有效率,這就是重點。
FP單元版本 3.000000:
在FP端,延遲也是一個關鍵的優化領域,這是更廣泛的問題。新的架構仍然有2個Mul和2個Add管道,但是F2I(Float 2整數)功能已被分解以分離管道,并且其中一個與存儲單元結合在一起。顯然,這可以減少爭用,并且由于可以同時送入所有六個管道,因此可以提高吞吐量。Zen 2的5周期FMAC操作減少了一個周期,因此延遲也減少了。調度程序會隨著內部帶寬的增長而增加一點,所以一切都很好。
此外,在FP單元閑置時,將數字提升到指數的精靈還有更多舒適的椅子可以坐在那里,因此在需要時它們會很新鮮。只是檢查看看您是否還在關注。
加載和存儲:
加載/存儲始終是與非技術朋友討論的有趣話題,AMD這次給我們帶來了一些新的東西。主要的是3個AGU,這意味著它們每個周期可以完成三個加載或兩個存儲,或者兩個(如前所述)為256b,則可以存儲兩個。這是雙贏,更大的帶寬和更大的靈活性,這在現代超優化內核中是罕見的。還有更好的內存依賴檢測,還有四個TLB Walker,總共六個。
其余的改進可以總結為“到處都有更好的情況”。存儲隊列增加了33%,達到64個條目,但是大多數其他結構的原始大小或多或少都相同。跨頁面邊界的更好的預取在更早的時候就被提出了,而且對存儲到加載的前向依賴項也有了更好的預測。專門被調用的一條指令是REP MOVSB,它對短副本的延遲確實很高。
在Zen 3中,在短迭代次數上減少了很多,在中位數上得到了改善,但從長遠來看仍然可以正常工作。同樣,在許多地方略微減少延遲會帶來很多好處,這就是裝入/存儲單元的全部更改。:
還有很多其他小事情,它們又使Zen 3內核比Zen 2更快,更高效。一些指令的執行速度更快,其中一些已在上面提到,還有很多事情,例如執行時的指令排序。Op緩存之間的延遲要低得多。最終,所有這些都加起來很大,特別是AMD聲稱IPC增加19%,每瓦提升24%。
除此之外,還有一些新功能,一些次要功能,一些重要功能。在安全方面,Zen 3現在支持控制流實施技術(Control-Flow Enforcement Technology :CET),基本上是用于阻止ROP攻擊的影子堆棧。VAES和VPCLMULQD這兩個指令現在具有AVX2支持,這應該可以極大地緩解等待此情況的粉絲的煩惱。越來越多的粉絲正在等待AMD對MPK的描述,該描述有效地允許了更精細的內存權限。
SemiAccurate詢問了有關問題,但AMD沒有解釋,但我們認為當Milan/ Epyc 3發布時,他們很快就會解決。
另一個好處是,AMD終于對其基準測試設置進行了可靠的披露。希望他們GPU方面也能與時俱進。因為可信任的數字都是信任所必需的。
結論:
最終,我們來到這里,采用Ryzen 5000系列的Zen 3已經面世,從遠處看,它看起來很像Zen 2 / Ryzen3000。放大之后,您可以看到CCD上的所有東西都是全新的向上。
IPC提升19%意味著AMD現在贏了一切,所有以前的英特爾據點和重要案例現在都清楚看到了Ryzen的勝利。是的,在這里和那里還有一些事情,英特爾仍然可以取得奇數勝利,但僅此而已。當AMD將其產品定價高于英特爾時,您就知道一切都結束了。
從這里我們預計5nm Zen 4會在一年內上市,并帶來實質性的性能優勢。從現在到現在,英特爾都無法與AMD相抗衡。Zen 3明年將表現良好,事實證明它是如此出色。
正如我們之前所說,AMD幾乎贏得了一切。
責任編輯:tzh
-
CCD
+關注
關注
32文章
879瀏覽量
142223 -
amd
+關注
關注
25文章
5466瀏覽量
134095 -
控制器
+關注
關注
112文章
16332瀏覽量
177812 -
cpu
+關注
關注
68文章
10854瀏覽量
211587
發布評論請先 登錄
相關推薦
評論