英特爾十三代酷睿處理器猛禽湖RPL-S架構(gòu)體驗報告
小孩子不懂計算機(jī),寫著玩的
大家笑一笑就好

背景歷史
近年,自AMD的ZEN3處理器發(fā)布以來,Intel包括桌面、服務(wù)器以及移動端在內(nèi)的主要產(chǎn)品線都受到了來自AMD競品的強(qiáng)力威脅,作為老牌大型垂直芯片企業(yè)霸主的它在距離奔騰四時代的約20年后,地位再一次受到了挑戰(zhàn),這可以說是Intel的內(nèi)憂。而與之相對的外患,則是現(xiàn)今Apple也正在邁向逐步使用基于ARM架構(gòu)的Apple Silicon代替了Intel處理器的進(jìn)程上。RISC陣營的崛起預(yù)示著以x86這種CISC陣營的地位已經(jīng)來到了危險的邊緣。落后于競爭對手的制程工藝、凌亂的PAO產(chǎn)品策略前后夾擊,就在這危險之時,Intel的傳奇,來自以色列的海法團(tuán)隊在去年為Intel搬出了Alder Lake架構(gòu)下的十二代酷睿這一終極救兵,打了一個漂亮的翻身仗。而今年,他們在Alder Lake的基礎(chǔ)上,基于PAO(制程Process-架構(gòu)Architecture-優(yōu)化Optimization)模型,為我們帶來了最新的Raptor Lake。
大杯的猛禽
13代酷睿沿用了12代開創(chuàng)而來的P-Core+E-core,組成的混合架構(gòu)。制程則是升級成了采用了第三代SuperFin結(jié)構(gòu)的Intel 7 Ultra。其特點是能夠?qū)崿F(xiàn)更高的Voltage-Frequency包線,比起上代Intel 7能提升接近1Ghz。

13代酷睿的核心代號Raptor Lake,P-Core架構(gòu)為Raptor Cove,E-Core架構(gòu)則是refined Gracemont Cove。Raptor Cove的13900K,全核可達(dá)5.5Ghz,單核可達(dá)5.8Ghz,L2 cache由1.25MiB提升到了2MiB,共享L3 cache從30MiB提升到36MiB。另外,在L2 cache中額外引入了L2P預(yù)緩存技術(shù),能根據(jù)工作負(fù)載動態(tài)調(diào)整預(yù)取器的行為。L3 cache中則是加入入了Dynamic INI動態(tài)包含/非包含算法,DINI會嘗試根據(jù)運行的內(nèi)存行為在L3包含/非包含策略之間實時切換。在refined Gracemont上,L2 cache翻了個倍達(dá)到了4MiB,最高頻率從3.7Ghz來到了4.3GHz,并在最高規(guī)格sku的核心規(guī)模上達(dá)成了翻翻。不過,在gcc 12.2編譯器中13代酷睿的旗表卻任何12代一樣為Alder Lake,可能是暗示著兩者在體系結(jié)構(gòu)上的近似度。

使用lstopo呈現(xiàn)的13900K層次關(guān)系如下:

與12900K一樣,整體結(jié)構(gòu)仍是在傳統(tǒng)的酷睿處理器環(huán)形總線結(jié)構(gòu)上額外掛載了4個類Atom內(nèi)核簇,每個內(nèi)核簇共享L2 cache,之后并入ring bus中與P-core share L3 cache,依靠線程導(dǎo)向器將各種線程按照負(fù)荷交給不同類型的內(nèi)核。
同時,由于集成了多達(dá)24個內(nèi)核和各類高帶寬部件,Raptor Lake內(nèi)部也啟用了雙環(huán)路互聯(lián)總線來提供高速的內(nèi)聯(lián)交流帶寬。
Raptor Lake依然使用 8 條信道的DMI 4.0總線與南橋芯片組 PCH 連接,可以使用上一代Alder Lake配套的Z690芯片組,但是我還是建議選擇Intel為Raptor Lake配套的 Z790芯片組,Z790的PCIE 4.0通道數(shù)是 20 條(Z690 只有 12 條),當(dāng)然PCIE 3.0通道數(shù)則從16條縮減到了8條,此外Z790也不再支持Octane 內(nèi)存。
微架構(gòu)Refined Gracemont
因為經(jīng)過調(diào)整的Gracemont Cove并未在結(jié)構(gòu)上與Alder Lake中的Gracemont Cove做出重大區(qū)分,所以我們直接將其看作是Gracemont Cove的工藝加強(qiáng)版也未嘗不可。Gracemont Cove起源于英特爾的低耗電x86架構(gòu),發(fā)展至今已經(jīng)歷4代。Raptor Lake配備的Gracemont Cove則在Alder Lake采用的Gracemont Cove上更新了新的工藝。

