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