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