《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 萬字長文解讀AMD新架構

萬字長文解讀AMD新架構

2019-09-25
關鍵詞: AMD 半導體

  一年多來,我們一直惦念著AMD的下一代處理器產品。新的chiplet設計被認為是在驅動性能和可擴展性方面的重大突破,特別是在越來越小的工藝節點上制造高頻大芯片變得越來越困難的情況下。AMD預計將通過Ryzen和EPYC在其處理器系列中部署其chiplet范式,這些chiplet每個都有8個下一代Zen 2核心。今天,AMD更詳細地介紹了Zen 2核心,為公司上周在Computex上展示的比上一代產品提高15%的時鐘性能提供了理由。

5847a25bb38645358721c571ff706a9a.jpeg

  AMD的Zen 2產品組合

  目前AMD宣布擁有Zen 2核心的產品包括Ryzen第三代消費級CPU,即Ryzen 3000系列,以及AMD下一代企業EPYC處理器,即Rome。到目前為止,AMD已經公布了6款消費級Ryzen 3000處理器的詳細信息,包括核心數量、頻率、內存支持和電源。關于服務器處理器的細節,除了一些峰值之外,預計將在未來幾個月的適當時候公布。

25.jpeg

  與第一代Zen相比,Zen 2的設計范式已經發生了顯著的變化。新平臺和核心實現是圍繞臺積電7nm工藝的小型8核chiplet設計的,尺寸約74~80平方毫米。在這些chiplet上有兩組四核組成的“核心復合體”(CCX),其中包含這4個核心和一組L3緩存——Zen 2的L3緩存是 Zen 1的兩倍。

  每個完整的CPU,無論它有多少chiplet,都通過Infinity Fabric鏈路與中央IO芯片配對。IO芯片充當所有片外通信的中心樞紐,因為它包含處理器的所有PCIe通道、內存通道,以及與其他chiplet和其他CPU之間的Infinity Fabric鏈路。EPYC Rome處理器的IO芯片基于臺積電的14nm工藝制造,而消費類處理器IO芯片(體積更小,功能更少)則基于GlobalFoundries的12nm工藝制造。

  這款名為“Matisse”(或稱Ryzen 3rd Gen、Ryzen 3000系列)的消費級處理器擁有最多兩個chiplet,16個內核。AMD將在7月7日推出6個版本的Matisse,從6核到16核不等。6核處理器和8核處理器有一個chiplet,8核以上的處理器有兩個chiplet,但在所有情況下IO芯片都是相同的。這意味著每個基于Zen 2的Ryzen 3000處理器都可以訪問24個PCIe 4.0通道和雙通道內存。根據今天的公告,Ryzen 5 3600的價格將從199美元到16核的700美元以上(我們正在等待這個價格的最終確認)。

24.jpeg

  基于Zen 2 chiplet構建的EPYC Rome處理器擁有多達8個處理器,使一個平臺可以支持多達64個核心。與消費級處理器一樣,chiplet不可以直接相互通信——每個chiplet只能直接連接到中央IO芯片。IO芯片包含8個內存通道的鏈路,以及多達128個PCIe 4.0連接通道。

23.jpeg

  AMD的路線圖

  在討論新產品線之前,有必要回顧一下我們目前在AMD的計劃路線圖中所處的位置。

  AMD之前的路線圖展示了從Zen到Zen 2、Zen 3的轉變,AMD解釋說,這個結構已有多年,2017年發布Zen,2019年發布Zen 2,2021年發布Zen 3。節奏并不完全是一年一代,因為這依賴于AMD的設計和制造能力,以及與代工廠合作伙伴的協議和當前的市場力量。

  AMD曾表示,Zen 2的計劃始終是在7nm工藝上推出,最終使用臺積電的7nm制程(Global Foundries未能及時準備好7nm工藝,并最終放棄了這一計劃)。下一代Zen 3預計將與更新的7nm工藝保持一致,目前AMD尚未對潛在的“Zen 2+”設計發表任何評論,盡管目前我們并不期望看到它。

22.jpeg

  除了Zen 3之外,AMD已經聲明Zen 4和Zen 5目前正處于各自設計的不同階段,但是AMD沒有承諾特定的時間框架或工藝節點技術。AMD過去曾表示,這些平臺和處理器設計的范式都是提前3~5年制定的,公司必須在每一代產品上都下大賭注,以確保自己能夠保持競爭力。

  為了深入了解Zen 4,在Computex上,AMD嵌入式和半定制組的高級副總裁Forrest Norrod在采訪中向AnandTech獨家透露了AMD Zen 4 EPYC處理器的代號:Genoa。

