多核心可以發(fā)掘程序的TLP(Thread Level Parallelism,線程級并行度),很多服務(wù)器應(yīng)用具有很不錯(cuò)的TLP,然而還有一些程序線程級并行度并不高,單線程性能仍然是一個(gè)重要的指標(biāo)。
在上個(gè)世紀(jì),處理器的單線程性能通過充分發(fā)掘ILP(Instruction Level Parallelism,指令級并行度)得到了極大的發(fā)展,使用的手段就是超標(biāo)量、亂序執(zhí)行等設(shè)計(jì),這些設(shè)計(jì)需要附加復(fù)雜的控制線路,因此一些注重功耗的領(lǐng)域–如嵌入式–還可以見到非超標(biāo)量、順序執(zhí)行設(shè)計(jì)的處理器。并且,ILP的發(fā)掘經(jīng)過數(shù)十年的發(fā)展似乎已經(jīng)到了極致,從上個(gè)世紀(jì)末到現(xiàn)在已經(jīng)沒有太大的進(jìn)步了。例如,四發(fā)射已經(jīng)成為了通用處理器最多的發(fā)射數(shù)目,因?yàn)楦嗟陌l(fā)射數(shù)量已經(jīng)不能再明顯的發(fā)掘ILP,相反,為了充分利用四發(fā)射,出現(xiàn)了如 Intel超線程在內(nèi)的各種CMT技術(shù)。
利用多核心系統(tǒng)提升單線程性能
Core Fusion,將多個(gè)核心聚合成一個(gè)大核心
仍然有一些技術(shù)希望繼續(xù)挖掘TLP和ILP,Core Fusion就是這樣的一個(gè)技術(shù),通過動(dòng)態(tài)將多個(gè)核心聚合成一個(gè)大核心,可以靈活地獲得多線程性能的提升,也能提升單線程性能,然而基于前面所說的緣故,四發(fā)射已經(jīng)能基本充分地發(fā)揮ILP,更多的發(fā)射數(shù)目、更多的執(zhí)行單元和更大的L1緩存的提升并不是很明顯。Intel Barcelona Research Center提出了一種新的技術(shù):Anaphase,這個(gè)技術(shù)通過將傳統(tǒng)的單個(gè)線程在細(xì)粒度水平上分解成多個(gè)猜測線程(SpMT,Speculative multithreading)并分布到多核心處理器的多個(gè)核心上并行執(zhí)行,最終加速了原單線程的性能。
Anaphase概念圖
左:一個(gè)傳統(tǒng)的單線程,包含了四個(gè)大區(qū)塊和多個(gè)小區(qū)塊
右:Anaphase將其分成兩個(gè)猜測線程,每個(gè)線程具有若干個(gè)大區(qū)塊和小區(qū)塊
Anaphase是一種軟硬結(jié)合的方案,軟件上,編譯器負(fù)責(zé)將程序的單個(gè)線程分解為多個(gè)猜測線程并進(jìn)行標(biāo)注,硬件上,處理器通過標(biāo)注將對應(yīng)的猜測線程分布到多個(gè)CPU核心上并行執(zhí)行,并對他們進(jìn)行跟蹤、同步。Anaphase引入了一個(gè)ICMC 組件,將一系列的處理器核心聯(lián)合起來,這個(gè)稱為Tile(原意:磚、瓦)的結(jié)構(gòu)就是猜測多線程運(yùn)行的基本單元。
Intel巴塞羅那研究中心使用一個(gè)特制的ICC編譯器和一個(gè)周期精確的x86模擬器進(jìn)行了 Anaphase的模擬,并和Core Fusion進(jìn)行了SPEC CPU 2006的對比運(yùn)算。x86模擬器模擬了下面的兩種配置:Tiny Core和Medium Core:
Medium Core就是一個(gè)通常的Core 2 Duo核心,而Tiny Core則相當(dāng)于半個(gè)Medium Core
最后Intel給出了四個(gè)配置下的數(shù)據(jù),基準(zhǔn)1則是Tiny/Medium Core下不采用CoreFusion和Anaphase技術(shù)的成績:
可以看出,Anaphase的效果非常明顯 ,在Tiny Core/Medium Core下可以分別達(dá)到41%和31%的加速比,Core Fusion技術(shù)則是28%和12%,綜合上Anaphase比Core Fusion更為有效。
Anaphase動(dòng)態(tài)執(zhí)行指令分析:測試代碼大部分都可以對Anaphase進(jìn)行優(yōu)化(Optimized段)
目前Anaphase仍然處于研究階段,上面的測試是一個(gè)基于2核心的Anaphase的 Tile,而Anaphase可以支持更多的猜測線程/運(yùn)行核心數(shù)量,Anaphase技術(shù)非常有潛力,唯一令筆者遺憾的就是它還不能脫離編譯器而在處理器內(nèi)完全實(shí)現(xiàn)這點(diǎn)了。