多核技術(shù)論文_第1頁
多核技術(shù)論文_第2頁
多核技術(shù)論文_第3頁
多核技術(shù)論文_第4頁
多核技術(shù)論文_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、引言多核已經(jīng)不是什么新鮮詞了,但到底什么叫多核,怎么實現(xiàn)多核,那種實現(xiàn)技術(shù)在特定 的條件下更好呢?本文就是從這三個方面出發(fā)來論述多核技術(shù)。 次序依次為第二部分介紹了 多核技術(shù)的背景以及概況, 第三部分論述具體的 CMP及 SMT的多核技術(shù),第四部分則比較 了多核技術(shù)的關(guān)系,并在文章最后介紹了該技術(shù)的發(fā)展趨勢。二、 多 核技術(shù)的介紹2.1 多核技術(shù)的產(chǎn)生40 多年前, Intel 的創(chuàng)始人戈登摩爾先生根據(jù)計算機(jī)處理器發(fā)展的規(guī)律,總結(jié)出了 至今在計算機(jī)硬件領(lǐng)域中非常著名的摩爾定律:“電腦芯片上的晶體管的數(shù)量每1 8個月將翻一番”。在芯片設(shè)計和制造工藝上,幾乎到了極限, CPU的運(yùn)算能力無法再通過

2、增加晶體管的數(shù)量來提高了。在這種情況之下, CPU的制造商必須要用新的方式來提高 計算機(jī)的運(yùn)算能力,于是就有 IBM、Sun 公司利用計算機(jī)理論的并行計算設(shè)計出了多核 CPU 。2.2 多核 CPU所謂“雙核技術(shù)”,就是在處理器上擁有兩個一樣功能的處理器核心,即將兩個物 理處理器核心整合人一個內(nèi)核中。兩個處理核心在共享芯片組存儲界面的同時,可以完 全獨立地完成各自地工作, 從而能在平衡功耗的基礎(chǔ)上極大地提高CPU性能。多核 CPU,即單芯片多處理器 (CMP)是指在一個芯片上集成多個微處理器核心,可以并行地執(zhí)行程 序代碼,在不提升 CPU工作頻率的情況下,降低 CPU的功耗,并獲得很高的聚合性

3、能2.3 多核的分類根據(jù)芯片上集成的多個微處理器核心是否相同,多核CPU可分為同構(gòu)和異構(gòu)兩種:同構(gòu)多核 CPU大多數(shù)由通用的處理器組成,核心相同,核心間平等;異構(gòu)多核 CPU使 用不同的核心組成,它們分為主處理器和協(xié)處理器。通用多核 CPU多數(shù)采用同構(gòu)結(jié)構(gòu),多個處理器執(zhí)行相同或者類似的任務(wù)。同構(gòu)原理簡單,結(jié)構(gòu)對稱,硬件上較易實現(xiàn);異 構(gòu) CPU 通常含有一個主處理器和多個協(xié)處理器。 主處理器主要負(fù)責(zé)控制和管理, 協(xié)處理 器主要用來運(yùn)算。2.4 當(dāng)前具有代表性的多核 CPU產(chǎn)品第一個商用的多核 CPU是2001年IBM推出的雙核 RISC處理器 Power 4。2004年 IBM 又推出后繼產(chǎn)品

4、 Power5,并在雙核的基礎(chǔ)上引入多線程技術(shù)。 同時, HP也推出多核 CPU 產(chǎn)品 PARISC8800 , SUN也發(fā)布雙核產(chǎn)品 UltraSPARC IV 。 2005 年,多核 CPU得到 全面發(fā)展,AMD迅速推出面向服務(wù)器、 支持 x86 指令集的雙核心 Opteron 處理器。而 Intel 則推出面向桌面系統(tǒng)的雙核 CPU Pentium D 及 Pentium Extreme Edition 。另外, IBM在超級計算機(jī)系統(tǒng) BlueGeneL 中使用的 CPU也是一種雙核 CPU,與索尼和東芝聯(lián) 合推出的 Cell 處理器具備多達(dá) 9 個核心。2.5 “分治法”戰(zhàn)略英特爾工

5、程師們開發(fā)了多核芯片,使之滿足“橫向擴(kuò)展”(而非“縱向擴(kuò)充”)方 法,從而提高性能。該架構(gòu)實現(xiàn)了“分治法”戰(zhàn)略。通過劃分任務(wù), 線程應(yīng)用能夠充分利用多個執(zhí)行內(nèi)核,并可在特定的時間內(nèi)執(zhí)行更 多任務(wù)。多核處理器是單枚芯片(也稱為“硅核”),能夠直接插入單一的處理器插槽中, 但操作系統(tǒng)會利用所有相關(guān)的資源,將它的每個執(zhí)行內(nèi)核作為分立的邏輯處理器。 通過 在兩個執(zhí)行內(nèi)核之間劃分任務(wù),多核處理器可在特定的時鐘周期內(nèi)執(zhí)行更多任務(wù)。多核架構(gòu)能夠使目前的軟件更出色地運(yùn)行, 并創(chuàng)建一個促進(jìn)未來的軟件編寫更趨完 善的架構(gòu)。盡管認(rèn)真的軟件廠商還在探索全新的軟件并發(fā)處理模式,但是,隨著向多核處理器 的移植,現(xiàn)有軟件無