21.jpeg

  Forrest解釋說,Zen 5的代號遵循類似的模式,但他不愿對Zen 4產品的時間框架發表評論。鑒于Zen 3的設計預計將在2020年年中推出,如果AMD遵循這一節奏,那么Zen 4將在2021年末/2022年初推出。目前還不清楚它將如何進入AMD的消費級路線圖計劃,它將取決于AMD如何接近其芯片范式和未來對封裝技術的調整,以實現進一步的性能改進。

  Zen 2的性能聲明

  在Computex上,AMD宣布他們已經設計出了Zen 2,當比較相同頻率的Zen 2和Zen+時,Zen 2可以提供比Zen+平臺高15%的原始性能。與此同時,AMD還聲稱,在相同的功率下,Zen 2可以提供1.25倍以上的性能增益,或在同樣的性能下只有一半的功耗。結合這一點,就特定基準而言,AMD聲稱其每瓦性能比其上一代產品高75%,比競爭對手高45%。

  這些數字我們目前無法核實,因為我們手頭沒有相關產品,當7月7日禁令解除時,我們會確定基準測試結果。AMD確實花了大量的時間來研究Zen 2微架構的新變化,以及平臺級別的變化,以展示該產品與上一代產品相比是如何改進的。

  還應該注意的是,在AMD最近的技術日期間,該公司多次表示,他們無意與主要競爭對手在漸進式更新上反復拉鋸,試圖打敗對方,這可能會導致技術停滯不前。AMD的高管們表示,無論競爭對手是誰,AMD都將竭盡所能地挑戰每一代產品的性能極限。首席執行官Lisa Su博士和首席技術官Mark Papermaster都表示,他們預計Zen 2產品組合推出的時間表將與競爭激烈的英特爾10nm產品線交叉。盡管情況并非如此,AMD的高管們表示,他們仍在按計劃推進他們的路線圖。

20.jpeg

  AMD在展示其即將推出的Matisse處理器的性能時,選擇的基準是Cinebench。Cinebench是一種浮點基準測試,該公司在這方面一直做得很好,它傾向于檢測CPU FP性能以及緩存性能,盡管它通常不涉及很多內存子系統。

  早在今年1月的CES 2019上,AMD就展示了一款未命名的8核Zen 2處理器,與英特爾的高端8核處理器i9-9900K相比,二者在Cinebench R15上的系統得分大致相同,但AMD全系統的耗電量約為英特爾的1/3或更少。在5月份的Computex上,AMD公布了很多8核和12核的細節,以及這些芯片在單線程和多線程Cinebench R20結果中的比較。

19.jpeg

  AMD表示,在比較不同內核數量時,它的新處理器在CPU基準測試方面提供了更好的單線程性能、更好的多線程性能、更低的功耗和更低的價格。

  談到游戲,AMD在這方面相當樂觀。 在1080p時,將Ryzen 7 2700X與Ryzen 7 3800X進行比較,AMD希望幀速率每一代都能有11%~34%的增長。

18.jpeg

  在比較AMD和英特爾處理器時,AMD堅持對熱門游戲進行1080p測試,再次比較核心數量和價格類似的處理器。在幾乎所有的比較中,AMD的產品和英特爾的產品都不相上下,AMD有的高些,有的低些,或平分秋色。以下以250美元產品為例進行比較:

17.jpeg

  此時,游戲性能旨在展示頻率和IPC的改進,而不是展示PCIe 4.0帶來的好處。在頻率方面,AMD表示,盡管7nm芯片尺寸縮小且通路電阻率較高,但與GlobalFoundries的14nm和12nm相比,它們能夠從臺積電7nm工藝中獲得更高的頻率。

15.jpeg

  AMD還評論了新的L3緩存設計,因為它從2MB/核心變成了4MB/核心。據AMD稱,L3緩存翻了一倍,使用獨立GPU進行游戲時,1080p的性能提升了11%~21%。

14.jpeg

  Zen 2中有一些新指令可以幫助驗證這些數字。

  Windows優化

  對于使用Windows的非英特爾處理器而言,一個令人頭疼的關鍵問題是操作系統中的優化和調度程序安排。我們在過去已經看到Windows對非英特爾微架構布局是多么地不友好,例如AMD以前在Bulldozer中的模塊設計、高通在Snapdraon上使用的混合CPU策略,以及最近在Threadripper上進行的多芯片安排,以便將不同的內存延遲域引入消費級計算。

  顯然,AMD與微軟有密切的關系,當涉及到識別處理器的非常規核心拓撲時,這兩家公司致力于確保線程和內存分配,沒有程序驅動的方向,試圖最大限度地利用系統。隨著5月10日Windows的更新,一些額外的功能已經到位,以充分利用即將到來的Zen 2微架構和Ryzen 3000芯片布局。

