一年多來,我們一直惦念著AMD的下一代處理器產(chǎn)品。新的chiplet設(shè)計被認(rèn)為是在驅(qū)動性能和可擴展性方面的重大突破,特別是在越來越小的工藝節(jié)點上制造高頻大芯片變得越來越困難的情況下。AMD預(yù)計將通過Ryzen和EPYC在其處理器系列中部署其chiplet范式,這些chiplet每個都有8個下一代Zen 2核心。今天,AMD更詳細(xì)地介紹了Zen 2核心,為公司上周在Computex上展示的比上一代產(chǎn)品提高15%的時鐘性能提供了理由。
AMD的Zen 2產(chǎn)品組合
目前AMD宣布擁有Zen 2核心的產(chǎn)品包括Ryzen第三代消費級CPU,即Ryzen 3000系列,以及AMD下一代企業(yè)EPYC處理器,即Rome。到目前為止,AMD已經(jīng)公布了6款消費級Ryzen 3000處理器的詳細(xì)信息,包括核心數(shù)量、頻率、內(nèi)存支持和電源。關(guān)于服務(wù)器處理器的細(xì)節(jié),除了一些峰值之外,預(yù)計將在未來幾個月的適當(dāng)時候公布。
與第一代Zen相比,Zen 2的設(shè)計范式已經(jīng)發(fā)生了顯著的變化。新平臺和核心實現(xiàn)是圍繞臺積電7nm工藝的小型8核chiplet設(shè)計的,尺寸約74~80平方毫米。在這些chiplet上有兩組四核組成的“核心復(fù)合體”(CCX),其中包含這4個核心和一組L3緩存——Zen 2的L3緩存是 Zen 1的兩倍。
每個完整的CPU,無論它有多少chiplet,都通過Infinity Fabric鏈路與中央IO芯片配對。IO芯片充當(dāng)所有片外通信的中心樞紐,因為它包含處理器的所有PCIe通道、內(nèi)存通道,以及與其他chiplet和其他CPU之間的Infinity Fabric鏈路。EPYC Rome處理器的IO芯片基于臺積電的14nm工藝制造,而消費類處理器IO芯片(體積更小,功能更少)則基于GlobalFoundries的12nm工藝制造。
這款名為“Matisse”(或稱Ryzen 3rd Gen、Ryzen 3000系列)的消費級處理器擁有最多兩個chiplet,16個內(nèi)核。AMD將在7月7日推出6個版本的Matisse,從6核到16核不等。6核處理器和8核處理器有一個chiplet,8核以上的處理器有兩個chiplet,但在所有情況下IO芯片都是相同的。這意味著每個基于Zen 2的Ryzen 3000處理器都可以訪問24個PCIe 4.0通道和雙通道內(nèi)存。根據(jù)今天的公告,Ryzen 5 3600的價格將從199美元到16核的700美元以上(我們正在等待這個價格的最終確認(rèn))。
基于Zen 2 chiplet構(gòu)建的EPYC Rome處理器擁有多達(dá)8個處理器,使一個平臺可以支持多達(dá)64個核心。與消費級處理器一樣,chiplet不可以直接相互通信——每個chiplet只能直接連接到中央IO芯片。IO芯片包含8個內(nèi)存通道的鏈路,以及多達(dá)128個PCIe 4.0連接通道。
AMD的路線圖
在討論新產(chǎn)品線之前,有必要回顧一下我們目前在AMD的計劃路線圖中所處的位置。
AMD之前的路線圖展示了從Zen到Zen 2、Zen 3的轉(zhuǎn)變,AMD解釋說,這個結(jié)構(gòu)已有多年,2017年發(fā)布Zen,2019年發(fā)布Zen 2,2021年發(fā)布Zen 3。節(jié)奏并不完全是一年一代,因為這依賴于AMD的設(shè)計和制造能力,以及與代工廠合作伙伴的協(xié)議和當(dāng)前的市場力量。
AMD曾表示,Zen 2的計劃始終是在7nm工藝上推出,最終使用臺積電的7nm制程(Global Foundries未能及時準(zhǔn)備好7nm工藝,并最終放棄了這一計劃)。下一代Zen 3預(yù)計將與更新的7nm工藝保持一致,目前AMD尚未對潛在的“Zen 2+”設(shè)計發(fā)表任何評論,盡管目前我們并不期望看到它。
除了Zen 3之外,AMD已經(jīng)聲明Zen 4和Zen 5目前正處于各自設(shè)計的不同階段,但是AMD沒有承諾特定的時間框架或工藝節(jié)點技術(shù)。AMD過去曾表示,這些平臺和處理器設(shè)計的范式都是提前3~5年制定的,公司必須在每一代產(chǎn)品上都下大賭注,以確保自己能夠保持競爭力。
為了深入了解Zen 4,在Computex上,AMD嵌入式和半定制組的高級副總裁Forrest Norrod在采訪中向AnandTech獨家透露了AMD Zen 4 EPYC處理器的代號:Genoa。
Forrest解釋說,Zen 5的代號遵循類似的模式,但他不愿對Zen 4產(chǎn)品的時間框架發(fā)表評論。鑒于Zen 3的設(shè)計預(yù)計將在2020年年中推出,如果AMD遵循這一節(jié)奏,那么Zen 4將在2021年末/2022年初推出。目前還不清楚它將如何進(jìn)入AMD的消費級路線圖計劃,它將取決于AMD如何接近其芯片范式和未來對封裝技術(shù)的調(diào)整,以實現(xiàn)進(jìn)一步的性能改進(jìn)。
Zen 2的性能聲明
在Computex上,AMD宣布他們已經(jīng)設(shè)計出了Zen 2,當(dāng)比較相同頻率的Zen 2和Zen+時,Zen 2可以提供比Zen+平臺高15%的原始性能。與此同時,AMD還聲稱,在相同的功率下,Zen 2可以提供1.25倍以上的性能增益,或在同樣的性能下只有一半的功耗。結(jié)合這一點,就特定基準(zhǔn)而言,AMD聲稱其每瓦性能比其上一代產(chǎn)品高75%,比競爭對手高45%。
這些數(shù)字我們目前無法核實,因為我們手頭沒有相關(guān)產(chǎn)品,當(dāng)7月7日禁令解除時,我們會確定基準(zhǔn)測試結(jié)果。AMD確實花了大量的時間來研究Zen 2微架構(gòu)的新變化,以及平臺級別的變化,以展示該產(chǎn)品與上一代產(chǎn)品相比是如何改進(jìn)的。
還應(yīng)該注意的是,在AMD最近的技術(shù)日期間,該公司多次表示,他們無意與主要競爭對手在漸進(jìn)式更新上反復(fù)拉鋸,試圖打敗對方,這可能會導(dǎo)致技術(shù)停滯不前。AMD的高管們表示,無論競爭對手是誰,AMD都將竭盡所能地挑戰(zhàn)每一代產(chǎn)品的性能極限。首席執(zhí)行官Lisa Su博士和首席技術(shù)官Mark Papermaster都表示,他們預(yù)計Zen 2產(chǎn)品組合推出的時間表將與競爭激烈的英特爾10nm產(chǎn)品線交叉。盡管情況并非如此,AMD的高管們表示,他們?nèi)栽诎从媱澩七M(jìn)他們的路線圖。
AMD在展示其即將推出的Matisse處理器的性能時,選擇的基準(zhǔn)是Cinebench。Cinebench是一種浮點基準(zhǔn)測試,該公司在這方面一直做得很好,它傾向于檢測CPU FP性能以及緩存性能,盡管它通常不涉及很多內(nèi)存子系統(tǒng)。
早在今年1月的CES 2019上,AMD就展示了一款未命名的8核Zen 2處理器,與英特爾的高端8核處理器i9-9900K相比,二者在Cinebench R15上的系統(tǒng)得分大致相同,但AMD全系統(tǒng)的耗電量約為英特爾的1/3或更少。在5月份的Computex上,AMD公布了很多8核和12核的細(xì)節(jié),以及這些芯片在單線程和多線程Cinebench R20結(jié)果中的比較。
AMD表示,在比較不同內(nèi)核數(shù)量時,它的新處理器在CPU基準(zhǔn)測試方面提供了更好的單線程性能、更好的多線程性能、更低的功耗和更低的價格。
談到游戲,AMD在這方面相當(dāng)樂觀。 在1080p時,將Ryzen 7 2700X與Ryzen 7 3800X進(jìn)行比較,AMD希望幀速率每一代都能有11%~34%的增長。
在比較AMD和英特爾處理器時,AMD堅持對熱門游戲進(jìn)行1080p測試,再次比較核心數(shù)量和價格類似的處理器。在幾乎所有的比較中,AMD的產(chǎn)品和英特爾的產(chǎn)品都不相上下,AMD有的高些,有的低些,或平分秋色。以下以250美元產(chǎn)品為例進(jìn)行比較:
此時,游戲性能旨在展示頻率和IPC的改進(jìn),而不是展示PCIe 4.0帶來的好處。在頻率方面,AMD表示,盡管7nm芯片尺寸縮小且通路電阻率較高,但與GlobalFoundries的14nm和12nm相比,它們能夠從臺積電7nm工藝中獲得更高的頻率。
AMD還評論了新的L3緩存設(shè)計,因為它從2MB/核心變成了4MB/核心。據(jù)AMD稱,L3緩存翻了一倍,使用獨立GPU進(jìn)行游戲時,1080p的性能提升了11%~21%。
Zen 2中有一些新指令可以幫助驗證這些數(shù)字。
Windows優(yōu)化
對于使用Windows的非英特爾處理器而言,一個令人頭疼的關(guān)鍵問題是操作系統(tǒng)中的優(yōu)化和調(diào)度程序安排。我們在過去已經(jīng)看到Windows對非英特爾微架構(gòu)布局是多么地不友好,例如AMD以前在Bulldozer中的模塊設(shè)計、高通在Snapdraon上使用的混合CPU策略,以及最近在Threadripper上進(jìn)行的多芯片安排,以便將不同的內(nèi)存延遲域引入消費級計算。
顯然,AMD與微軟有密切的關(guān)系,當(dāng)涉及到識別處理器的非常規(guī)核心拓?fù)鋾r,這兩家公司致力于確保線程和內(nèi)存分配,沒有程序驅(qū)動的方向,試圖最大限度地利用系統(tǒng)。隨著5月10日Windows的更新,一些額外的功能已經(jīng)到位,以充分利用即將到來的Zen 2微架構(gòu)和Ryzen 3000芯片布局。
優(yōu)化有兩方面,這兩方面都很容易解釋。
線程分組
第一個是線程分配。當(dāng)處理器具有不同的CPU核心“組”時,分配線程的方式也就不同,所有這些方法都有各自的優(yōu)缺點。線程分配的兩個極端歸結(jié)為線程分組和線程擴展。
線程分組是當(dāng)新線程生成時,它們將被直接分配到已經(jīng)擁有線程的內(nèi)核旁邊的內(nèi)核上。這使線程緊密結(jié)合在一起,用于線程到線程的通信,但是它可以創(chuàng)建高功率密度的區(qū)域,特別是當(dāng)處理器上有多個內(nèi)核但只有幾個處于活動狀態(tài)的時候。
線程擴展是指內(nèi)核彼此放置得盡可能遠(yuǎn)。這意味著第二個線程盡可能遠(yuǎn)地在不同的chiplet或不同的核心復(fù)合體(CCX)上產(chǎn)生。這允許CPU通過沒有高功率密度的區(qū)域來保持高性能,通常在多個線程上提供最佳的turbo性能。
線程擴展的危險在于,當(dāng)一個程序生成兩個線程,而這兩個線程最終位于CPU的不同位置的時候。在Threadrapper中,這甚至可能意味著第二個線程位于CPU的一個具有較長內(nèi)存延遲的部分,從而導(dǎo)致兩個線程之間的潛在性能不平衡,即便這些線程所在的內(nèi)核處于較高的turbo頻率。
由于現(xiàn)代軟件(特別是視頻游戲)正在產(chǎn)生多線程而不是依賴單個線程,并且這些線程需要相互通信,AMD正在從混合線程擴展技術(shù)轉(zhuǎn)向線程分組技術(shù)。這意味著在訪問另一個CCX之前,一個CCX將被線程填滿。AMD認(rèn)為,盡管一個chiplet中具有高功率密度的潛力,而另一個可能處于非活動狀態(tài),但對于整體性能而言,這仍然是值得的。
對于Matisse而言,這應(yīng)該可以為有限的線程場景提供一個很好的改進(jìn)。看看這對即將到來的EPYC Rome CPU或未來的Threadripper設(shè)計有多大影響將會很有趣。AMD在其解釋中提供的單一基準(zhǔn)是1080p Low的《火箭聯(lián)盟》,報告稱幀速率增加了15%。
時鐘提升
對于熟悉Skylake微架構(gòu)的用戶來說,你可能還記得英特爾推出了一項名為Speed Shift的新功能,使處理器能夠更自由地在不同P狀態(tài)之間進(jìn)行調(diào)整,以及非??焖俚貜目臻e調(diào)整到負(fù)載——Skylake的第一個版本從100毫秒到40毫秒,然后Kaby Lake下降到15毫秒。它通過將P狀態(tài)控制從操作系統(tǒng)返回給處理器來實現(xiàn)這一點,處理器根據(jù)指令吞吐量和請求做出反應(yīng)。在Zen 2中,AMD現(xiàn)在實現(xiàn)了相同的功能。
相比于英特爾,AMD在頻率調(diào)整方面已經(jīng)具有足夠的粒度,允許25MHz而不是100MHz的差異,但是,當(dāng)涉及非常突發(fā)驅(qū)動的工作負(fù)載(burst-driven workload)時,能夠?qū)崿F(xiàn)更快的ramp-to-load頻率跳變將給AMD帶來幫助,例如WebXPRT(英特爾最喜歡這種演示)。根據(jù)AMD的說法,使用Zen 2實現(xiàn)這一功能的方式將需要BIOS更新以及Windows 5月10日的更新,但是它將把Zen的頻率提升時間從30毫秒降低到Zen 2的1~2毫秒。值得注意的是,這比英特爾給出的數(shù)字要快得多。
AMD實現(xiàn)的技術(shù)名稱涉及CPPC2,即Collaborative Power Performance Control 2,AMD的指標(biāo)表明這會增加突發(fā)工作負(fù)載和應(yīng)用程序負(fù)載。AMD表示,使用PCMark10的應(yīng)用程序啟動子測試,應(yīng)用程序的啟動時間性能提升了6%。
增強了Zen 2的安全性
Zen 2的另一個方面是AMD用來提高現(xiàn)代處理器安全性要求的方法。正如已經(jīng)報道過的,最近一系列的側(cè)通道攻擊并沒有影響AMD處理器,這主要是因為AMD管理其TLB緩沖區(qū)的方式,這些緩沖區(qū)在大部分成為問題之前總是需要額外的安全檢查。盡管如此,對于AMD易受攻擊的問題,它已經(jīng)為這些問題實現(xiàn)了一個完全基于硬件的安全平臺。
這里的變化來自Speculative Store Bypass,稱為Spectre v4,AMD現(xiàn)在有額外的硬件與操作系統(tǒng)或虛擬內(nèi)存管理器(如hypervisor)協(xié)同工作,以便進(jìn)行控制。AMD預(yù)計這些更新不會帶來任何性能變化。諸如Foreshadow和Zombieload等新問題不會影響AMD處理器。
新指令
緩存和內(nèi)存帶寬QoS控制
與大多數(shù)新的x86微架構(gòu)一樣,存在通過新指令提高性能的動力,但也會嘗試在支持哪些指令方面實現(xiàn)不同供應(yīng)商之間的對等。對于Zen 2,雖然AMD沒有像英特爾那樣迎合一些更古怪的指令集,但它在三個不同的領(lǐng)域增加了新的指令。
第一個是CLWB,以前已經(jīng)在英特爾處理器上看到過它與非易失性內(nèi)存有關(guān)。此指令允許程序?qū)?shù)據(jù)推回到非易失性內(nèi)存中,以防系統(tǒng)收到停機命令造成數(shù)據(jù)丟失。盡管AMD沒有明確說明,但還有其他與保護(hù)數(shù)據(jù)到非易失性內(nèi)存系統(tǒng)相關(guān)的指令。這可能表明AMD正在尋求在未來的設(shè)計中更好地支持非易失性內(nèi)存的硬件和結(jié)構(gòu),特別是在EPYC處理器中。
第二個緩存指令WBNOINVD是一個僅限AMD的命令,但它基于其他類似的命令,如WBINVD。此命令用于預(yù)測將來可能需要緩存的特定部分,并清除它們,以便加速將來的計算。如果所需的緩存行未準(zhǔn)備就緒,則會在所需操作之前處理刷新命令,從而增加延遲——當(dāng)延遲關(guān)鍵型指令仍沿流水線中傳遞時提前運行緩存行刷新,有助于加速其最終執(zhí)行。
在QoS下歸檔的最后一組指令實際上與如何分配緩存和內(nèi)存優(yōu)先級有關(guān)。
當(dāng)針對不同客戶將云CPU拆分為不同的容器(container)或虛擬機(VM)時,性能級別并不總是一致的,因為性能可能會根據(jù)另一個虛擬機在系統(tǒng)上執(zhí)行的操作而受到限制。這就是所謂的“嘈雜鄰居”問題:如果其他人正在占用所有核心到內(nèi)存的帶寬(即L3緩存),那么系統(tǒng)上的另一個VM就很難訪問它所需的內(nèi)容。由于這個嘈雜的鄰居,其他VM在處理其工作負(fù)載時的延遲將是高度可變的。或者,如果一個任務(wù)關(guān)鍵型VM在系統(tǒng)上,而另一個VM一直在請求資源,那么任務(wù)關(guān)鍵型VM可能會錯過它的目標(biāo),因為它沒有訪問所需的所有資源。
除了確保單個用戶可以完全訪問硬件之外,處理嘈雜的鄰居很困難。大多數(shù)云提供商和操作甚至不會告訴你是否有鄰居,在實時VM遷移的情況下,這些鄰居可能會非常頻繁地更改,因此不能保證在任何時候都有持續(xù)的性能。這就需要一組專用的QoS(服務(wù)質(zhì)量)指令。
與英特爾的實現(xiàn)一樣,當(dāng)一系列虛擬機分配到虛擬機管理程序之上的系統(tǒng)上時,虛擬機管理程序可以控制每個虛擬機有多少內(nèi)存帶寬和緩存。如果任務(wù)關(guān)鍵型8核虛擬機需要訪問64MB的L3和至少30GB/s的內(nèi)存帶寬,則虛擬機監(jiān)控程序可以控制優(yōu)先級虛擬機始終有權(quán)訪問該數(shù)量,并將其從其他虛擬機的池中完全刪除,或者在任務(wù)關(guān)鍵型虛擬機突然進(jìn)入完全訪問時智能地限制其要求。
英特爾只在其Xeon可擴展處理器上實現(xiàn)了這一功能,但AMD將為消費級和企業(yè)用戶在Zen 2處理器系列中實現(xiàn)這一功能。
我在這個功能上遇到的最直接的問題是在消費級方面。想象一下,如果一個視頻游戲需要訪問所有的緩存和所有的內(nèi)存帶寬,而一些流媒體軟件卻不能訪問——這可能會對系統(tǒng)造成嚴(yán)重的破壞。AMD解釋說,雖然從技術(shù)上講,單個程序可以請求一定級別的QoS,但是,這些請求是否有效和合適將取決于操作系統(tǒng)或虛擬機監(jiān)控程序。他們將此功能更多地視為發(fā)揮虛擬機監(jiān)控程序作用時使用的一種企業(yè)功能,而不是消費級系統(tǒng)上的裸機安裝。
CCX尺寸
向下移動節(jié)點大小會在核心內(nèi)外帶來許多挑戰(zhàn)。即使不考慮功率和頻率,將結(jié)構(gòu)放入芯片,然后將芯片集成到封裝中,以及通過正確的連接為芯片的正確部分提供電力本身也成為一種練習(xí)。AMD讓我們深入了解7nm如何改變其部分設(shè)計,以及其中的封裝挑戰(zhàn)。
AMD放棄的一個關(guān)鍵指標(biāo)與核心復(fù)合體(CCX)有關(guān):4個核心,相關(guān)的核心結(jié)構(gòu),然后是L2和L3緩存。AMD稱,在12 nm和ZEN+核心的情況下,單個核心復(fù)合體為60平方毫米,其中核心占44平方毫米,8MB的L3占16平方毫米。把其中兩個60平方毫米的復(fù)合體加上兩個帶內(nèi)存控制器、PCIe通道、4個IF鏈路和其他IO,Zen+ Zeppelin裸片總共是213平方毫米。
對于Zen 2,單個chiplet是74平方毫米,其中31.3平方毫米是核心復(fù)合體,有16 MB的L3。AMD沒有將這31.3個數(shù)字拆分為核心和L3,但是人們可以想象L3可能接近這個數(shù)字的50%。chiplet如此小的原因是它不需要內(nèi)存控制器,它只有一個IF鏈路,沒有IO,因為所有的平臺要求都在IO芯片上。這使得AMD可以使chiplet非常緊湊。然而,如果AMD打算繼續(xù)增加L3緩存,那么L3緩存可能會占據(jù)芯片的大部分。
但總體而言,AMD已經(jīng)表示CCX(核心加L3)的尺寸減少了47%。這顯示了巨大的可擴展性,特別是當(dāng)+15%的原始指令吞吐量和增加的頻率開始發(fā)揮作用時。每平方毫米的性能將是一個非常令人興奮的指標(biāo)。
封裝
由于Matisse使用AM4插槽,Rome使用EPYC插槽,AMD表示他們必須押寶封裝技術(shù),以保持兼容性。這些賭注中的一些最終總是為了持續(xù)的支持而進(jìn)行權(quán)衡,但AMD相信,為了兼容性值得付出額外的努力。
AMD談到的與封裝有關(guān)的關(guān)鍵問題之一是,每個裸片如何連接到封裝上。為了實現(xiàn)pin-grid陣列臺式機處理器,必須以BGA方式將芯片固定到處理器上。AMD表示,由于采用了7nm工藝,凸點間距(裸片和封裝上的焊球之間的距離)從12nm的150微米減少到7nm的130微米。這聽起來并不多,但AMD表示,世界上只有兩家廠商擁有足夠的技術(shù)來做到這一點。唯一的替代方案是使用更大的芯片來支持更大的凸點間距,最終導(dǎo)致芯片中出現(xiàn)大量空閑(或不同的設(shè)計范式)。
為了實現(xiàn)更緊密的凸點間距,其中一種方法是調(diào)整在芯片下側(cè)處理凸點的方式。通常情況下,封裝上的焊料凸點是一個無鉛焊料的團(tuán)或球,依靠表面張力和回流的物理特性來確保其一致且規(guī)則。然而,為了實現(xiàn)更緊密的凸點間距,AMD必須轉(zhuǎn)向銅柱焊料凸點拓?fù)洹?/p>
為了實現(xiàn)這一特性,銅被外延沉積在掩模內(nèi),以便形成回流焊料所使用的“支架”。由于焊柱的直徑,所需的掩模較少,從而產(chǎn)生較小的焊料半徑。由于其在Matisse內(nèi)部的雙芯片設(shè)計,AMD還遇到了另一個問題:如果IO芯片使用標(biāo)準(zhǔn)焊料凸點掩模,并且chiplet使用銅柱,則集成散熱器需要有一定的高度一致性。對于較小的銅柱,這意味著管理銅柱的增長水平。
AMD解釋說,與建造不同高度的散熱器相比,實際上管理這種連接實現(xiàn)更容易,因為散熱器的沖壓工藝不會產(chǎn)生如此小的公差。AMD預(yù)計,未來所有7nm設(shè)計都將采用銅柱實現(xiàn)。
布線
除了將裸片放在有機襯底上之外,該襯底還必須管理裸片與裸片外部之間的連接。為了處理額外的布線,AMD必須將封裝中的襯底層增加到12層(沒有透露在Rome需要多少層,也許14層)。對于單核chiplet和雙核chiplet處理器而言,這也變得有些復(fù)雜,特別是在將裸片放進(jìn)封裝之前對其進(jìn)行測試時。
從圖中我們可以清楚地看到從兩個chiplet到IO芯片的IF鏈路,IO芯片也處理內(nèi)存控制器以及貌似電源平面的任務(wù)。chiplet之間沒有封裝內(nèi)鏈接:chiplet無法直接通信,chiplet之間的所有通信都是通過IO芯片處理的。
AMD表示,采用這種布局,他們還必須注意處理器如何放置在系統(tǒng)中,以及冷卻和內(nèi)存布局。此外,當(dāng)涉及到更快的內(nèi)存支持或PCIe 4.0更嚴(yán)格的容差時,所有這些也需要被考慮,以便在不受其他布線干擾的情況下為信號傳導(dǎo)提供最佳路徑。
AMD Zen 2微架構(gòu)概述
快速分析
在AMD的技術(shù)日,在場的是同事兼首席架構(gòu)師Mike Clark,他經(jīng)歷了這些變化。Mike是一個很好的工程師,盡管總是讓我感到有趣的是,談?wù)撟钚庐a(chǎn)品上市的工程師們已經(jīng)在公司工作了一代、兩代或三代(對于任何公司都是這樣,不僅僅是AMD)。Mike說,他花了一段時間來回想Zen+到Zen 2的具體變化,而他的腦海中已經(jīng)經(jīng)歷了幾代產(chǎn)品的變化。
Zen 2的一個有趣元素是圍繞其意圖。最初Zen 2僅僅是Zen+的縮小版,從12nm縮小到7nm,類似于我們在本世紀(jì)初看到的英特爾的tick-tock模型。然而,AMD根據(jù)內(nèi)部分析和7nm的時間框架,決定使用ZEN 2作為性能更好的平臺,以多種方式利用7nm,而不是僅僅在一個新的工藝節(jié)點上重新設(shè)計相同的布局。作為調(diào)整的結(jié)果,AMD正在推動Zen 2的IPC比Zen+提升15%。
當(dāng)談到微架構(gòu)的確切變化時,我們基本上看到的仍然是類似于Zen外觀的布局規(guī)劃。Zen 2是Zen系列的一員,在處理x86方面并不是完全的重新設(shè)計或不同的范例——與其他具有家族更新的架構(gòu)一樣,Zen 2提供了更有效的核心和更廣泛的核心,允許更好的指令吞吐量。
從較高的層面來看,核心看起來非常相似。Zen 2設(shè)計的亮點包括不同的L2分支預(yù)測器,稱為TAGE預(yù)測器,micro-op緩存加倍,L3緩存加倍,整數(shù)資源增加,加載/存儲資源增加,以及對單操作AVX-256(或AVX2)的支持。AMD表示,基于其能量感知頻率平臺,AVX2沒有頻率損失。
AMD還對緩存系統(tǒng)進(jìn)行了調(diào)整,其中最引人注目的是L1指令緩存,它被減半到32kb,但關(guān)聯(lián)性增加了一倍。進(jìn)行這種更改是出于重要的原因,我們將在下一頁中對此進(jìn)行討論。L1數(shù)據(jù)緩存和L2緩存保持不變,但是事務(wù)后備緩沖區(qū)(TLB)增加了支持。AMD還表示,它已經(jīng)在安全方面增加了更深層次的虛擬化支持,有助于實現(xiàn)流水線后續(xù)的功能。正如本文前面提到的,還有安全性強化更新。
對于快速分析,可以很容易地看出,在許多情況下,加倍micro-op緩存將為IPC帶來顯著的改進(jìn),而把它與負(fù)載/存儲資源的增加相結(jié)合,會有助于通過更多的指令。加倍L3緩存有助于特定工作負(fù)載,支持AVX2單操作也是如此,但改進(jìn)的分支預(yù)測程序也將展示原始性能提升。總而言之,從紙面分析來看,AMD 15%的IPC改進(jìn)似乎是一個非常合理的數(shù)字。
在接下來的幾頁中,我們將深入探討微架構(gòu)的變化。
提取/預(yù)提取
我們從處理器的前端開始,預(yù)取器。
AMD在這里宣傳的主要改進(jìn)是使用TAGE預(yù)測器,盡管它只用于非l1提取。這聽起來可能并不足道:AMD仍然使用哈希感知器預(yù)取引擎為L1提取,這將會盡可能多的提取,但TAGE L2分支預(yù)測器使用額外的標(biāo)記來實現(xiàn)更長的分支歷史,以獲得更好的預(yù)測路徑。這對于L2預(yù)取及以后的預(yù)取變得更加重要,哈希感知器優(yōu)先用于基于功率的L1中的短預(yù)取。
在前端,我們還有更大的BTB,以幫助跟蹤指令分支和緩存請求。L1 BTB的大小增加了一倍,從256個條目增加到512個條目,L2幾乎增加了一倍,從4K增加到7K。L0 BTB保持在16個條目,但間接目標(biāo)陣列最多可達(dá)1K個條目。總體而言,AMD的這些變化讓誤預(yù)測率降低了30%,從而節(jié)省了電力。
另一個主要變化是L1指令緩存。我們注意到它對于Zen 2來說更?。褐挥?2KB而非64KB,但是關(guān)聯(lián)性增加了一倍,從4路增加到8路??紤]到高速緩存的工作方式,這兩種影響最終不會互相抵消,但是32KB L1-I緩存應(yīng)該更節(jié)能,并且有更高的利用率。L1-I緩存并不是孤立地減少的——減少I緩存大小的好處之一是允許AMD將micro-op緩存的大小增加一倍。這兩個結(jié)構(gòu)在核心內(nèi)部彼此相鄰,因此即使在7nm,我們也有空間限制的實例,導(dǎo)致核心內(nèi)部結(jié)構(gòu)之間的權(quán)衡。AMD表示,這種較小的L1與較大的micro-op緩存的配置,在更多的測試場景中表現(xiàn)更好。
解碼
對于解碼階段,這里的主要提升是micro-op緩存。通過把2K條目加倍到4K條目,它將比以前包含更多的解碼操作,這意味著它將經(jīng)歷大量的重用。為了便于使用,AMD提高了從micro-op緩存到緩沖區(qū)的調(diào)度速度,最多8條融合指令。假設(shè)AMD可以經(jīng)常繞過它的解碼器,這應(yīng)該是一個非常有效的區(qū)塊。
4K條目更令人印象深刻的是當(dāng)我們將它與競爭對手進(jìn)行比較的時候。在英特爾的Skylake系列中,這些內(nèi)核中的micro-op緩存只有1.5K條目。英特爾將Ice Lake的規(guī)模增加了50%,達(dá)到了2.25K,這個核心將在今年晚些時候進(jìn)入移動平臺,明年可能進(jìn)入服務(wù)器。相比之下,AMD的Zen 2核心將涵蓋從消費級到企業(yè)的所有領(lǐng)域。同時,我們也可以將其與Arm A77 CPU的micro-op緩存進(jìn)行比較,該緩存為1.5K條目,然而,它是Arm為核心設(shè)計的第一個micro-op緩存。
Zen 2中的解碼器保持不變,我們?nèi)匀豢梢栽L問4個復(fù)雜解碼器(Intel是1個復(fù)雜解碼器+4個簡單解碼器),解碼指令被緩存到micro-op緩存中,并被分派到micro-op隊列中。
AMD還表示,它已經(jīng)改進(jìn)了其micro-op融合算法,但沒有詳細(xì)說明這將如何影響性能。目前的micro-op融合轉(zhuǎn)換已經(jīng)相當(dāng)好,所以看看AMD在這里做了什么將會很有趣。與ZEN和ZEN+相比,基于對AVX2的支持,這意味著解碼器不需要將AVX2指令分解為兩個micro-op:AVX2現(xiàn)在是通過流水線的單個micro-op。
除了解碼器之外,micro-op隊列和調(diào)度可以在每個周期向調(diào)度器饋送6個micro-op。但是,這有點不平衡,因為AMD有獨立的整數(shù)和浮點調(diào)度器:整數(shù)調(diào)度器每周期可以接受6個micro-op,而浮點調(diào)度器只能接受4個micro-op。然而,調(diào)度可以同時向兩者發(fā)送micro-op。
浮點
浮點性能的關(guān)鍵亮點是完全支持AVX2。AMD已經(jīng)將執(zhí)行單元的寬度從128位增加到256位,允許單周期AVX2計算,而不是將計算分成兩個指令和兩個周期。這是通過提供256位負(fù)載和存儲來增強的,因此FMA單元可以連續(xù)饋送。AMD指出,由于其能量感知調(diào)度,在使用AVX2指令時沒有預(yù)定義的頻率下降(但是頻率可能會根據(jù)溫度和電壓要求而降低,但無論使用何種指令,這都是自動的)。
在浮點單元中,隊列每個周期最多接受來自調(diào)度單元的4個micro-op,這些micro-op饋入一個包含160個條目的物理寄存器文件。這將移動到4個執(zhí)行單元,可以在加載和存儲機制中向這些單元提供256b的數(shù)據(jù)。
除了尺寸加倍之外,F(xiàn)MA還進(jìn)行了其他調(diào)整。AMD表示,他們提高了內(nèi)存分配、重復(fù)物理計算,以及某些音頻處理技術(shù)的原始性能。
另一個關(guān)鍵更新是將FP乘法延遲從4個周期減少到3個周期。這是相當(dāng)顯著的進(jìn)步。AMD表示,公司對很多細(xì)節(jié)保密,因為公司想在8月的Hot Chips上展示。我們將在7月7日進(jìn)行全面的指令分析。
整數(shù)單元、加載和存儲
整數(shù)單元調(diào)度器每個周期最多可以接受6個micro-op,這些micro-op將饋送到224個條目的重新排序緩沖區(qū)(以前是192個)。整數(shù)單元在技術(shù)上有7個執(zhí)行端口,由4個ALU(算術(shù)邏輯單元)和3個AGU(地址生成單元)組成。
調(diào)度程序由4個16條目的ALU隊列和1個28條目的AGU隊列組成,盡管AGU單元每個周期可以向寄存器文件饋送3個micro-op?;贏MD對通用軟件中指令分布的模擬,AGU隊列的大小有所增加。這些隊列饋送180個條目的通用寄存器文件(原先是168個),但也跟蹤特定的ALU操作,以防止?jié)撛诘耐C操作。
三個AGU饋送到加載/存儲單元,加載/存儲單元每個周期可以支持兩個256位的讀取和一個256位的寫入。從上圖可以看出,并非所有三個AGU都相同:AGU2只能管理存儲,而AGU0和AGU1可以同時進(jìn)行加載和存儲。
存儲隊列從44個條目增加到48個條目,數(shù)據(jù)緩存的TLB也增加了。不過,這里的關(guān)鍵指標(biāo)是加載/存儲帶寬,因為核心現(xiàn)在每個時鐘可以支持32個字節(jié),而非原來的16個字節(jié)。
緩存和Infinity Fabric
緩存中最大的變化就是L1指令緩存,它從64KB減少到了32KB,但是結(jié)合度從4路增加到了8路。這一變化使AMD能夠?qū)icro-op緩存的大小從2K條目增加到4K條目,AMD認(rèn)為這可以更好地平衡現(xiàn)代工作負(fù)載的發(fā)展。
L1-D緩存仍然是8路32KB ,而L2緩存仍為8路512KB。L3緩存是非包容性緩存(L2是包容性緩存),現(xiàn)在它的大小已經(jīng)增加了一倍,達(dá)到16MB/核心復(fù)合體(原先是8MB)。AMD管理L3的方式是每個CCX共享一個16MB的區(qū)塊,而不是允許從任何核心訪問L3。
由于L3的大小增加,延遲略有增加。L1仍然是4周期,L2仍然是12周期,但是L3已經(jīng)從35周期增加到了40周期(這是大緩存的一個特性,它們的延遲會稍微長一些;這是一個有趣的權(quán)衡)。AMD已經(jīng)聲明它已經(jīng)增加了處理L1和L2丟失的隊列的大小,盡管尚未詳細(xì)說明它們現(xiàn)在有多大。
Infinity Fabric
隨著Zen 2的推出,我們也轉(zhuǎn)向了第二代Infinity Fabric。IF2的主要更新之一是支持PCIe 4.0,因此總線寬度從256位增加到512位。
據(jù)AMD稱,IF2的整體效率提高了27%,導(dǎo)致每比特的功耗更低。隨著EPYC中的IF鏈路越來越多,這將變得非常重要,因為數(shù)據(jù)從chiplet傳輸?shù)絀O芯片。
IF2的一個特點是時鐘已經(jīng)從DRAM主時鐘中分離出來。在Zen和Zen+中,IF頻率與DRAM頻率耦合,這導(dǎo)致了一些有趣的場景,在這些場景中,內(nèi)存可以運行得更快,但I(xiàn)F中的限制意味著它們都受到時鐘鎖步特性的限制。對于Zen 2,AMD已經(jīng)為IF2引入了比率,支持1:1的正常比率或2:1的比率,可以將IF2時鐘減半。
這個比率應(yīng)該在DDR4-3600或DDR4-3800附近自動發(fā)揮作用,但這確實意味著IF2時鐘減少了一半,這對帶寬有沖擊效應(yīng)。應(yīng)該注意的是,即使DRAM頻率很高,如果IF頻率較慢,則可能會限制從該較快內(nèi)存獲得的原始性能增益。AMD建議在DDR4-3600附近保持1:1的比例,而是在該速度優(yōu)化sub-timing。
結(jié)論:平臺、SoC、核心
構(gòu)建像Zen 2這樣的核心需要的不僅僅是構(gòu)建核心。核心、SoC設(shè)計和平臺之間的相互作用要求不同的內(nèi)部團(tuán)隊聯(lián)合起來,創(chuàng)造出單獨工作所缺乏的協(xié)同水平。AMD在chiplet設(shè)計和Zen 2方面所做的工作表現(xiàn)出了巨大的希望,不僅可以利用更小的工藝節(jié)點,還可以為計算的未來開辟一條道路。
當(dāng)進(jìn)入更先進(jìn)的工藝節(jié)點時,主要優(yōu)點是功耗更低。這可以通過以下幾種方式來實現(xiàn):在相同的性能下降低運行的功率,或者使用更多的功率預(yù)算來做更多的事情。隨著時間的推移,我們在核心設(shè)計中看到了這一點:隨著更多的功率預(yù)算被開啟,以及內(nèi)核中的不同單元變得更高效,額外的功率被更廣泛地用來驅(qū)動內(nèi)核,希望能提高原始指令速率。這不是一個容易解決的問題,因為存在許多權(quán)衡因素:Zen 2核心中的一個例子就是L1 I緩存的減少使得AMD的micro-op緩存增加了一倍,AMD希望這樣能提高性能和功耗。對這些工程師來說,實施至少在高層次上可行的方案就像玩樂高一樣。
盡管如此,Zen 2看起來很像Zen。它屬于同一個系列,這意味著它看起來非常相似。AMD在這個平臺上所做的一切,啟用PCIe 4.0,并使服務(wù)器處理器擺脫類似NUMA的環(huán)境,都將有助于AMD的長遠(yuǎn)發(fā)展。AMD良好的前景取決于它可以驅(qū)動的服務(wù)器部件的頻率有多高,但Zen 2+ Rome將會著力解決Zen的客戶提出的大量問題。
總之,AMD已經(jīng)在Zen 2和Zen+的基礎(chǔ)上提高了15%的核心性能。隨著核心的變化,在高層次上看肯定是可行的。專注于性能的用戶會喜歡新的16核Ryzen 9 3950X,而處理器在105W時看起來效率很高,因此看看它在低功耗下會發(fā)生什么會很有趣。我們也期待在接下來的幾個月內(nèi)Rome推出非常強大的產(chǎn)品,特別是像雙倍FP性能和QoS這樣的特性,64核的原始多線程性能將成為市場的一個有趣的破壞者,特別是價格有效的話。我們很快就會拿到硬件,在7月7日處理器發(fā)布時展示我們的發(fā)現(xiàn)。