6、需被修改就可支持多核平臺。操作系統(tǒng)專為充分利用多個處理器而設(shè)計,且無需修改就可運(yùn)行。 為了充分利用多 核技術(shù), 應(yīng)用開發(fā)人員需要在程序設(shè)計中融入更多思路, 但設(shè)計流程與目前對稱多處理(SMP) 系統(tǒng)的設(shè)計流程相同,并且現(xiàn)有的單線程應(yīng)用也將繼續(xù)運(yùn)行現(xiàn)在,得益于線程技術(shù)的應(yīng)用在多核處理器上運(yùn)行時將顯示出卓越的性能可擴(kuò)充 性。此類軟件包括多媒體應(yīng)用(內(nèi)容創(chuàng)建、編輯,以及本地和數(shù)據(jù)流回放)、工程和其 他技術(shù)計算應(yīng)用以及諸如應(yīng)用服務(wù)器和數(shù)據(jù)庫等中間層與后層服務(wù)器應(yīng)用。多核技術(shù)能夠使服務(wù)器并行處理任務(wù),而在以前,這可能需要使用多個處理器,多核系 統(tǒng)更易于擴(kuò)充, 并且能夠在更纖巧的外形中融入更強(qiáng)大的處理性能

7、,這種外形所用的功 耗更低、計算功耗產(chǎn)生的熱量更少。多核技術(shù)是處理器發(fā)展的必然,近 20 年來,推動 微處理器性能不斷提高的因素主要有兩個: 半導(dǎo)體工藝技術(shù)的飛速進(jìn)步和體系結(jié)構(gòu)的不 斷發(fā)展。 半導(dǎo)體工藝技術(shù)的每一次進(jìn)步 都為微處理器體系結(jié)構(gòu)的研究提出了新的問題, 開辟了新的領(lǐng)域; 體系結(jié)構(gòu)的進(jìn)展又在半導(dǎo)體工藝技術(shù)發(fā)展的基礎(chǔ)上進(jìn)一步提高了微處 理器的性能。這兩個因素是相 互影響,相互促進(jìn)的。一般說來, 工藝和電路技術(shù)的發(fā) 展使得處理器性能提高約 20 倍,體系結(jié)構(gòu)的發(fā)展使得處理器性能提高約 4倍,編譯技 術(shù)的發(fā)展使得處理器性能提高約 1.4 倍。但是今天,這 種規(guī)律性的東西卻很難維持。 多核的出

8、現(xiàn)是技術(shù)發(fā)展和應(yīng)用需求的必然產(chǎn)物。這主要基于以下事實:晶體管時代即將到來根據(jù)摩爾定律,微處理器的速度以及單片集成度每18 個月就會翻一番。經(jīng)過多年的發(fā)展,目前通用微處理器的主頻已經(jīng)突破了4GHz,數(shù)據(jù)寬度也達(dá)到 64 位。在制造工藝方面也同樣以驚人的速度在發(fā)展, 0.13um 工藝的微處理器已經(jīng)批量生產(chǎn), 90nm工藝以下 的下一代 微處理器也已問世。照此下去,到 2010 年左右,芯片上集成的晶體管數(shù)目將 超過 10 億個。因此,體系結(jié)構(gòu)的研究又遇到新的問題:如何有效地利用數(shù)目眾多的 晶 體管?國際上針對這個問題的研究方興未艾。 多核通過在一個芯片上集成多個簡單的處 理器核充分利用這些晶體管

9、資源,發(fā)揮其最大的能效。全局連線延遲隨著 VLSI 工藝技術(shù)的發(fā)展,晶體管特征尺寸不斷縮小,使得晶體管門延遲不斷減少, 但互連線延遲卻不斷變大。 當(dāng)芯片的制造工藝達(dá)到 0.18 微米甚至更小 時, 線延遲已經(jīng) 超過門延遲, 成為限制電路性能提高的主要因素。 在這種情況下, 由于 CMP(單芯片多處 理器 )的分布式結(jié)構(gòu)中全局信號較少, 與集中式結(jié)構(gòu)的超 標(biāo)量處理器結(jié)構(gòu)相比, 在克服 線延遲影響方面更具優(yōu)勢。符合 Pollack 規(guī)則按照 Pollack 規(guī)則,我們知道處理器性能的提升與其復(fù)雜性的平方根成正比。 如果一 個處理器的硬件邏輯提高一倍, 至多能提高性能 40,而如果采用兩個簡單的處理

10、器構(gòu) 成一個相同硬件規(guī)模的雙核處理器, 則可以獲得 70 80的性能提升。 同時在面積上 也同比縮小。能耗不斷增長 隨著工藝技術(shù)的發(fā)展和芯片復(fù)雜性的增加,芯片的發(fā)熱現(xiàn)象日益突出。 多核處理器里單 個核的速度較慢,處理器消耗較少的能量,產(chǎn)生較少的熱量。同時,原來單 核處理器 里增加的晶體管可用于增加多核處理器的核。 在滿足性能要求的基礎(chǔ)上,多核處理器通 過關(guān)閉(或降頻)一些處理器等低功耗技術(shù),可以有效地降低能耗。設(shè)計成本的考慮隨著處理器結(jié)構(gòu)復(fù)雜性的不斷提高,和人力成本的不斷攀升,設(shè)計成本隨時間呈線性甚 至超線性的增長。多核處理器通過處理器 IP 等的復(fù)用,可以極大降低設(shè)計的成本。同 時模塊的驗證