13.jpeg

  優化有兩方面,這兩方面都很容易解釋。

  線程分組

12.jpeg

  第一個是線程分配。當處理器具有不同的CPU核心“組”時,分配線程的方式也就不同,所有這些方法都有各自的優缺點。線程分配的兩個極端歸結為線程分組和線程擴展。

  線程分組是當新線程生成時,它們將被直接分配到已經擁有線程的內核旁邊的內核上。這使線程緊密結合在一起,用于線程到線程的通信,但是它可以創建高功率密度的區域,特別是當處理器上有多個內核但只有幾個處于活動狀態的時候。

  線程擴展是指內核彼此放置得盡可能遠。這意味著第二個線程盡可能遠地在不同的chiplet或不同的核心復合體(CCX)上產生。這允許CPU通過沒有高功率密度的區域來保持高性能,通常在多個線程上提供最佳的turbo性能。

11.jpeg

  線程擴展的危險在于,當一個程序生成兩個線程,而這兩個線程最終位于CPU的不同位置的時候。在Threadrapper中,這甚至可能意味著第二個線程位于CPU的一個具有較長內存延遲的部分,從而導致兩個線程之間的潛在性能不平衡,即便這些線程所在的內核處于較高的turbo頻率。

  由于現代軟件(特別是視頻游戲)正在產生多線程而不是依賴單個線程,并且這些線程需要相互通信,AMD正在從混合線程擴展技術轉向線程分組技術。這意味著在訪問另一個CCX之前,一個CCX將被線程填滿。AMD認為,盡管一個chiplet中具有高功率密度的潛力,而另一個可能處于非活動狀態,但對于整體性能而言,這仍然是值得的。

  對于Matisse而言,這應該可以為有限的線程場景提供一個很好的改進。看看這對即將到來的EPYC Rome CPU或未來的Threadripper設計有多大影響將會很有趣。AMD在其解釋中提供的單一基準是1080p Low的《火箭聯盟》,報告稱幀速率增加了15%。

  時鐘提升

  對于熟悉Skylake微架構的用戶來說,你可能還記得英特爾推出了一項名為Speed Shift的新功能,使處理器能夠更自由地在不同P狀態之間進行調整,以及非常快速地從空閑調整到負載——Skylake的第一個版本從100毫秒到40毫秒,然后Kaby Lake下降到15毫秒。它通過將P狀態控制從操作系統返回給處理器來實現這一點,處理器根據指令吞吐量和請求做出反應。在Zen 2中,AMD現在實現了相同的功能。

10.jpeg

  相比于英特爾,AMD在頻率調整方面已經具有足夠的粒度,允許25MHz而不是100MHz的差異,但是,當涉及非常突發驅動的工作負載(burst-driven workload)時,能夠實現更快的ramp-to-load頻率跳變將給AMD帶來幫助,例如WebXPRT(英特爾最喜歡這種演示)。根據AMD的說法,使用Zen 2實現這一功能的方式將需要BIOS更新以及Windows 5月10日的更新,但是它將把Zen的頻率提升時間從30毫秒降低到Zen 2的1~2毫秒。值得注意的是,這比英特爾給出的數字要快得多。

  AMD實現的技術名稱涉及CPPC2,即Collaborative Power Performance Control 2,AMD的指標表明這會增加突發工作負載和應用程序負載。AMD表示,使用PCMark10的應用程序啟動子測試,應用程序的啟動時間性能提升了6%。

  增強了Zen 2的安全性

  Zen 2的另一個方面是AMD用來提高現代處理器安全性要求的方法。正如已經報道過的,最近一系列的側通道攻擊并沒有影響AMD處理器,這主要是因為AMD管理其TLB緩沖區的方式,這些緩沖區在大部分成為問題之前總是需要額外的安全檢查。盡管如此,對于AMD易受攻擊的問題,它已經為這些問題實現了一個完全基于硬件的安全平臺。

9.jpeg

  這里的變化來自Speculative Store Bypass,稱為Spectre v4,AMD現在有額外的硬件與操作系統或虛擬內存管理器(如hypervisor)協同工作,以便進行控制。AMD預計這些更新不會帶來任何性能變化。諸如Foreshadow和Zombieload等新問題不會影響AMD處理器。

  新指令

  緩存和內存帶寬QoS控制

  與大多數新的x86微架構一樣,存在通過新指令提高性能的動力,但也會嘗試在支持哪些指令方面實現不同供應商之間的對等。對于Zen 2,雖然AMD沒有像英特爾那樣迎合一些更古怪的指令集,但它在三個不同的領域增加了新的指令。