Gracemont引入了名為 OD-ILD的按需“指令長度”預(yù)解碼器設(shè)計可以在L1指令緩存里存放了指令長度數(shù)據(jù)。便于x86這種CISC指令集計算機(jī)在指令第二次拾取時繞過預(yù)解碼階段,直達(dá)指令解碼器前的指令隊列上,這樣的設(shè)計可以節(jié)省部分周期和耗電。同時,Gracemont采用了雙解碼器簇的設(shè)計,每個解碼器簇各有三個解碼器。雖然看上去一共有六路解碼,但是兩個解碼器簇合計只能向下游輸出5個微操作,和RISC的設(shè)計思路非常類似。與之相比,Gracemont的直系上代微架構(gòu)Tremont也具備一樣的雙3路解碼器,但是只能做到輸出4個微操作。根據(jù)Intel的解釋,這種雙解碼器簇的設(shè)計對于Atom這種低耗電處理器來說比使用基于高速緩存的方案更好,在不損失解碼能力的情況下可以有效降低die的面積。后端上,Gracemont的重排序緩存可以容納256條目,可以同時向執(zhí)行端口發(fā)送5個指令,相比之下上一代的 Tremont指令窗口是208條目,可以同時向執(zhí)行端口發(fā)送4個指令。在執(zhí)行單元端口數(shù)方面,Gracemont和Tremont分別是12個整數(shù)+ 5個浮點和7個整數(shù)+3個浮點,指令并行能力有所提升。
微架構(gòu)Raptor Cove

Raptor Cove的L1指令高速緩存比起上一代相比未有變化,都是32KiB,但是增加了用于緩沖的指令頁表緩存隊列,長度256.
分支預(yù)測器中增加了L1和L2高速緩存用的目標(biāo)分支緩存條目隊列,可以在管道pipeline的較早階段重定向取回并可以加速間接分支。分別增加到128條和12288條,相比之下,Zen3只有6.5K條目。同時新增了ITA和返回棧便于單周期指令調(diào)度。
微操作緩存大小保持不變,處于時鐘門控控制下的解碼器可以動態(tài)降低多并行指令解碼器帶來的耗電和時延問題。
新增每周期8個操作的指令引退單元,從512條目的ROB重排序緩存分出280長的整數(shù)物理寄存器和332長的向量寄存器鏈接到其上。
指令拾取帶寬保持每周期32字節(jié)不變,與ZEN3一致
微高速操作緩存保持每周期8個操作,超過上上代Willow Cove
解碼器和微高速操作緩存下游的uop-DQ寬度保持不變,144個長的隊列用于存放單線程操作應(yīng)用,SMT應(yīng)用的則為72個,調(diào)度器具有6個分配端口和12個執(zhí)行端口。
后端執(zhí)行單元上Alder Lake的兩個快速加法單元仍舊存在,整數(shù)流水線上的Port 10使得Raptor Cove有5個ALU用于實現(xiàn)單周期LEA指令的執(zhí)行。
內(nèi)存上Load端口準(zhǔn)許每周期執(zhí)行3個256位的Load操作或2個512位的Load操作和2個Store操作,超越ZEN3每周期3個Load操作和2個Load操作。
Load/Store隊列為128和72不變。L1數(shù)據(jù)緩存前新增96隊列長的L1數(shù)據(jù)后備緩沖區(qū),以每周期64字節(jié)的方式鏈接16通道的L2高速緩存,比起上代增加了0.75MB的容量并多了6根讀寫通道。同樣,L2也增加了2048隊列長的后備緩沖區(qū)來進(jìn)一步增加指令序列容量緩解分支預(yù)測帶來的性能下降。
指令延遲