11、成本也顯著下降。體系結(jié)構(gòu)發(fā)展的必然超標(biāo)量( Superscalar )結(jié)構(gòu)和超長指令字( VLIW)結(jié)構(gòu)在目前的高性能微處理器 中被廣泛采用。 但是它們的發(fā)展都遇到了難以逾越的障礙。 Superscalar 結(jié)構(gòu)使用多個 功能部件同時執(zhí)行多條指令,實現(xiàn)指令級的并行( Instruction-Level Parallelism , ILP )。但其控制邏輯復(fù)雜,實現(xiàn)困難,研究表明, Superscalar 結(jié)構(gòu)的 ILP 一般不超過 8。VLIW結(jié)構(gòu)使用多個相同 功能部件執(zhí)行一條超長的指令, 但也有兩大問題: 編譯技術(shù) 支持和二進(jìn)制兼容問題。未來的主流應(yīng)用需要處理器具備同時執(zhí)行更多條指令的能力,

12、 但是從單一線程中已 經(jīng)不太可能提取更 多的并行性,主要有以下兩個方面的原因:一是不斷增加的芯片面 積提高了生產(chǎn)成本;二是設(shè)計和驗證所花費(fèi)的時間變得更長。在目前的處理器結(jié)構(gòu)上, 更復(fù)雜化的 設(shè)計也只能得到有限的性能提高。對單一控制線程的依賴限制了多數(shù)應(yīng)用可提取的并行性, 而主流商業(yè)應(yīng)用, 如在線數(shù)據(jù) 庫事務(wù)處理 ( Online Database Transaction )與網(wǎng)絡(luò)服務(wù) ( 如 Web服務(wù)器 ) 等,一般都 具有較高的線程級并行性 (TLP, Thread Level Parallelism )。為此,研究人員提出了 兩種新型體系結(jié)構(gòu) : 單芯片多處理器 (CMP)與同時多線程處

13、理器 (Simultaneous Multithreading ,SMT),這兩種體系結(jié)構(gòu)可以充分利用這些應(yīng)用的指令級并行性和線程 級并行性,從而顯著提高了這些應(yīng)用的性能。2.6 多線程技術(shù)CPU生產(chǎn)商為了提高 CPU的性能,通常做法是提高 CPU的時鐘頻率和增加緩存容量。 不過目前 CPU的頻率越來越快, 如果再通過提升 CPU頻率和增加緩存的方法來提高性能, 往往會受到制造工藝上的限制以及成本過高的制約。盡管提高 CPU的時鐘頻率和增加緩存容量后的確可以改善性能, 但這樣的 CPU性能 提高在技術(shù)上 存在較大的難度。 實際上在應(yīng)用中基于很多原因, CPU的執(zhí)行單元都沒有 被充分使用。如果

14、CPU不能正常讀取數(shù)據(jù) (總線 /內(nèi)存的瓶頸) ,其執(zhí)行單元利用率會 明 顯下降。另外就是目前大多數(shù)執(zhí)行線程缺乏ILP( Instruction-LevelParallelism ,多種指令同時執(zhí)行) 支持。這些都造成了目前 CPU的性能沒有得到全部的發(fā)揮。 因此,Intel 則采用另一個思路去提高 CPU的性 能,讓 CPU可以同時執(zhí)行多重線程,就能夠讓 CPU 發(fā)揮更大效率,即所謂“超線程( Hyper-Threading ,簡稱“ HT”)”技術(shù)。超線程技 術(shù)就是利用特殊的硬件指令, 把兩個邏輯內(nèi)核模擬成兩個物理芯片,讓單個處理器都能 使用線程級并行計算,進(jìn)而兼容多線程操作系統(tǒng)和軟件,減

15、少了CPU的閑置時間,提高的 CPU的運(yùn)行效率。采用超線程即是可在同一時間里, 應(yīng)用程序可以使用芯片的不同部分。 雖然單線程 芯片每秒鐘能夠處理成千上萬條指令, 但是在任一時刻只能夠?qū)σ粭l指令進(jìn)行操作。而 超線程技術(shù)可以使芯片同時進(jìn)行多線程處理,使芯片性能得到提升。超線程技術(shù)是在一顆 CPU同時執(zhí)行多個程序而共同分享一顆 CPU內(nèi)的資源, 理論上 要像兩顆 CPU一樣在同一時間執(zhí)行兩個線程, P4處理器需要多加入一個 Logical CPU Pointer (邏輯處理單元)。因此新一代的 P4 HT 的 die 的面積比以往的 P4增大了 5%。而其余部分如 ALU(整數(shù)運(yùn)算單元)、 FPU(

16、浮點運(yùn)算單元)、 L2 Cache(二級緩存)則保持不變,這些部分是被分享的。雖然采用超線程技術(shù)能同時執(zhí)行兩個線程,但它并不像兩個真正的CPU那樣, 每各CPU都具有獨立的資源。當(dāng)兩個線程都同時需要某一個資源時,其中一個要暫時停止, 并讓出資源, 直到這些資源閑置后才能繼續(xù)。 因此超線程的性能并不等于兩顆 CPU的性 能。英特爾 P4 超線程有兩個運(yùn)行模式, Single Task Mode(單任務(wù)模式) 及 Multi Task Mode(多任務(wù)模式),當(dāng)程序不支持 Multi-Processing (多處理器作業(yè))時,系統(tǒng)會停 止其中一個邏輯 CPU的運(yùn)行, 把資源集中于單個邏輯 CPU中