8.jpeg

  第一個是CLWB,以前已經在英特爾處理器上看到過它與非易失性內存有關。此指令允許程序將數據推回到非易失性內存中,以防系統收到停機命令造成數據丟失。盡管AMD沒有明確說明,但還有其他與保護數據到非易失性內存系統相關的指令。這可能表明AMD正在尋求在未來的設計中更好地支持非易失性內存的硬件和結構,特別是在EPYC處理器中。

  第二個緩存指令WBNOINVD是一個僅限AMD的命令,但它基于其他類似的命令,如WBINVD。此命令用于預測將來可能需要緩存的特定部分,并清除它們,以便加速將來的計算。如果所需的緩存行未準備就緒,則會在所需操作之前處理刷新命令,從而增加延遲——當延遲關鍵型指令仍沿流水線中傳遞時提前運行緩存行刷新,有助于加速其最終執行。

  在QoS下歸檔的最后一組指令實際上與如何分配緩存和內存優先級有關。

  當針對不同客戶將云CPU拆分為不同的容器(container)或虛擬機(VM)時,性能級別并不總是一致的,因為性能可能會根據另一個虛擬機在系統上執行的操作而受到限制。這就是所謂的“嘈雜鄰居”問題:如果其他人正在占用所有核心到內存的帶寬(即L3緩存),那么系統上的另一個VM就很難訪問它所需的內容。由于這個嘈雜的鄰居,其他VM在處理其工作負載時的延遲將是高度可變的。或者,如果一個任務關鍵型VM在系統上,而另一個VM一直在請求資源,那么任務關鍵型VM可能會錯過它的目標,因為它沒有訪問所需的所有資源。

  除了確保單個用戶可以完全訪問硬件之外,處理嘈雜的鄰居很困難。大多數云提供商和操作甚至不會告訴你是否有鄰居,在實時VM遷移的情況下,這些鄰居可能會非常頻繁地更改,因此不能保證在任何時候都有持續的性能。這就需要一組專用的QoS(服務質量)指令。

  與英特爾的實現一樣,當一系列虛擬機分配到虛擬機管理程序之上的系統上時,虛擬機管理程序可以控制每個虛擬機有多少內存帶寬和緩存。如果任務關鍵型8核虛擬機需要訪問64MB的L3和至少30GB/s的內存帶寬,則虛擬機監控程序可以控制優先級虛擬機始終有權訪問該數量,并將其從其他虛擬機的池中完全刪除,或者在任務關鍵型虛擬機突然進入完全訪問時智能地限制其要求。

  英特爾只在其Xeon可擴展處理器上實現了這一功能,但AMD將為消費級和企業用戶在Zen 2處理器系列中實現這一功能。

  我在這個功能上遇到的最直接的問題是在消費級方面。想象一下,如果一個視頻游戲需要訪問所有的緩存和所有的內存帶寬,而一些流媒體軟件卻不能訪問——這可能會對系統造成嚴重的破壞。AMD解釋說,雖然從技術上講,單個程序可以請求一定級別的QoS,但是,這些請求是否有效和合適將取決于操作系統或虛擬機監控程序。他們將此功能更多地視為發揮虛擬機監控程序作用時使用的一種企業功能,而不是消費級系統上的裸機安裝。

  CCX尺寸

  向下移動節點大小會在核心內外帶來許多挑戰。即使不考慮功率和頻率,將結構放入芯片,然后將芯片集成到封裝中,以及通過正確的連接為芯片的正確部分提供電力本身也成為一種練習。AMD讓我們深入了解7nm如何改變其部分設計,以及其中的封裝挑戰。

