《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > AMD 逆襲的新武器:Zen 2 核心詳解

AMD 逆襲的新武器:Zen 2 核心詳解

2019-07-16
關(guān)鍵詞: AMD 處理器

  在過(guò)去的一個(gè)月里,AMD發(fā)布了許多公告。AMD正在準(zhǔn)備推出他們的第三代Ryzen臺(tái)式機(jī)處理器。這些處理器將利用AMD最新的微架構(gòu)Zen 2,采用臺(tái)積電領(lǐng)先的7nm工藝制造。

  我們先來(lái)看看核心的微架構(gòu)改進(jìn)。

  Zen 2

  新芯片的核心是Zen 2。這一核心將用于AMD的移動(dòng)APU、高性能臺(tái)式機(jī)處理器和數(shù)據(jù)中心芯片。

  Zen 2是繼Zen之后的下一個(gè)主要微架構(gòu)。隨著Zen 2的推出,AMD承諾分別基于Cinebench 1T和Spec2006進(jìn)行13-15%的IPC改進(jìn)。要了解他們?nèi)绾文軌蛱崛PC的收益,我們需要仔細(xì)研究基礎(chǔ)微架構(gòu)的變化。

  前端

  前端的很大一部分已經(jīng)進(jìn)行了重新設(shè)計(jì)。在沒(méi)有標(biāo)識(shí)分支的典型情況下,從下一個(gè)64B塊的地址開(kāi)始從第一級(jí)高速緩存提取指令。Zen最初提供了一個(gè)64 KiB L1緩存。它由4路256組(4 ways of 256 sets)組成。Zen 2對(duì)L1進(jìn)行了大改。關(guān)聯(lián)性已經(jīng)變?yōu)?路64組(8 ways of 64 sets),緩存大小減半到32 KiB。如果沒(méi)有AMD的更多細(xì)節(jié),我們很難描述其他變化,更高的關(guān)聯(lián)性也應(yīng)該降低未命中率。AMD指出,通過(guò)減小指令緩存的大小,并利用該區(qū)域來(lái)增加一些其他組件,特別是BPU和OC,它們能夠從每單位面積的硅中獲得更好的性能。順便說(shuō)一下,從組織的角度來(lái)看,Zen 2現(xiàn)在和英特爾的Skylake和Sunny Cove是一樣的。值得注意的是,一級(jí)指令高速緩存轉(zhuǎn)換后備緩沖區(qū)保持不變。它仍然是完全關(guān)聯(lián)的64條目深度緩沖區(qū),能夠存儲(chǔ)4 KiB、2 MIB和1 GiB頁(yè)面。

  高速緩存線保持64字節(jié),每個(gè)周期可以獲取32個(gè)字節(jié)。在不太常見(jiàn)的高速緩存未命中的情況下,L1將為包含未命中地址的線生成填充請(qǐng)求。每個(gè)周期最多32個(gè)字節(jié)可以從共享L2傳輸?shù)街噶罡咚倬彺妗?/p>

  除了由提取生成的填充請(qǐng)求外,分支預(yù)測(cè)器和預(yù)提取器還可以發(fā)出額外的請(qǐng)求。這一點(diǎn)很重要,因?yàn)轭A(yù)取器能夠利用空間局部性以避免停頓。這是AMD花了很多努力改進(jìn)的另一個(gè)領(lǐng)域。

  最好的預(yù)測(cè)器會(huì)贏嗎?

  分支預(yù)測(cè)單元的目標(biāo)是預(yù)測(cè)條件分支的下一個(gè)地址。換句話說(shuō),猜測(cè)它是否被占用了。這里的基本思想是猜測(cè)指令流的路徑,而不是通過(guò)停止流水線直到最終知道路徑來(lái)浪費(fèi)周期。然而,這必須明智地進(jìn)行,因?yàn)樵愀獾念A(yù)測(cè)會(huì)直接導(dǎo)致工作的浪費(fèi)。當(dāng)發(fā)生分支時(shí),將其存儲(chǔ)在分支目標(biāo)緩沖區(qū)中,以便可以更容易地確定和采用(或不采用)后續(xù)分支。諸如Zen之類(lèi)的現(xiàn)代微處理器通過(guò)不僅將最后一個(gè)分支的歷史而是最后幾個(gè)分支的歷史存儲(chǔ)在全局歷史寄存器(GHR)中,以便提取分支之間的相關(guān)性(例如,如果采用較早的分支,則可能也將采用下一個(gè)分支),從而進(jìn)一步實(shí)現(xiàn)這一點(diǎn)。

  Zen上的BTB是一個(gè)三級(jí)緩存——每個(gè)緩存都具有更高的容量,但代價(jià)是更長(zhǎng)的延遲。Zen 2保持結(jié)構(gòu)不變,但幾乎將第二級(jí)和第三級(jí)BTB中的條目數(shù)量增加了一倍,分別從256和4K增加到512和7K條目。

  順便說(shuō)一句,在Zen中,第一級(jí)(L0)BTB中的查找是零延遲查找,而L1和L2 BTB中的后續(xù)表查找分別導(dǎo)致一個(gè)和四個(gè)冒泡。目前還不清楚Zen 2是否改變了這些成本。

  Zen采用了一種稱為散列感知器的動(dòng)態(tài)預(yù)測(cè)器。利用人工智能的大肆宣傳,營(yíng)銷(xiāo)人員喜歡將其稱為神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)器。感知器是最簡(jiǎn)單的機(jī)器學(xué)習(xí)形式,與其他一些機(jī)器學(xué)習(xí)算法相比,感知器本身更易于實(shí)現(xiàn)硬件。它們往往也比gshare之類(lèi)的預(yù)測(cè)器更準(zhǔn)確,但它們的實(shí)現(xiàn)確實(shí)更復(fù)雜。Zen上的實(shí)際實(shí)現(xiàn)尚不清楚,但我們至少可以描述一個(gè)簡(jiǎn)單的實(shí)現(xiàn)是什么樣子的。當(dāng)處理器遇到條件分支時(shí),它的地址用于從感知器表中獲取感知器。對(duì)于我們來(lái)說(shuō),感知器只不過(guò)是權(quán)重向量。這些權(quán)重表示歷史分支的結(jié)果與預(yù)測(cè)的分支之間的相關(guān)性。例如,考慮以下三種模式:“TTN”、“NTN”和“NNN”。如果這三個(gè)模式都導(dǎo)致下一個(gè)分支沒(méi)被采用,那么或許我們可以說(shuō)前兩個(gè)分支之間沒(méi)有相關(guān)性,并為它們分配很小的權(quán)重。先前分支的結(jié)果是從全局歷史寄存器中獲取的。寄存器中的各個(gè)位用作輸入。輸出值是計(jì)算出的權(quán)重和先前分支歷史的點(diǎn)積。在這種情況下,負(fù)輸出可能意味著“不采取”,而其他值可能被預(yù)測(cè)為“采取”。值得一提的是,分支歷史之外的其他輸入也可以用于推理相關(guān)性,盡管不知道是否有現(xiàn)實(shí)世界的實(shí)現(xiàn)利用了這一想法。Zen的實(shí)現(xiàn)可能要復(fù)雜得多,或許是對(duì)不同類(lèi)型的歷史進(jìn)行采樣。盡管如此,它的工作方式仍然是一樣的。

  鑒于Zen流水線的長(zhǎng)度和寬度,錯(cuò)誤的預(yù)測(cè)可能導(dǎo)致超過(guò)100個(gè)槽被刷新。這直接導(dǎo)致性能的損失。Zen 2保留了散列感知器預(yù)測(cè)器,但增加了第二層新的TAGE預(yù)測(cè)器。這個(gè)預(yù)測(cè)器是由Andre Seznec在2006年首次提出的,它是對(duì)Michaud的PPM類(lèi)預(yù)測(cè)器的改進(jìn)。TAGE預(yù)報(bào)器贏得了上一屆分支預(yù)測(cè)(CBP)大賽(2006-2016)的全部四項(xiàng)冠軍。TAGE的理念是,程序中的不同分支需要不同的歷史長(zhǎng)度。換句話說(shuō),對(duì)于某些分支,非常小的歷史記錄效果最好。例如1位預(yù)測(cè)器:如果某一分支以前采用過(guò),它將再次采用。不同的分支可能依賴于先前的分支,因此需要更長(zhǎng)的多位歷史以充分預(yù)測(cè)它是否將被采用。標(biāo)記幾何歷史長(zhǎng)度(TAGE)預(yù)測(cè)器由多個(gè)全局歷史表組成,這些表使用不同長(zhǎng)度的全局歷史寄存器索引,以便涵蓋所有這些情況。寄存器使用的長(zhǎng)度形成了幾何級(jí)數(shù),因此得名。

  使用TAGE預(yù)測(cè)器的想法是,它試圖找出哪個(gè)分支的歷史數(shù)量最適合哪個(gè)分支,將最長(zhǎng)的歷史優(yōu)先于較短的歷史。

  這種多預(yù)測(cè)器方案類(lèi)似于分支目標(biāo)緩沖區(qū)的分層。第一級(jí)預(yù)測(cè)器是感知器,用于快速查找(例如,單周期分辨率)。第二級(jí)TAGE預(yù)測(cè)器是一個(gè)復(fù)雜的預(yù)測(cè)器,需要很多周期才能完成,因此必須在簡(jiǎn)單預(yù)測(cè)器之上分層。換句話說(shuō),L2預(yù)測(cè)器速度較慢,但更好,因此用于對(duì)較快和較不準(zhǔn)確預(yù)測(cè)器的結(jié)果進(jìn)行雙重檢查。如果L2預(yù)測(cè)器與L1預(yù)測(cè)器不同,則當(dāng)TAGE預(yù)測(cè)器覆蓋感知器預(yù)測(cè)器時(shí),會(huì)發(fā)生少量刷新,提取返回并使用L2預(yù)測(cè),因?yàn)長(zhǎng)2預(yù)測(cè)器被認(rèn)為是更準(zhǔn)確的預(yù)測(cè)。

  除了使用TAGE預(yù)測(cè)器以外,AMD沒(méi)有透露更多的內(nèi)容。值得指出的是,至少就字面而言,TAGE預(yù)測(cè)器不再被認(rèn)為是最好的預(yù)測(cè)器。之后,Seznec在TAGE預(yù)測(cè)器上進(jìn)行了改進(jìn),增加了統(tǒng)計(jì)校正器(TAGE-SC),后來(lái)又增加了循環(huán)預(yù)測(cè)器(TAGE-SC-L)。替代方案包括BATAGE預(yù)測(cè)器。盡管如此,我們得到的結(jié)論是,有更多的機(jī)會(huì)找到更好的分支預(yù)測(cè)器,這是一個(gè)非常活躍的研究領(lǐng)域。

  AMD表示,與之前的感知器相比,新的分支預(yù)測(cè)單元顯示出的誤預(yù)測(cè)率目標(biāo)低30%。因?yàn)楝F(xiàn)代微處理器的精確度高達(dá)90%。與在Zen中的實(shí)現(xiàn)相比,這種錯(cuò)誤預(yù)測(cè)率的大幅降低將直接轉(zhuǎn)化為更高的IPC。事實(shí)上,如此大的改進(jìn)可以單獨(dú)占據(jù)Zen 2聲稱的性能提升的很大一部分。

  改變現(xiàn)狀

  關(guān)于AMD的這一代芯片,我們注意到的一件事是現(xiàn)狀的變化。從歷史上看,英特爾在設(shè)計(jì)最先進(jìn)、性能最高的預(yù)測(cè)器方面投入了大量資源。另一方面,AMD往往落后于一個(gè)“足夠好”的更保守的預(yù)測(cè)器。隨著Zen的成功,Zen 2的情況變得有所不同。雖然AMD正在摘取所有唾手可得的成果,但它們現(xiàn)在正直接瞄準(zhǔn)英特爾,而英特爾一直擁有無(wú)可爭(zhēng)辯的領(lǐng)先優(yōu)勢(shì)。換句話說(shuō),AMD似乎對(duì)他們目前的核心設(shè)計(jì)充滿信心,可以騰出更多的資源來(lái)解決次要的缺陷。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。