17、,讓單線程程序不會因其中 一個邏輯 CPU閑置而減低性能, 但由于被停止運(yùn)行的邏輯 CPU還是會等待工作,占用一 定的資源,因此 Hyper- Threading CPU 運(yùn)行 Single Task Mode 程序模式時,有可能達(dá) 不到不帶超線程功能的 CPU性能,但性能差距不會太大。也就是說,當(dāng)運(yùn)行單線程運(yùn)用 軟件時,超線程技術(shù)甚至?xí)档拖到y(tǒng)性能, 尤其在多線程操作系統(tǒng)運(yùn)行單線程軟件時 容易出現(xiàn)此問題。需要注意的是,含有超線程技術(shù)的 CPU需要芯片組、軟件支持,才能比較理想的發(fā)揮該 項技術(shù)的優(yōu) 勢。目前支持超線程技術(shù)的芯片組包括如: 英特爾 i845GE、PE及矽統(tǒng) iSR658 RDRA

18、、M SiS645DX、 SiS651 可直接支持超線程;英特爾 i845E 、i850E 通過升級 BIOS后 可支持;威盛 P4X400、 P4X400A 可支持,但未獲得正式授權(quán)。操作系統(tǒng)如: Microsoft Windows XP、Microsoft Windows 2003 , Linux kernel 2.4.x 以后的版本也支持超線程 技術(shù)。三、 CMP與 SMT介紹 3.1 單芯片多處理器 (CMP)3.1.1 CMP單芯片多核心處理器介紹CMP是指在一個芯片上集成多個微處理器核心,從實質(zhì)上說,每個微處理器都是一 個相對簡單的單線程微處理器,而且這多個核心間聯(lián)系非常緊密,甚至

19、共享L1、L2 和L3 等。其核間通過高速總線連接在一起。CMP通??煞譃橥瑯?gòu) CMP和異構(gòu) CMP,其判別標(biāo)準(zhǔn)是根據(jù)。芯片上集成的多個微處 理器核心是否相同。 同構(gòu) CMP大多數(shù)由通用的處理器組成,多個處理器執(zhí)行相同或者類 似的任務(wù)。異構(gòu) CMP除含有通用處理器作為控制、通用計算之外,多集成DSP、 ASIC、媒體處理器、 VLIW處理器等針對特定的應(yīng)用提高計算的性能。 基于 X86 技術(shù)的多核處理 器多采用類似技術(shù),其中 AMD Opteron處理器在設(shè)計上與傳統(tǒng)的 RISC處理器設(shè)計較為 接近。 Intel 產(chǎn)品由于是從單路處理器發(fā)展而來,在多路產(chǎn)品中與上述結(jié)構(gòu)差別較大, 但在設(shè)計上也引

20、用了不少類似技術(shù)。CMP的結(jié)構(gòu)可根據(jù)微處理器在存儲層次上互連分為三類:共享一級Cache 的 CMP,共享二級 Cache 的 CMP以及共享主存的 CMP。通常, CMP采用共享二級 Cache 的 CMP結(jié) 構(gòu),即每個處理器核心擁有私有的一級 Cache,且所有處理器核心共享二級 Cache 。由于 CMP采用單線程微處理器作為處理器核心,因此,CMP在實際使用中體現(xiàn)出了很多優(yōu)點。首先, 微處理器廠商一般采用現(xiàn)有的成熟單核處理器作為處理器核心,從而可縮短設(shè)計和驗證周期,節(jié)省研發(fā)成本。其次, 控制邏輯簡單 , 擴(kuò)展性好 , 易于實現(xiàn)。再次,通過動態(tài)調(diào)節(jié)電壓 / 頻率、負(fù)載優(yōu)化分布等,可有效降

21、低 CMP功耗。最后, CMP采用共享 Cache或者內(nèi)存的方式,多線程的通信延遲較低。相比于 SMT, CMP的最大優(yōu)勢體現(xiàn)在模塊化設(shè)計的簡潔性。不光復(fù)制簡單設(shè)計非常 容易,指令調(diào)度也更加簡單,同時也不存在SMT中多個線程對共享資源的爭用,因此當(dāng)應(yīng)用的線程級并行性較高時, CMP性能一般要優(yōu)于 SMT。此外在設(shè)計上,更短的芯片連 線使 CMP比長導(dǎo)線集中式設(shè)計的 SMT更容易提高芯片的運(yùn)行頻率, 從而在一定程度上起 到性能優(yōu)化的效果。3.1.2. CMP的關(guān)鍵技術(shù)首先,體現(xiàn)在 Cache 設(shè)計。隨著半導(dǎo)體工藝的發(fā)展, CPU和主存儲器之間的速度差 距越來越大。 在 CMP中,多個處理器核心對

22、單一內(nèi)存空間的共享使得這一矛盾更加突出, 因此在設(shè)計中采用多級 Cache來緩解這一矛盾;此外, Cache 自身的體系結(jié)構(gòu)設(shè)計也直 接關(guān)系到系統(tǒng)整體性能。很多 CMP設(shè)計都采用了分布一級 Cache,共享二級 Cache 和三 級 Cache 的結(jié)構(gòu)。其次, 核間通信機(jī)制也很重要。 CMP處理器由多個 CPU核心組成,因此,每個 CPU 核間通信機(jī)制的優(yōu)劣直接關(guān)系到 CMP處理器的性能, 高效的通信機(jī)制是 CMP處理器高性 能的重要保障。目前比較主流的片上高效通信機(jī)制有兩種,一種基于總線共享的Cache結(jié)構(gòu), 以斯坦福大學(xué)的 Hydra 處理器為代表; 一種基于片上的互連結(jié)構(gòu),以麻省理工學(xué)院