7.jpeg

  AMD放棄的一個關鍵指標與核心復合體(CCX)有關:4個核心,相關的核心結構,然后是L2和L3緩存。AMD稱,在12 nm和ZEN+核心的情況下,單個核心復合體為60平方毫米,其中核心占44平方毫米,8MB的L3占16平方毫米。把其中兩個60平方毫米的復合體加上兩個帶內存控制器、PCIe通道、4個IF鏈路和其他IO,Zen+ Zeppelin裸片總共是213平方毫米。

  對于Zen 2,單個chiplet是74平方毫米,其中31.3平方毫米是核心復合體,有16 MB的L3。AMD沒有將這31.3個數字拆分為核心和L3,但是人們可以想象L3可能接近這個數字的50%。chiplet如此小的原因是它不需要內存控制器,它只有一個IF鏈路,沒有IO,因為所有的平臺要求都在IO芯片上。這使得AMD可以使chiplet非常緊湊。然而,如果AMD打算繼續增加L3緩存,那么L3緩存可能會占據芯片的大部分。

  但總體而言,AMD已經表示CCX(核心加L3)的尺寸減少了47%。這顯示了巨大的可擴展性,特別是當+15%的原始指令吞吐量和增加的頻率開始發揮作用時。每平方毫米的性能將是一個非常令人興奮的指標。

  封裝

  由于Matisse使用AM4插槽,Rome使用EPYC插槽,AMD表示他們必須押寶封裝技術,以保持兼容性。這些賭注中的一些最終總是為了持續的支持而進行權衡,但AMD相信,為了兼容性值得付出額外的努力。

  AMD談到的與封裝有關的關鍵問題之一是,每個裸片如何連接到封裝上。為了實現pin-grid陣列臺式機處理器,必須以BGA方式將芯片固定到處理器上。AMD表示,由于采用了7nm工藝,凸點間距(裸片和封裝上的焊球之間的距離)從12nm的150微米減少到7nm的130微米。這聽起來并不多,但AMD表示,世界上只有兩家廠商擁有足夠的技術來做到這一點。唯一的替代方案是使用更大的芯片來支持更大的凸點間距,最終導致芯片中出現大量空閑(或不同的設計范式)。

6.jpeg

  為了實現更緊密的凸點間距,其中一種方法是調整在芯片下側處理凸點的方式。通常情況下,封裝上的焊料凸點是一個無鉛焊料的團或球,依靠表面張力和回流的物理特性來確保其一致且規則。然而,為了實現更緊密的凸點間距,AMD必須轉向銅柱焊料凸點拓撲。

5.jpeg

  為了實現這一特性,銅被外延沉積在掩模內,以便形成回流焊料所使用的“支架”。由于焊柱的直徑,所需的掩模較少,從而產生較小的焊料半徑。由于其在Matisse內部的雙芯片設計,AMD還遇到了另一個問題:如果IO芯片使用標準焊料凸點掩模,并且chiplet使用銅柱,則集成散熱器需要有一定的高度一致性。對于較小的銅柱,這意味著管理銅柱的增長水平。

  AMD解釋說,與建造不同高度的散熱器相比,實際上管理這種連接實現更容易,因為散熱器的沖壓工藝不會產生如此小的公差。AMD預計,未來所有7nm設計都將采用銅柱實現。

  布線

  除了將裸片放在有機襯底上之外,該襯底還必須管理裸片與裸片外部之間的連接。為了處理額外的布線,AMD必須將封裝中的襯底層增加到12層(沒有透露在Rome需要多少層,也許14層)。對于單核chiplet和雙核chiplet處理器而言,這也變得有些復雜,特別是在將裸片放進封裝之前對其進行測試時。

4.jpeg

  從圖中我們可以清楚地看到從兩個chiplet到IO芯片的IF鏈路,IO芯片也處理內存控制器以及貌似電源平面的任務。chiplet之間沒有封裝內鏈接:chiplet無法直接通信,chiplet之間的所有通信都是通過IO芯片處理的。

  AMD表示,采用這種布局,他們還必須注意處理器如何放置在系統中,以及冷卻和內存布局。此外,當涉及到更快的內存支持或PCIe 4.0更嚴格的容差時,所有這些也需要被考慮,以便在不受其他布線干擾的情況下為信號傳導提供最佳路徑。

  AMD Zen 2微架構概述

  快速分析

  在AMD的技術日,在場的是同事兼首席架構師Mike Clark,他經歷了這些變化。Mike是一個很好的工程師,盡管總是讓我感到有趣的是,談論最新產品上市的工程師們已經在公司工作了一代、兩代或三代(對于任何公司都是這樣,不僅僅是AMD)。Mike說,他花了一段時間來回想Zen+到Zen 2的具體變化,而他的腦海中已經經歷了幾代產品的變化。

  Zen 2的一個有趣元素是圍繞其意圖。最初Zen 2僅僅是Zen+的縮小版,從12nm縮小到7nm,類似于我們在本世紀初看到的英特爾的tick-tock模型。然而,AMD根據內部分析和7nm的時間框架,決定使用ZEN 2作為性能更好的平臺,以多種方式利用7nm,而不是僅僅在一個新的工藝節點上重新設計相同的布局。作為調整的結果,AMD正在推動Zen 2的IPC比Zen+提升15%。

  當談到微架構的確切變化時,我們基本上看到的仍然是類似于Zen外觀的布局規劃。Zen 2是Zen系列的一員,在處理x86方面并不是完全的重新設計或不同的范例——與其他具有家族更新的架構一樣,Zen 2提供了更有效的核心和更廣泛的核心,允許更好的指令吞吐量。

  從較高的層面來看,核心看起來非常相似。Zen 2設計的亮點包括不同的L2分支預測器,稱為TAGE預測器,micro-op緩存加倍,L3緩存加倍,整數資源增加,加載/存儲資源增加,以及對單操作AVX-256(或AVX2)的支持。AMD表示,基于其能量感知頻率平臺,AVX2沒有頻率損失。

  AMD還對緩存系統進行了調整,其中最引人注目的是L1指令緩存,它被減半到32kb,但關聯性增加了一倍。進行這種更改是出于重要的原因,我們將在下一頁中對此進行討論。L1數據緩存和L2緩存保持不變,但是事務后備緩沖區(TLB)增加了支持。AMD還表示,它已經在安全方面增加了更深層次的虛擬化支持,有助于實現流水線后續的功能。正如本文前面提到的,還有安全性強化更新。

  對于快速分析,可以很容易地看出,在許多情況下,加倍micro-op緩存將為IPC帶來顯著的改進,而把它與負載/存儲資源的增加相結合,會有助于通過更多的指令。加倍L3緩存有助于特定工作負載,支持AVX2單操作也是如此,但改進的分支預測程序也將展示原始性能提升。總而言之,從紙面分析來看,AMD 15%的IPC改進似乎是一個非常合理的數字。

  在接下來的幾頁中,我們將深入探討微架構的變化。

  提取/預提取

  我們從處理器的前端開始,預取器。

