摘要:多核技術(shù)是時下民用機和商用機領(lǐng)域最為熱門的話題之一,作為目前CPU技術(shù)的最新發(fā)展方向,多核處理器在各個方面和單核處理器比較都具有十分明顯的優(yōu)勢。該文從計算機設(shè)計技術(shù)的背景出發(fā),詳細(xì)介紹了多核系統(tǒng)的概念和和多核處理技術(shù),最后以Intel和AMD兩家公司為例,說明了多核系統(tǒng)構(gòu)架。
關(guān)鍵詞:多核技術(shù);CPU;處理器
中圖分類號:TP316文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)29-0485-03
A Survey of Chip Multi-Core System Framework
LIU Lei
(Beijing Jiaotong University,Beijing 100044,China)
Abstract: The multi-core technology is one of the most popular topics for current civil machine and commercial machine area. As the newest developing destination of current CPU technology, multi-core processor has very obvious advantages compared with single-core processor in every aspect. From the background of computer designing technology, this thesis introduces the multi-core system concept and multi-core processing technology in detail. Finally, this thesis illustrates multi-core system framework, taking example of two companies: Intel and AMD.
Key words: multi-core technology; CPU processor
在2005年以前,主頻一直是兩大處理器巨頭Intel和AMD爭相追逐的焦點。而且處理器主頻也在Intel和AMD的推動下達(dá)到了一個又一個的高峰,就在處理器主頻提升速度的同時,也發(fā)現(xiàn)在目前的情況下,單純主頻的提升已經(jīng)無法為系統(tǒng)整體性能的提升帶來明顯的變化,伴隨著高主頻也帶來了處理器巨大的發(fā)熱量,更為不利是Intel和AMD兩家在處理器主頻提升上已經(jīng)有些力不從心了。在這種情況下,Intel和AMD都不約而同地將投向了多核的發(fā)展方向,在不用進(jìn)行大規(guī)模開發(fā)的情況下將現(xiàn)有產(chǎn)品發(fā)展成為理論上性能更為強大的多核處理器系統(tǒng)。
1 背景知識
計算機設(shè)計技術(shù)的創(chuàng)新在20世紀(jì)80年代以后對計算機性能以每年50%以上的速度增長貢獻(xiàn)巨大。總的來說,計算機設(shè)計技術(shù)的創(chuàng)新主要體現(xiàn)在以下幾方面:指令級并行技術(shù)ILP(包括流水線技術(shù)、RISC技術(shù)、超標(biāo)量技術(shù)、VLIW技術(shù)、分支預(yù)測技術(shù)、猜測執(zhí)行技術(shù)、動態(tài)調(diào)度技術(shù)等)、存儲器層次結(jié)構(gòu)優(yōu)化設(shè)計(Cache)技術(shù)、I/O技術(shù)、線程級并行技術(shù)TLP(包括并行多線程技術(shù)SMT、對稱多處理技術(shù)SMP、片上多核處理技術(shù)CMP等)。
這里著重強調(diào)一下指令級并行技術(shù)ILP與線程級并行技術(shù)TLP。
指令級并行技術(shù)ILP(Instruction-Level Parallelism)是使指令重疊進(jìn)行以提高效率的方法。歸結(jié)起來,提高指令級并行度有兩種方法,一種是依賴于硬件的動態(tài)技術(shù)(例如Pentium 4、PowerPC603等),一種是依賴于軟件的靜態(tài)技術(shù)(如Itanium)。這兩種技術(shù)之間的劃分并不是絕對的。
1966年,F(xiàn)lynn提出了一種對所有計算機進(jìn)行分類的簡單模型(單指令流單數(shù)據(jù)流SISD,單指令流多數(shù)據(jù)流SIMD,多指令流單數(shù)據(jù)流MISD,多指令流多數(shù)據(jù)流MIMD),其中SISD就是單處理器,而MIMD簡單地說就是每個處理器取用自己的指令對自己的數(shù)據(jù)進(jìn)行處理的多處理器系統(tǒng)。為了利用有n個處理器的MIMD計算機,我們通常必須執(zhí)行至少n個進(jìn)程或線程(這里的線程概念已經(jīng)與經(jīng)典操作系統(tǒng)課程中的線程不同,通常用來指運行在不同處理器上的多個執(zhí)行過程,即使它們沒有共享同一地址空間)。各個獨立線程由程序員所標(biāo)示或由編譯器所創(chuàng)建。這種由多個線程同時執(zhí)行所帶來的并行性即為線程級并行。
MIMD計算機根據(jù)存儲組織方式可以分為集中式共享存儲結(jié)構(gòu)(也叫SMP或UMA。特別是如果在一個芯片上實現(xiàn)的多處理技術(shù),稱為CMP,Chip Multi-Processing,也即所謂多核處理技術(shù))和分布式存儲多處理器系統(tǒng)(又可分為分布式共享存儲器系統(tǒng)DSM與多機系統(tǒng),其中前者又可稱為NUMA系統(tǒng),后者又可稱為集群)。
為了與多核處理技術(shù)做比較,有必要介紹一下同屬于線程級并行范疇的多線程(Multi-Threading)技術(shù)。
所謂多線程(Multi-Threading)技術(shù)是指允許多個線程以重疊方式共享一個單處理器的功能單元的線程級并行技術(shù),典型的代表有Intel的超線程(Hyper-Threading)技術(shù)。Intel的超線程技術(shù)可以讓單物理內(nèi)核的處理器通過模擬方式實現(xiàn)在對稱處理模式下雙處理器運行的效果。當(dāng)然模擬出來的邏輯處理器其實并沒有獨立的資源,它們在運行過程中仍需要共用執(zhí)行單元、寄存器、緩存和系統(tǒng)總線接口。在執(zhí)行多線程時兩個邏輯處理器交替工作,如果兩個線程都同時需要某一個資源時,其中一個要暫停并讓出資源,要待該資源閑置才能繼續(xù)。
2 多核系統(tǒng)介紹
多核處理技術(shù),也稱片上多處理技術(shù)(CMP,Chip Multi-Processing):就是在一個處理器基板上集成多個功能相同的處理器核心。我們知道,處理器實際性能是處理器在每個時鐘周期內(nèi)所能處理指令數(shù)的總量。每增加一個內(nèi)核,處理器將增加一套執(zhí)行單元和寄存器等資源,因此,CMP通過在多個核上分配工作負(fù)荷,并且依靠到內(nèi)存和輸入輸出(I/O)的高速片上互聯(lián)和高帶寬管道使得系統(tǒng)性能大幅度提升。
集成電路制造技術(shù)的發(fā)展速度到目前為止仍然遵守著摩爾定律。一想到提升處理器的性能,大家最容易想到的手段是提高主頻,但是主頻的提升要求大幅度增加晶體管的數(shù)量。晶體管的密度以大約每年35%的速度增長,差不多四年翻兩番;芯片尺寸增長速度大約在每年10%~20%之間。二者總的效果是每個芯片上的晶體管數(shù)目以每年大約55%的速度增加。以這種速度,保守估計2007年P(guān)C處理器上晶體管的數(shù)目就會達(dá)到10億只,頻率大約是6GHz。巨大的晶體管數(shù)量帶來的發(fā)熱量和干擾的因素的介入使得集成度和處理器的頻率已經(jīng)越來越趨近于一個極限。
處理器實際性能是處理器在每個時鐘周期內(nèi)所能處理器指令數(shù)的總量,因此增加一個內(nèi)核,理論上處理器每個時鐘周期內(nèi)可執(zhí)行的單元數(shù)將增加一倍。原因很簡單,因為它可以并行的執(zhí)行指令,含有幾個內(nèi)核,單位時間可以執(zhí)行的指令數(shù)量上限就會增加幾倍。而在芯片內(nèi)部多嵌入幾個內(nèi)核的難度要遠(yuǎn)遠(yuǎn)比加大內(nèi)核的集成度要簡單很多。于是,多核就能夠在不提高生產(chǎn)難度的前提下,用多個低頻率核心產(chǎn)生超過高頻率單核心的處理效能,特別是服務(wù)器產(chǎn)品需要面對大量并行數(shù)據(jù),多核心分配任務(wù)更能夠提高工作效率。可以看作一種多處理器協(xié)作的微縮形式,并且達(dá)到更加的性能價格比,一套系統(tǒng)達(dá)到多套系統(tǒng)的性能。
同時,多核的介入,使得摩爾定律在另一個層面的意義上,避免了尷尬的局面。英特爾高級副總裁基辛格(Pat Gelsinger)認(rèn)為,從單核到雙核到多核的發(fā)展就證明了摩爾定律還是非常正確的。他說:\"從單核到雙核再到多核的發(fā)展,可能是摩爾定律問世以來在芯片發(fā)展歷史上速度最快的性能提升過程。\"
與Hyper-Threading相比,多核處理器,由于實體上具備兩個執(zhí)行核心,也具備兩份L1、L2高速緩存,所以兩個執(zhí)行緒進(jìn)入處理器之后,可以真正獲得指令階段的平行處理,效率不是Hyper-Threading所能比擬的。而Hyper-Threading雖然在處理器入口端可以允許兩個執(zhí)行緒同時進(jìn)入,不過由于實體的執(zhí)行單元只有一份,兩個執(zhí)行線程的指令還是需要輪流「排隊」進(jìn)入執(zhí)行管線,而不是真正平行地運算。充其量Hyper-Threading只能算是提高執(zhí)行單元/管線使用率的一種技巧,所以我們還是稱它為「邏輯」處理器。
具體地說,多核處理器具有以下優(yōu)點(圖1所示)。
2.1 多核處理技術(shù)能有效提高性能
相比以前的由分立處理器構(gòu)成的多處理技術(shù),多核處理技術(shù)由于將多個CPU放在一塊硅片上,當(dāng)工程技術(shù)人員在兩個CPU內(nèi)核之間傳送數(shù)據(jù)時,可以利用更短的距離和更快的總線速度的優(yōu)勢達(dá)到更高的性能。測試證明,CMP性能超過SMP性能50%以上。
與超線程技術(shù)相比,多核處理器中每個核心擁有獨立的執(zhí)行單元和寄存器等資源,可以真正并發(fā)執(zhí)行多項任務(wù),其效率要比超線程技術(shù)高得多。
2.2 多核處理技術(shù)能有效降低功耗
現(xiàn)代的CMOS微處理器,能量主要消耗在晶體管狀態(tài)的轉(zhuǎn)換上。每個晶體管需要的能量是正比于晶體管的負(fù)載電容、轉(zhuǎn)換頻率和電壓的平方三者的乘積。多核處理器可以用較低的頻率達(dá)到單核處理器使用更高頻率才能達(dá)到的性能,因此也就能有效降低功耗了。
2.3 多核處理技術(shù)能有效節(jié)約成本
對于今天的芯片制造商來說,封裝和測試占總成本的四分之一到一半。多核處理器共享相同的封裝和I/O(I/O有時能占到芯片的四分之一面積),顯然可以有效地降低成本。
2.4 多核處理技術(shù)能有效增加功能
多核處理技術(shù)能有效增加單核處理器所難以具備的某些功能,最典型的當(dāng)屬虛擬技術(shù)。虛擬技術(shù)可以讓一臺物理計算機虛擬出若干個獨立的系統(tǒng),這些虛擬系統(tǒng)能使用同樣的計算機資源獨立工作。
3 多核系統(tǒng)構(gòu)架
最近逐漸熱起來的“多核”概念,主要是指基于X86開放架構(gòu)的多核技術(shù)。在這方面,起領(lǐng)導(dǎo)地位的廠商主要有AMD和Intel兩家。其中,兩家的思路又有不同。下面,我們以雙核為例,分別看一下AMD和Intel多核處理器的內(nèi)部架構(gòu)。
3.1 Intel雙核系統(tǒng)構(gòu)架
Intel的雙核心構(gòu)架更像是一個雙CPU平臺(圖2所示),Pentium D處理器繼續(xù)沿用Prescott架構(gòu)及90nm生產(chǎn)技術(shù)生產(chǎn)。Pentium D內(nèi)核實際上由于兩個獨立的2獨立的Prescott核心組成,每個核心擁有獨立的1MB L2緩存及執(zhí)行單元,兩個核心加起來一共擁有2MB,但由于處理器中的兩個核心都擁有獨立的緩存,因此必須保正每個二級緩存當(dāng)中的信息完全一致,否則就會出現(xiàn)運算錯誤。
為了解決這一問題,Intel將兩個核心之間的協(xié)調(diào)工作交給了外部的MCH(北橋)芯片,雖然緩存之間的數(shù)據(jù)傳輸與存儲并不巨大,但由于需要通過外部的MCH芯片進(jìn)行協(xié)調(diào)處理,毫無疑問的會對整個的處理速度帶來一定的延遲,從而影響到處理器整體性能的發(fā)揮。
3.2 AMD雙核系統(tǒng)構(gòu)架
以AMD Athlon 64 X2為例(圖3所示),與Intel雙核心處理器不同的是,Athlon 64 X2的兩個內(nèi)核并不需要經(jīng)過MCH進(jìn)行相互之間的協(xié)調(diào)。AMD在Athlon 64 X2雙核心處理器的內(nèi)部提供了一個稱為System Request Queue(系統(tǒng)請求隊列)的技術(shù),在工作的時候每一個核心都將其請求放在SRQ中,當(dāng)獲得資源之后請求將會被送往相應(yīng)的執(zhí)行核心,也就是說所有的處理過程都在CPU核心范圍之內(nèi)完成,并不需要借助外部設(shè)備。
對于雙核心架構(gòu),AMD的做法是將兩個核心整合在同一片硅晶內(nèi)核之中,而Intel的雙核心處理方式則更像是簡單的將兩個核心做到一起而已。與Intel的雙核心架構(gòu)相比,AMD雙核心處理器系統(tǒng)不會在兩個核心之間存在傳輸瓶頸的問題。因此從這個方面來說,Athlon 64 X2的架構(gòu)要明顯優(yōu)于Pentium D架構(gòu)。
AMD和Intel的雙核技術(shù)在物理結(jié)構(gòu)上也有很大不同之處。AMD將兩個內(nèi)核做在一個Die(晶元)上,通過直連架構(gòu)連接起來,集成度更高。Intel則是將放在不同Die(晶元)上的兩個內(nèi)核封裝在一起,因此有人將Intel的方案稱為“雙芯”,認(rèn)為AMD的方案才是真正的“雙核”。 專家認(rèn)為,AMD的架構(gòu)對于更容易實現(xiàn)雙核以至多核,Intel的架構(gòu)會遇到多個內(nèi)核爭用總線資源的瓶頸問題。從用戶端的角度來看,AMD的方案能夠使雙核CPU的管腳、功耗等指標(biāo)跟單核CPU保持一致,從單核升級到雙核,不需要更換電源、芯片組、散熱系統(tǒng)和主板,只需要刷新BIOS軟件即可,這對于主板廠商、計算機廠商和最終用戶的投資保護(hù)是非常有利的。客戶可以利用其現(xiàn)有的90納米基礎(chǔ)設(shè)施,通過BIOS更改移植到基于雙核心的系統(tǒng)。
4 結(jié)束語
多核處理技術(shù)是提高計算機性能的創(chuàng)新手段,但是要真正發(fā)揮出多核處理技術(shù)的性能優(yōu)勢是對軟件程序員的嚴(yán)峻挑戰(zhàn),因為他們必須對平臺中運行的系統(tǒng)軟件進(jìn)行重新編寫,使系統(tǒng)軟件能在多個執(zhí)行內(nèi)核間妥善分配任務(wù)并協(xié)調(diào)運行。
同時,雖然多核處理器的性能較單核處理器有所提升,但考慮到目前大部分的應(yīng)用程序,比如Office辦公軟件、游戲、視頻播放等應(yīng)用都是單線程的,因此對于大多數(shù)用戶來說選擇單核處理器仍是最佳選擇。而對于進(jìn)行專業(yè)視頻、3D動畫和2D圖像處理的用戶來說,就有必要考慮一下多核的系統(tǒng)。所以,發(fā)展多核并不能像發(fā)展CPU核心頻率那樣明顯的迅速在桌面應(yīng)用程序?qū)用婵吹叫Ч胍嬲龖?yīng)用在桌面上面,還有一段時間。不過,總體來說,多核技術(shù)的應(yīng)用在未來是一種不可阻擋的趨勢和潮流。由于最大性能的關(guān)系,多核必將取代多核。這只是一個時間的問題。