23、的RAW處理器為代表??偩€共享 Cache 結(jié)構(gòu)是指每個 CPU內(nèi)核擁有共享的二級或三級 Cache,用于保存比 較常用的數(shù)據(jù), 并通過連接核心的總線進(jìn)行通信。 基于片上互連的結(jié)構(gòu)是指每個 CPU核 心具有獨立的處理單元和 Cache,各個 CPU核心通過交叉開關(guān)或片上網(wǎng)絡(luò)等方式連接在 一起。此外, 高性能系統(tǒng)總線接口設(shè)計、 低功耗設(shè)計以及編譯 / 運(yùn)行時優(yōu)化等因素也是 十分重要的。3.2. 同步多線程處理器 (SMT)3.2.1.SMT 同步多線程處理器介紹同步多線程技術(shù)( SMT)是一種體系結(jié)構(gòu)模型,其目的是在現(xiàn)有硬件條件下,通過提高 計算能力來提高處理器的性能。因此,同步多線程技術(shù)結(jié)合了

24、多重啟動處理器(超標(biāo)量和 VLIW)和多線程處理器的思想來增加并行度,進(jìn)而提高性能。多重啟動處理器可以在一個周期內(nèi)執(zhí)行多條(2,4甚至 8 條)指令,而多線程和多處理器( SMP和 CMP)結(jié)構(gòu)可以同時或者在很少的延遲內(nèi)執(zhí)行來自不同線程的指令。SMT結(jié)構(gòu)中,不僅在一周期內(nèi)啟動多條指令, 而且也能在同一周期內(nèi)啟動來自相互獨立的線程 (或上 下文)的指令。在理論上,這種改進(jìn)運(yùn)用了指令級并行性( ILP )和線程級并行性( TLP)技 術(shù)來提高執(zhí)行功能單元的效率。3.2.2. 同步多線程技術(shù)同步多線程技術(shù)試圖解決上面提到的兩種浪費(fèi)。 同步多線程技術(shù)通過兩種途徑來提 高處理器的總體性能。1) 同步多線

25、程技術(shù)允許處理器在一個周期內(nèi)執(zhí)行多個線程的指令而不需要切換上下TLP)和指令級并行性文。因為,我們可以在這種模型中,同時利用線程級并行性((ILP )。我們可以在任何一個周期內(nèi), 更有效地利用處理器的資源從而減少水平浪 費(fèi)。2) 理論上,同步多線程技術(shù)不會由于不同的處于激活狀態(tài)的線程的結(jié)合而阻止指令的 啟動。這意味著如果由于產(chǎn)生了高延遲的操作或資源沖突,而使得一個線程掛起, 僅有一個線程處于激活狀態(tài),那該線程就可以使用所有可用的發(fā)射槽。由于在這個 線程中的指令沒有被阻塞,結(jié)果垂直浪費(fèi)就消除了。一個基于 SMT技術(shù)的處理器,每個周期都從所有線程中挑選指令,啟動并執(zhí)行更多 的指令,這樣能夠更好的利

26、用處理器資源。而多重啟動(超標(biāo)量和VLIW)處理器能夠在每個周期內(nèi)執(zhí)行多條指令,當(dāng)單個時鐘周期內(nèi)指令級并行性很低時,這種處理器的效率 是很低的。多線程和多處理器結(jié)構(gòu)減少了由于長延遲操作和資源沖突而產(chǎn)生的限制,但 是也增加了開銷 (經(jīng)濟(jì)上的和規(guī)模上的開銷) ,還未必能夠十分有效的使用處理器資源。SMT可以最有效的利用多重啟動和多線程結(jié)構(gòu),而不必實質(zhì)性的增加開銷和晶體管 數(shù)量。 DEC/Compa的q Alpha EV-8 處理器就是利用 SMT技術(shù)的典型機(jī)器。 EV-8 的設(shè)計者之 一 Joel Emer 說“它看上去像 4個芯片,用起來像兩個,而實際上只有一個,但它相比 于一個非多線程的只增加