4.jpeg

  AMD在這里宣傳的主要改進是使用TAGE預測器,盡管它只用于非l1提取。這聽起來可能并不足道:AMD仍然使用哈希感知器預取引擎為L1提取,這將會盡可能多的提取,但TAGE L2分支預測器使用額外的標記來實現更長的分支歷史,以獲得更好的預測路徑。這對于L2預取及以后的預取變得更加重要,哈希感知器優先用于基于功率的L1中的短預取。

  在前端,我們還有更大的BTB,以幫助跟蹤指令分支和緩存請求。L1 BTB的大小增加了一倍,從256個條目增加到512個條目,L2幾乎增加了一倍,從4K增加到7K。L0 BTB保持在16個條目,但間接目標陣列最多可達1K個條目。總體而言,AMD的這些變化讓誤預測率降低了30%,從而節省了電力。

  另一個主要變化是L1指令緩存。我們注意到它對于Zen 2來說更小:只有32KB而非64KB,但是關聯性增加了一倍,從4路增加到8路。考慮到高速緩存的工作方式,這兩種影響最終不會互相抵消,但是32KB L1-I緩存應該更節能,并且有更高的利用率。L1-I緩存并不是孤立地減少的——減少I緩存大小的好處之一是允許AMD將micro-op緩存的大小增加一倍。這兩個結構在核心內部彼此相鄰,因此即使在7nm,我們也有空間限制的實例,導致核心內部結構之間的權衡。AMD表示,這種較小的L1與較大的micro-op緩存的配置,在更多的測試場景中表現更好。

  解碼

  對于解碼階段,這里的主要提升是micro-op緩存。通過把2K條目加倍到4K條目,它將比以前包含更多的解碼操作,這意味著它將經歷大量的重用。為了便于使用,AMD提高了從micro-op緩存到緩沖區的調度速度,最多8條融合指令。假設AMD可以經常繞過它的解碼器,這應該是一個非常有效的區塊。