相較于12900K來說由于Ringbus結(jié)構(gòu)與設(shè)計的變動,當(dāng)E-Core有負(fù)載的時候,Ringbus frequency不會再由4700 Mhz掉至3600 Mhz這樣的大幅度變化,其變化主要由5000 Mhz變化至4600 MHz,此時Ringbus的延遲將不再成為核心訪問延遲的負(fù)累,再加上Ringbus拓?fù)浣Y(jié)構(gòu)的可能變動致使13900K的P與E之間的通訊不再存在一個明顯的訪問懲罰,幾乎所有核心間的通訊速度都維持到了一致的水平,大約在30-33 ns之間,除了同Cluster內(nèi)的小核心仍舊因為沒有總線探聽器的緣故具有一定的訪問延遲懲罰,而同Cluster內(nèi)的E核心延遲也有少許的改進(jìn)。
考慮到C2C延遲的測量需要鎖定緩存行的前綴指令,參考SDM 3A 8.1.4,如果修改的內(nèi)存在cache里且為WB,可能不再發(fā)出總線鎖,而是推測性地修改,再通過MESI去廣播修改,發(fā)生競爭時就靠ringbus或者mesh去仲裁了。也就是說緩存鎖不需要再顯式廣播鎖/解鎖信息。同時由于是依次cmpxchg,只有當(dāng)另一個核心的修改被更新到L1,cmpxchg才會成功修改數(shù)據(jù)。所以超線程之間延遲低,主要是因為不需要搬運數(shù)據(jù),甚至根本沒有MESI的更新。
以上就是這次13代酷睿的架構(gòu)內(nèi)容,接下來開始性能測試環(huán)節(jié)。
性能測試
CPU:Intel i9 13900K、Intel i7 12700、AMD Ryzen 9 5900X
主板:
LGA1700:ASUS TUF GAMING B660M-PLUS WIFI D4
AM4:ASUS ROG STRIX B550-XE GAMING WIFI
內(nèi)存:英睿達(dá)鎂光DDR4-3200 16GB*2
電源:長城G7 750W
操作系統(tǒng):Ubuntu 22.04 Linux Kernel 6.0、Windows 11 專業(yè)版
編譯器:GCC12.2 默認(rèn)-o0關(guān)閉編譯器優(yōu)化

Raptor Cove和Golden Cove表現(xiàn)相近,說明底層架構(gòu)差異不大
定頻4.0GHz時對處理器的內(nèi)存帶寬數(shù)據(jù)除以固定處理器頻率可以得到處理器每周期訪存的帶寬,可以用來判別微架構(gòu)Load/Store單元規(guī)模和總線設(shè)計的強(qiáng)弱

Raptor Cove的讀取總線帶寬略低于Golden Cove,大約是每周期74字節(jié),而Golden Cove 可以達(dá)到每周期89字節(jié),都比Zen3的每周期62字節(jié)高。Gracemont的測試結(jié)果除了Cache 大小差別外幾乎是一樣的。
處理器的五段流水線流水線一般分為取指、譯碼、執(zhí)行、訪存、寫回五個階段,其中前端一般指取指和譯碼,后端則是執(zhí)行和寫回。
對于超標(biāo)量處理器設(shè)計而言,每周期可以執(zhí)行復(fù)數(shù)條指令,前端需要為后端匹配相應(yīng)的取指譯碼能力才能保證流水線單元沒有空閑。同時,分支預(yù)測單元也被加入其中用以決定是否需要將指令優(yōu)先派發(fā)給閑置后端單元執(zhí)行。處理器中存在被稱為op cache的緩存,用以存放被處理器認(rèn)為近期可能會被重復(fù)使用到的微操作指令,由于這里的微操作是已經(jīng)經(jīng)過解碼器解碼的存在,所以其長度是固定的。以循環(huán)語句為例,循環(huán)體內(nèi)的指令語句是不斷重復(fù)的,這些指令就會以微操作的形式存放在op cache里,這樣循環(huán)調(diào)用的時候就可以略過解碼器直接通過發(fā)射端口發(fā)往后端隊列。我們這里分別對4字節(jié)指令和8字節(jié)指令進(jìn)行測試。
首先是4字節(jié)指令