27、了 5的晶體管?!闭{(diào)度( Scheduling )超標(biāo)量機(jī)上的動態(tài)調(diào)度對于 SMT機(jī)的調(diào)度同樣適用。 因此,寄存器重命名 ( register renaming )仍可以在 SMT機(jī)上使用。為了防止線程自身與線程之間發(fā)生寄存器名字沖突, 線程相關(guān)的結(jié)構(gòu)寄存器必須與硬件寄存器相對應(yīng)。取指( Instruction Fetching)由于SMT處理器上的指令可能來自不同的線程,大大增加了線程級并行性,以提高 處理器性能。有鑒于此(在任何一個周期內(nèi),有更多的指令可能被啟動),取指單元必 須能夠有效的填滿指令緩沖區(qū)以向處理器提供足夠的指令, 而且還必須具備動態(tài)調(diào)度的 能力。此外,由于可能在同一時刻存在

28、多個線程同時運(yùn)行,取指單元還必須知道哪個線 程需要指令。當(dāng)取指單元無法在每個周期內(nèi)為所有線程取得指令時,就必須在線程間作 出選擇,以確定給哪個線程優(yōu)先提供指令。這里將討論兩種取指模型。一個就是單循環(huán) 法( round-robin ),每次為一個線程取指,循環(huán)于所有激活的線程之間。另一個就是 引用計數(shù)法( Icount ),使用一個算法根據(jù)線程移動的速度,來確定誰的優(yōu)先級最高。 最后,如果多線程要支持指令的同步請求,就可能需要增加額外的端口。寄存器文件和程序計數(shù)器( Register File and Program Counter)為了保持多線程的上下文,處理器必須將狀態(tài)保存下來。這樣,SMT

29、處理器需要很多的寄存器文件。每個線程得到它自己的結(jié)構(gòu)寄存器。利用寄存器重命名,我們可以假 設(shè)所需的硬件寄存器數(shù)量等于線程所需的結(jié)構(gòu)寄存器乘以線程數(shù)再加上支持重命名的 寄存器。一個更大的硬件寄存器文件,通常就增加了處理器的復(fù)雜性,有時候也可能增 加訪問時間。(結(jié)構(gòu)寄存器 )* (線程數(shù))重命名寄存器除了復(fù)制和增加的寄存器文件所需的空間之外,SMT處理器還需要為每個線程增加分離的程序計數(shù)器。管道( Pipeline )指令管道不一定要進(jìn)行實質(zhì)性的改變來支持SMT。但是,由于寄存器文件的增大,從寄存器重命名策略的角度看,可能需要管道為寄存器的讀寫增加額外的步驟。分支預(yù)測( Branch Predic

30、tion )分支預(yù)測和目標(biāo)緩存需要一定的改進(jìn)。 由于同時執(zhí)行的上下文, 其地址空間可能很 大,分成的塊數(shù)也越多。至少在一種我所碰到的設(shè)計中,需要為分支目標(biāo)緩存增加一個 線程標(biāo)識符。另一種改進(jìn)的方法是為每個線程復(fù)制整個結(jié)構(gòu),這個方法對于一個支持比 較少的線程的處理器還是可行的,但是對于一個支持很多線程的處理器就太昂貴了。Cache處理器的 cache是另一個可能發(fā)生資源競爭的部件。超線程技術(shù)不僅要求能夠同時 訪問數(shù)據(jù)和指令,對于帶寬的需求也增加了。這樣,cache 越小,就越容易發(fā)生沖突。雖然在這里我們討論了這個問題, 但是這個問題常常由于在其他方面效率的增加而被忽 略了。在一些情況下, L1

31、cache 失效明顯增加了(在并行工作負(fù)載下達(dá)到 68),但是 L2 cache 能夠處理大部分的請求,所以總體的性能受 L1 cache 失效的影響不到 10。四、多核技術(shù):橫向擴(kuò)展與縱向擴(kuò)展比較4.1AMD和 Intel 概念比較目前流行的雙核概念,主要是指基于 X86 開放架構(gòu)的雙核技術(shù)。在這方面,起領(lǐng)導(dǎo) 地位的廠商主要有 AMD和 Intel 兩家。其中,兩家的思路又有不同。AMD 將兩個內(nèi)核做在一個 Die (晶元)上,通過直連架構(gòu)連接起來,集成度更高。 AMD從一開始設(shè)計時就考慮到了對多核心的支持。所有組件都直接連接到CPU,消除系統(tǒng)架構(gòu)方面的挑戰(zhàn)和瓶頸。兩個處理器核心直接連接到同

32、一個內(nèi)核上,核心 之間以芯片速度通信,進(jìn)一步降低了處理器之間的延遲。Intel 則是將放在不同 Die (晶元)上的兩個內(nèi)核封裝在一起,采用多個核心共 享前端總線的方式 , 因此有人將 Intel 的方案稱為“雙芯”。專家認(rèn)為, AMD的架構(gòu) 對于更容易實現(xiàn)雙核以至多核, Intel 的架構(gòu)會遇到多個內(nèi)核爭用總線資源的瓶頸 問題。從用戶端的角度來看, AMD的方案能夠使雙核 CPU的管腳、功耗等指標(biāo)跟單核 CPU 保持一致,從單核升級到雙核,不需要更換電源、芯片組、散熱系統(tǒng)和主板,只需要刷 新 BIOS 軟件即可, 這對于主板廠商、 計算機(jī)廠商和最終用戶的投資保護(hù)是非常有利的。 客戶可以利用其

33、現(xiàn)有基礎(chǔ)設(shè)施,通過 BIOS 更改移植到基于雙核心的系統(tǒng)。4.2 Intel 和 AMD的雙核技術(shù)比較4.2.1 無法克服的功耗和發(fā)熱量現(xiàn)在的芯片都是在單晶硅大圓片上制成的,大面積的圓片本身也難免存在一些缺陷,生 產(chǎn)中的流程有時候也會給硅晶體帶來缺陷。另外雖然工廠的清潔程度非常之高,但在生 產(chǎn)過程中還是免不了帶入一些雜質(zhì),互連層在制造中也會引入自己的缺陷形式。這樣大 規(guī)模的芯片很難保證全無任何缺陷?,F(xiàn)在半導(dǎo)體進(jìn)入 90 納米以下的工藝,缺陷和雜質(zhì) 帶來的影響就更為普遍, 晶體管的尺寸已經(jīng)和某些缺陷或雜質(zhì)的尺寸在一個量級, 甚至晶體管尺寸更小。一般來說,非致命的缺陷會造成電路性能下降,為彌補(bǔ)缺陷

34、帶來的損 失, 就需要給電路更高的電壓和更大的電流, 許多缺陷在降低晶體管性能的同時還會增 加晶體管的功耗, 以前 CMOS數(shù)字電路的主要功耗是工作時的動態(tài)功耗,但到了90nm工藝以后, 情況發(fā)生了很大變化, 許多原來基本可以忽略不計的功耗因素現(xiàn)在都占據(jù)了較 大的比重,例如電路互連損耗,泄漏損耗。其中,泄漏損耗的影響急劇增加。這就是為 什么采用 0.09 微米工藝之后, 各種處理器的發(fā)熱量和功耗還是一路呈攀升趨勢的原因, 高頻的 Prescott 處理器功耗將近 100W,要知道,一個可以把焊錫快速融化的電烙鐵也 不過 50W左右,因此,高功耗和嚇人的發(fā)熱量成為CPU繼續(xù)向高頻挺進(jìn)的一大障礙,

35、當(dāng)時就有很多人預(yù)言, 4GHz的處理器誕生之后,大家將可以通過 CPU散熱片來煮雞蛋。4.2.2 高頻之外的解決方案既然無法通過繼續(xù)提升頻率來實現(xiàn)更高的頻率, 那么用戶對產(chǎn)品性能提升的需要應(yīng) 該如何得到滿足?(1)第一種做法是使用 64位技術(shù),為什么 64位運(yùn)算會比 32 位運(yùn)算性能強(qiáng)大,這 個比較好理解,例如你使用 32位的 CPU,要向外輸出一個 64 位的數(shù)據(jù),需要消耗兩個 時脈,但是如果你使用 64 位的 CPU,只要一個時脈就完成了。(2)另外一種做法就是使用對稱多處理技術(shù),其基本理論就是用兩個處理器去完 成一個處理器做的事, 看上去就跟磁盤陣列技術(shù)一樣, RAID 0 就是使用兩塊

36、硬盤來同時 存取一個文件,各存取一半,因此花費(fèi)的時間減半,假如使用 4 塊硬盤,就是每塊各存 取 1/4 ,所需時間自然更短; CPU的對稱多處理技術(shù)的工作原理也是這樣的。4.2.3 雙核的優(yōu)勢首先,雙核技術(shù)的引入是提高處理器性能的行之有效的方法。 由于生產(chǎn)技術(shù)的限制, 傳統(tǒng)通過提升工作頻率來提升處理器性能的作法目前面臨嚴(yán)重的阻礙, 高頻 CPU的耗電 量和發(fā)熱量越來越, 已經(jīng)給整機(jī)散熱帶來十分嚴(yán)峻的考驗。雙核技術(shù)可以很好的避免這 一點。增加一個內(nèi)核,處理器每個時鐘周期內(nèi)可執(zhí)行的單元數(shù)將增加一倍。其次,引入雙核架構(gòu)也將可以全面增加處理器的功能,這是一個十分重要的影響因 素。雙處理器架構(gòu)的引入和

37、微軟下一代 Longhorn(Vista) 操作系統(tǒng)將在很大程度上促進(jìn) 虛擬技術(shù)的發(fā)展。虛擬化技術(shù)在 2006-2007 年將成為計算機(jī)平臺的新亮點。無論是 Intel 的 VT(Virtualization Technology) 技術(shù)還是 AMDP acifica 技術(shù),都可以讓一臺物理計算 機(jī)虛擬出若干個虛擬的系統(tǒng), 這些虛擬系統(tǒng)能使用同樣的 PC資源獨立工作。換句話說, 這些技術(shù)允許用戶在他們的 PC上同時運(yùn)行超過一個操作系統(tǒng),以便每個操作系統(tǒng)解決 特定的運(yùn)算任務(wù)。比如,一個虛擬系統(tǒng)能夠掃描病毒,另外的虛擬系統(tǒng)則可以執(zhí)行應(yīng)用 程序、文字處理或者玩游戲。4.2.4 、 Intel 和 A

38、MD的雙核技術(shù)AMD雙核技術(shù)AMD 的雙核技術(shù)它并不只是簡單地將兩個 Opteron 處理器核心集成在一個硅晶片(Die )上,與單核 Opteron 相比,它增添了“系統(tǒng)請求接口”( System Request Interface , SRI)和“交叉開關(guān)”( Crossbar Switch )。它們的作用據(jù) AMD方面介紹應(yīng)是對兩個核 心的任務(wù)進(jìn)行仲裁、及實現(xiàn)核與核之間的通信。它們與集成的內(nèi)存控制器和HyperTransport 總線配合, 可讓每個核心都有獨享的 I/O 帶寬、 避免資源爭搶, 實現(xiàn)更 小的內(nèi)存延遲,并提供了更大的擴(kuò)展空間,讓雙核能輕易擴(kuò)展成為多核。Intel 雙核技術(shù)

39、從集成的角度來看, 通常把多處理器計算機(jī)系統(tǒng)分為 “緊耦合”和“松耦合” 兩種形態(tài)。 例如通過將多臺計算機(jī)組成集群( Cluster )的方式來增加計算機(jī)系統(tǒng)處理器數(shù)量以提 高計算性能的做法就是一種相對比較松的耦合, 與它相比, 在一臺計算機(jī)上通過 SM(P對 稱多處理器)架構(gòu)來增加處理器數(shù)量的方式就是一種緊耦合,與SMP相比,在一個處理器上集成多個處理器核心則是更緊密的耦合, 把這種在單個芯片或基板上集成多個處理 器核心的架構(gòu)稱之為 CMP(單芯片多處理器)架構(gòu)。4.3 物理核心與邏輯核心4.3.1 真?zhèn)坞p核心之爭有一段時間, AMD自稱自家的 Athlon 64 X2 是“真雙核”,而把