3.jpeg

  4K條目更令人印象深刻的是當我們將它與競爭對手進行比較的時候。在英特爾的Skylake系列中,這些內核中的micro-op緩存只有1.5K條目。英特爾將Ice Lake的規模增加了50%,達到了2.25K,這個核心將在今年晚些時候進入移動平臺,明年可能進入服務器。相比之下,AMD的Zen 2核心將涵蓋從消費級到企業的所有領域。同時,我們也可以將其與Arm A77 CPU的micro-op緩存進行比較,該緩存為1.5K條目,然而,它是Arm為核心設計的第一個micro-op緩存。

  Zen 2中的解碼器保持不變,我們仍然可以訪問4個復雜解碼器(Intel是1個復雜解碼器+4個簡單解碼器),解碼指令被緩存到micro-op緩存中,并被分派到micro-op隊列中。

  AMD還表示,它已經改進了其micro-op融合算法,但沒有詳細說明這將如何影響性能。目前的micro-op融合轉換已經相當好,所以看看AMD在這里做了什么將會很有趣。與ZEN和ZEN+相比,基于對AVX2的支持,這意味著解碼器不需要將AVX2指令分解為兩個micro-op:AVX2現在是通過流水線的單個micro-op。

  除了解碼器之外,micro-op隊列和調度可以在每個周期向調度器饋送6個micro-op。但是,這有點不平衡,因為AMD有獨立的整數和浮點調度器:整數調度器每周期可以接受6個micro-op,而浮點調度器只能接受4個micro-op。然而,調度可以同時向兩者發送micro-op。

  浮點

  浮點性能的關鍵亮點是完全支持AVX2。AMD已經將執行單元的寬度從128位增加到256位,允許單周期AVX2計算,而不是將計算分成兩個指令和兩個周期。這是通過提供256位負載和存儲來增強的,因此FMA單元可以連續饋送。AMD指出,由于其能量感知調度,在使用AVX2指令時沒有預定義的頻率下降(但是頻率可能會根據溫度和電壓要求而降低,但無論使用何種指令,這都是自動的)。

2.jpeg

  在浮點單元中,隊列每個周期最多接受來自調度單元的4個micro-op,這些micro-op饋入一個包含160個條目的物理寄存器文件。這將移動到4個執行單元,可以在加載和存儲機制中向這些單元提供256b的數據。

  除了尺寸加倍之外,FMA還進行了其他調整。AMD表示,他們提高了內存分配、重復物理計算,以及某些音頻處理技術的原始性能。

  另一個關鍵更新是將FP乘法延遲從4個周期減少到3個周期。這是相當顯著的進步。AMD表示,公司對很多細節保密,因為公司想在8月的Hot Chips上展示。我們將在7月7日進行全面的指令分析。

  整數單元、加載和存儲

  整數單元調度器每個周期最多可以接受6個micro-op,這些micro-op將饋送到224個條目的重新排序緩沖區(以前是192個)。整數單元在技術上有7個執行端口,由4個ALU(算術邏輯單元)和3個AGU(地址生成單元)組成。

1.jpeg

  調度程序由4個16條目的ALU隊列和1個28條目的AGU隊列組成,盡管AGU單元每個周期可以向寄存器文件饋送3個micro-op。基于AMD對通用軟件中指令分布的模擬,AGU隊列的大小有所增加。這些隊列饋送180個條目的通用寄存器文件(原先是168個),但也跟蹤特定的ALU操作,以防止潛在的停機操作。

1.jpeg

  三個AGU饋送到加載/存儲單元,加載/存儲單元每個周期可以支持兩個256位的讀取和一個256位的寫入。從上圖可以看出,并非所有三個AGU都相同:AGU2只能管理存儲,而AGU0和AGU1可以同時進行加載和存儲。

  存儲隊列從44個條目增加到48個條目,數據緩存的TLB也增加了。不過,這里的關鍵指標是加載/存儲帶寬,因為核心現在每個時鐘可以支持32個字節,而非原來的16個字節。

  緩存和Infinity Fabric

  緩存中最大的變化就是L1指令緩存,它從64KB減少到了32KB,但是結合度從4路增加到了8路。這一變化使AMD能夠將micro-op緩存的大小從2K條目增加到4K條目,AMD認為這可以更好地平衡現代工作負載的發展。

  L1-D緩存仍然是8路32KB ,而L2緩存仍為8路512KB。L3緩存是非包容性緩存(L2是包容性緩存),現在它的大小已經增加了一倍,達到16MB/核心復合體(原先是8MB)。AMD管理L3的方式是每個CCX共享一個16MB的區塊,而不是允許從任何核心訪問L3。

9bae3774aaea45c281823c4616a4b97c.jpeg

  由于L3的大小增加,延遲略有增加。L1仍然是4周期,L2仍然是12周期,但是L3已經從35周期增加到了40周期(這是大緩存的一個特性,它們的延遲會稍微長一些;這是一個有趣的權衡)。AMD已經聲明它已經增加了處理L1和L2丟失的隊列的大小,盡管尚未詳細說明它們現在有多大。

  Infinity Fabric

  隨著Zen 2的推出,我們也轉向了第二代Infinity Fabric。IF2的主要更新之一是支持PCIe 4.0,因此總線寬度從256位增加到512位。