Raptor Cove和上一代一樣,都是每周期6?bytes,都可以維持到L1 Cache邊界,比起ZEN3要持久一點。Gracemont可以在6.x IPC性能可以維持到8KiB 的水平,并且在128KiB邊界處也能維持到接近6IPC的水平,新Gracemont得益于cache的增長,時間上能持久一點。
再是8字節(jié)指令

Raptor Cove 的最高取指帶寬為每周期53字節(jié),而Golden Cove是每周期50字節(jié),有所提升,看起來對復(fù)雜指令解碼能力不錯,相當(dāng)于在6.25IPC
增強(qiáng)版的Gracemont在取指帶寬方面也比上一代的Gracemont更好,可以達(dá)到每周期35字節(jié),而上一代是每周期33字節(jié),2048KiB內(nèi)幾乎能和ZEN3持平。
接下來測試流水線的深度,此項可以反應(yīng)處理器的分支預(yù)測性能
測試方式是REP函數(shù)固定10次循環(huán)執(zhí)行MOVZX內(nèi)存載入后異或XOR操作完畢接SHR指令右移1位后跳轉(zhuǎn),br=8,N=0
ZEN3為14.72個周期,Raptor Cove為18.84個周期,Golden Cove為18.61個周期,refined Gracemont為17.92個周期,Gracemont為17.01個周期
可見13代處理器的分支預(yù)測懲罰更高,在本例中都要提升1周期左右,流水線深度略有增加。這個環(huán)節(jié)中ZEN3的分支預(yù)測懲罰最少
最后來看下單次內(nèi)存訪問延時性能
C程序代碼如下:
程序按照4GB大小申請?zhí)摂M內(nèi)存,之后按4KB每頁寫入值以訪存,并按照6400B為步長順序訪問內(nèi)存,計算得到延時如下

13900K with 3200MHzDDR4成績分別為:14ns 11ns、12ns 10ns、13ns 11ns、14ns 10ns
5900X with 3200MHzDDR4成績分別為:11ns 9ns、10ns 9ns、11ns 8ns、11ns 8ns
可見單步長下ZEN3有微弱優(yōu)勢領(lǐng)先。
最后是浮點數(shù)除法性能測試,C語言代碼如下:
設(shè)定-O0關(guān)閉編譯器優(yōu)化后得到匯編文件,除法部分表示為:

可見程序調(diào)用SSE2雙精度浮點數(shù)除法命令divsd,將浮點數(shù)參數(shù)xmm0交換至內(nèi)存中后再進(jìn)行除法操作,解決了SSE寄存器不能直接mov賦值立即數(shù)的問題。又因浮點數(shù)除法先要實現(xiàn)階碼相減再要實現(xiàn)尾數(shù)定點減法,涉及整數(shù)、浮點轉(zhuǎn)換最多、最長,所以最消耗性能。
樣例輸出結(jié)果如下:

整體測試結(jié)果如下

Raptor Cove的用時僅有Golden Cove的23%,Gracemont也有6%左右的提升,可見大核的架構(gòu)升級還是不小的。
結(jié)語
從微架構(gòu)角度而言,Raptor Lake和上一代 Alder Lake雖然有些差別,但是整體來看,主要的變化不大,主要是E-Core規(guī)模增加(但是內(nèi)部總線帶寬并沒有隨之拓展)、引入了更大的 Cache,在同頻下跑常規(guī)應(yīng)用的差別并不大,主要靠頻率和 E-Core 帶來的吞吐提升。作為Intel 7工藝改進(jìn)之下的新產(chǎn)品,雖然功耗的上限提高了,但中低功耗區(qū)間下的表現(xiàn)也有了穩(wěn)步的提升。就一款新型PAO模式下的處理器而言,它是出色的。