40、Intel 的雙核心處 理器稱為“偽雙核” 或“雙芯”。其實,這樣的說法是不確切的,只是 AMD的一家之言, 有誤導(dǎo)消費(fèi)者之嫌。在前面對 Intel 和 AMD兩家的雙核心處理器的簡介中可以看出, 二者的雙核心處理 器其實非常相似:都是利用現(xiàn)有的處理器核心,這樣在技術(shù)上而言最簡單;每個核心都 具有獨立的二級緩存, 都需要通過仲裁器來保證緩存數(shù)據(jù)的一致性; 都共享前端總線 ( 或 Hyper Transport) 。二者唯一的區(qū)別就是 Intel 雙核心處理器的仲裁器位于北橋芯片, 而 AMD雙核心處理器的仲裁器則位于處理器內(nèi)部,相對了來說,AMD雙核心處理器由于緩存延遲要比 Intel 雙核心

41、處理器低, 其架構(gòu)要比 Intel 的合理一些。但這只是仲裁方 式的不同,實際上都具有兩個物理內(nèi)核,并不存在所謂的真?zhèn)坞p核心。雙核心處理器最理想的架構(gòu)當(dāng)然是兩個核心共享二級緩存( 多核心處理器仍然是這樣) ,不過這顯然需要重新設(shè)計處理器核心,而且其技術(shù)難度要比現(xiàn)在所采用的簡單的 兩個物理核心疊加要復(fù)雜得多, 不過無論是 Intel 還是 AMD以后都會向這方面發(fā)展。現(xiàn) 在無論是 AMD還是 Intel 的雙核心處理器都只是簡單地將兩個物理內(nèi)核 “疊加”在一起, 每個核心各有獨立的二級緩存,從這個意義上來說,如果硬要區(qū)分什么“真?zhèn)坞p核心” 的話,當(dāng)然也可以毫不客氣的認(rèn)為它們都不是真正的嚴(yán)格意義上