93fd6a2822d5425f9bc64ae3349970c4.jpeg

  據AMD稱,IF2的整體效率提高了27%,導致每比特的功耗更低。隨著EPYC中的IF鏈路越來越多,這將變得非常重要,因為數據從chiplet傳輸到IO芯片。

  IF2的一個特點是時鐘已經從DRAM主時鐘中分離出來。在Zen和Zen+中,IF頻率與DRAM頻率耦合,這導致了一些有趣的場景,在這些場景中,內存可以運行得更快,但IF中的限制意味著它們都受到時鐘鎖步特性的限制。對于Zen 2,AMD已經為IF2引入了比率,支持1:1的正常比率或2:1的比率,可以將IF2時鐘減半。

d7ee1b2c8bc24b2580f16e2861d347bf.jpeg

  這個比率應該在DDR4-3600或DDR4-3800附近自動發揮作用,但這確實意味著IF2時鐘減少了一半,這對帶寬有沖擊效應。應該注意的是,即使DRAM頻率很高,如果IF頻率較慢,則可能會限制從該較快內存獲得的原始性能增益。AMD建議在DDR4-3600附近保持1:1的比例,而是在該速度優化sub-timing。

  結論:平臺、SoC、核心

  構建像Zen 2這樣的核心需要的不僅僅是構建核心。核心、SoC設計和平臺之間的相互作用要求不同的內部團隊聯合起來,創造出單獨工作所缺乏的協同水平。AMD在chiplet設計和Zen 2方面所做的工作表現出了巨大的希望,不僅可以利用更小的工藝節點,還可以為計算的未來開辟一條道路。

  當進入更先進的工藝節點時,主要優點是功耗更低。這可以通過以下幾種方式來實現:在相同的性能下降低運行的功率,或者使用更多的功率預算來做更多的事情。隨著時間的推移,我們在核心設計中看到了這一點:隨著更多的功率預算被開啟,以及內核中的不同單元變得更高效,額外的功率被更廣泛地用來驅動內核,希望能提高原始指令速率。這不是一個容易解決的問題,因為存在許多權衡因素:Zen 2核心中的一個例子就是L1 I緩存的減少使得AMD的micro-op緩存增加了一倍,AMD希望這樣能提高性能和功耗。對這些工程師來說,實施至少在高層次上可行的方案就像玩樂高一樣。

  盡管如此,Zen 2看起來很像Zen。它屬于同一個系列,這意味著它看起來非常相似。AMD在這個平臺上所做的一切,啟用PCIe 4.0,并使服務器處理器擺脫類似NUMA的環境,都將有助于AMD的長遠發展。AMD良好的前景取決于它可以驅動的服務器部件的頻率有多高,但Zen 2+ Rome將會著力解決Zen的客戶提出的大量問題。

1.jpeg

  總之,AMD已經在Zen 2和Zen+的基礎上提高了15%的核心性能。隨著核心的變化,在高層次上看肯定是可行的。專注于性能的用戶會喜歡新的16核Ryzen 9 3950X,而處理器在105W時看起來效率很高,因此看看它在低功耗下會發生什么會很有趣。我們也期待在接下來的幾個月內Rome推出非常強大的產品,特別是像雙倍FP性能和QoS這樣的特性,64核的原始多線程性能將成為市場的一個有趣的破壞者,特別是價格有效的話。我們很快就會拿到硬件,在7月7日處理器發布時展示我們的發現。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 精品成人一区二区 | 97视频免费| 狠狠五月深爱婷婷网免费 | 午夜电影在线观看国产1区 午夜电影网国产中文亚洲 午夜成人影视 | 午夜激情福利在线 | 久久99国产精品免费观看 | 欧美一级日韩一级 | www.小视频 | 网站视频大片www | 国产精品久久久久久搜索 | 777奇米四色米奇影院在线播放 | 欧美在线视频一区二区 | 天使萌一区二区在线观看 | 狠狠综合视频精品播放 | 国产精品免费福利 | 久久国产亚洲精品麻豆 | 青草国内精品视频在线观看 | 国产主播第一页 | 久久九九久精品国产 | 99精品全国免费7观看视频 | 免费99视频有精品视频高清 | 婷婷色九月综合激情丁香 | 福利一区二区在线 | 久久99精品国产免费观看 | 国产区精品高清在线观看 | 深爱五月激情五月 | 久久97久久99久久综合 | 男人天堂日韩 | 久久网址 | 香蕉欧美 | 99国产精品九九视频免费看 | 99精品高清不卡在线观看 | 久久www免费人成一看片 | 国产精品综合视频 | 精品国产欧美一区二区三区成人 | 色狠狠成人综合色 | 欧美精品人爱c欧美精品 | 国产大乳喷奶水在线看 | 国内精品福利在线视频 | 欧美一区不卡二区不卡三区 | 成人综合婷婷国产精品久久免费 |