42、的雙核心處理器。4.3.2 雙核心技術(shù)與超線程技術(shù)的區(qū)別超線程技術(shù)已經(jīng)不是什么新鮮事物了,但普通用戶可能與雙核心技術(shù)區(qū)分不開。例 如開啟了超線程技術(shù)的 Pentium 4 530 與 Pentium D 530 在操作系統(tǒng)中都同樣被識別為 兩顆處理器,它們究竟是不是一樣的呢?這個問題確實具有迷惑性。其實, 可以簡單地把雙核心技術(shù)理解為兩個 “物理” 處理器,是一種 “硬”的方式; 而超線程技術(shù)只是兩個“邏輯”處理器,是一種“軟”的方式。從原理上來說,超線程技術(shù)屬于 Intel 版本的多線程技術(shù)。這種技術(shù)可以讓單 CPU 擁有處理多線程的能力, 而物理上只使用一個處理器。超線程技術(shù)為每個物理處理

43、器設(shè) 置了兩個入口 AS(Architecture State ,架構(gòu)狀態(tài) ) 接口,從而使操作系統(tǒng)等軟件將其 識別為兩個邏輯處理器。 這兩個邏輯處理器像傳統(tǒng)處理器一樣, 都有獨立的 IA-32 架構(gòu), 它們可以分別進(jìn)入暫停、中斷狀態(tài),或直接執(zhí)行特殊線程,并且每個邏輯處理器都擁有 APIC(Advanced Programmable Interrupt Controller ,高級可編程中斷控制器 ) 。雖然 支持超線程的 Pentium 4 能同時執(zhí)行兩個線程,但不同于傳統(tǒng)的雙處理器平臺或雙內(nèi)核 處理器,超線程中的兩個邏輯處理器并沒有獨立的執(zhí)行單元、整數(shù)單元、寄存器甚至緩 存等等資源。它們在

44、運(yùn)行過程中仍需要共用執(zhí)行單元、緩存和系統(tǒng)總線接口。在執(zhí)行多 線程時兩個邏輯處理器均是交替工作, 如果兩個線程都同時需要某一個資源時,其中一 個要暫停并要讓出資源,要待那些資源閑置時才能繼續(xù)。因此,超線程技術(shù)所帶來的性 能提升遠(yuǎn)不能等同于兩個相同時鐘頻率處理器帶來的性能提升。 可以說 Intel 的超線程 技術(shù)僅可以看做是對單個處理器運(yùn)算資源的優(yōu)化利用。而雙核心技術(shù)則是通過“硬”的物理核心實現(xiàn)多線程工作:每個核心擁有獨立的指 令集、執(zhí)行單元,與超線程中所采用的模擬共享機(jī)制完全不一樣。在操作系統(tǒng)看來,它 是實實在在的雙處理器, 可以同時執(zhí)行多項任務(wù), 能讓處理器資源真正實現(xiàn)并行處理模 式,其效率和性能提升要比超線程技術(shù)要高得多,不可同日而語。4.3.3 雙核心處理器的適用范圍目前, Windows XP專業(yè)版等操作系統(tǒng)支持雙物理核心和四個邏輯核心,但這并不意味著所有軟件對此都有優(yōu)化。 事實上大量的測試已經(jīng)證明,無論是 Intel 還是 AMD的雙 核心處理器, 相對于其各自的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論