按共享Cache的層次可以把單芯片多處理器的結(jié)構(gòu)主要分為三類:共享一級(jí)Cache、共享二級(jí)Cache、共享主存。這種分類方式側(cè)重于存儲(chǔ)層次的組織和微處理器在哪一層次上相
在共享一級(jí)Cache的單芯片多處理器結(jié)構(gòu)中,一級(jí)Cache由多個(gè)處理器所共享,也就是微處理器在一級(jí)Cache這個(gè)層次上相連接。在共享二級(jí)Cache的結(jié)構(gòu)中,每個(gè)微處理器擁有獨(dú)立的一級(jí)Cache,二級(jí)Cache由多個(gè)微處理器所共享,即微處理器在二級(jí)Cache這個(gè)層次上相連。在共享主存的結(jié)構(gòu)中,每個(gè)微處理器既擁有獨(dú)立的一級(jí)Cache,還擁有獨(dú)立的二級(jí)Cache,或者存儲(chǔ)系統(tǒng)中不設(shè)Cache,主存由多個(gè)微處理器所共享,即微處理器在主存這個(gè)層次上相連接。共享主存結(jié)構(gòu)與一般基于總線共享主存的多處理機(jī)的結(jié)構(gòu)相類似。
應(yīng)用程序的通信量可分為:通信量大的、通信量中等的、通信量小的三種。對(duì)于通信量大的程序,共享一級(jí)Cache結(jié)構(gòu)的性能要明顯優(yōu)于其他兩種結(jié)構(gòu)。對(duì)于通信量中等的程序,共享一級(jí)Cache結(jié)構(gòu)的性能要比其他結(jié)構(gòu)好10%。對(duì)于通信量較小的程序,共享一級(jí)Cache結(jié)構(gòu)的性能與其他兩種結(jié)構(gòu)的差不多。但是共享一級(jí)Cache結(jié)構(gòu)的設(shè)計(jì)較為復(fù)雜,處理器之間的耦合度比較高,在處理器數(shù)目增加時(shí)可擴(kuò)展性較差。
如果按照單芯片多處理器上的處理器是否相同,可以分為同構(gòu)CMP和異構(gòu)CMP,國(guó)外推出的一個(gè)多核CPU??Hydra是同構(gòu)CMP,同構(gòu)CMP大多數(shù)由通用的處理器組成,多個(gè)處理器執(zhí)行相同或者類似的任務(wù)。異構(gòu)CMP除含有通用處理器作為控制、通用計(jì)算之外,多集成DSP、ASIC、媒體處理器、VLIW處理器等針對(duì)特定的應(yīng)用提高計(jì)算的性能。Cell處理器就是異構(gòu)CMP的一個(gè)例子。
多核處理器主要具有以下幾個(gè)顯著的優(yōu)點(diǎn):
● 控制邏輯簡(jiǎn)單:相對(duì)超標(biāo)量微處理器結(jié)構(gòu)和超長(zhǎng)指令字結(jié)構(gòu)而言,單芯片多處理器結(jié)構(gòu)的控制邏輯復(fù)雜性要明顯低很多。相應(yīng)的單芯片多處理器的硬件實(shí)現(xiàn)必然要簡(jiǎn)單得多。
● 高主頻:由于單芯片多處理器結(jié)構(gòu)的控制邏輯相對(duì)簡(jiǎn)單,包含極少的全局信號(hào),因此線延遲對(duì)其影響比較小,因此,在同等工藝條件下,單芯片多處理器的硬件實(shí)現(xiàn)要獲得比超標(biāo)量微處理器和超長(zhǎng)指令字微處理器更高的工作頻率。
● 低通信延遲:由于多個(gè)處理器集成在一塊芯片上,且采用共享Cache或者內(nèi)存的方式,多線程的通信延遲會(huì)明顯降低,這樣也對(duì)存儲(chǔ)系統(tǒng)提出了更高的要求。
● 低功耗:通過動(dòng)態(tài)調(diào)節(jié)電壓/頻率、負(fù)載優(yōu)化分布等,可有效降低CMP功耗。
● 設(shè)計(jì)和驗(yàn)證周期短:微處理器廠商一般采用現(xiàn)有的成熟單核處理器作為處理器核心,從而可縮短設(shè)計(jì)和驗(yàn)證周期,節(jié)省研發(fā)成本。
多核處理器的關(guān)鍵技術(shù)
簡(jiǎn)單地說,多核處理器研究方向主要集中在下面幾個(gè)方向上:
● CMP的體系結(jié)構(gòu):針對(duì)單芯片多處理器的幾個(gè)顯著優(yōu)點(diǎn),如控制邏輯簡(jiǎn)單、高主頻,低通信延遲等,如何設(shè)計(jì)
● 芯片面積的分配模型:建立一個(gè)芯片面積的分配模型,將處理器的數(shù)目和Cache的容量作為可調(diào)的參數(shù),進(jìn)行性能模擬,以獲取比較好的解決方案。往往相同的芯片面積,不同的分配方案之間存在很大的性能差異,同時(shí)功耗也會(huì)有很大差異。
● 設(shè)計(jì)空間的探索:其實(shí)異構(gòu)將是多核發(fā)展的重要方向。根據(jù)應(yīng)用的需求,研究多核的構(gòu)成粒度、數(shù)量等等問題。
● Cache的結(jié)構(gòu):在計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展史上,Cache一直扮演著非常重要的角色。共享Cache或獨(dú)有Cache孰優(yōu)孰劣,需不需要在一塊芯片上建立多級(jí)Cache,這些都是很值得探討的問題。單芯片多處理器結(jié)構(gòu)中,如果存在多個(gè)Cache必然涉及到Cache一致性的問題。傳統(tǒng)的Cache一致協(xié)議在單芯片多處理器中不一定高效,因此,在傳統(tǒng)經(jīng)典協(xié)議的基礎(chǔ)上,能不能設(shè)計(jì)出針對(duì)單芯片多處理器新的Cache一致性協(xié)議,并保證協(xié)議的正確性也是一個(gè)重要的研究方向。
● 高速通信機(jī)制:高速通信機(jī)制對(duì)于單芯片多處理器性能的影響不言而喻。高速通信機(jī)制用來支持多個(gè)進(jìn)程或線程在芯片上運(yùn)行,支持它們之間的數(shù)據(jù)通信。另外,高速通信機(jī)制還支持多個(gè)處理器間的同步。需要注意的是,在這種通信機(jī)制中可能存在沖突問題,需要仲裁機(jī)制來解決這個(gè)問題。目前對(duì)于片上互連網(wǎng)絡(luò)的研究主要就是為了解決這個(gè)問題。
● 編譯技術(shù)的支持:編譯技術(shù)如何利用單芯片多處理器結(jié)構(gòu)的并行計(jì)算能力和高度通信機(jī)制,也就是如何充分發(fā)揮單芯片多處理器的結(jié)構(gòu)優(yōu)勢(shì),這是一個(gè)比較關(guān)鍵的問題。因此,編譯技術(shù)的好壞對(duì)一個(gè)程序的執(zhí)行速度影響是非常大的。通過編譯技術(shù)的支持來發(fā)揮單芯片多處理器的高性能是非常重要的途徑,其關(guān)鍵是發(fā)掘程序中所蘊(yùn)含的并行性。
● 任務(wù)調(diào)度:任務(wù)調(diào)度的本質(zhì)是一個(gè)資源分配問題,也就是說,多個(gè)任務(wù)如何分配到處理器資源上去,以盡量提高資源的利用率,實(shí)現(xiàn)多個(gè)處理器之間的動(dòng)態(tài)負(fù)載平衡。還有一些相關(guān)問題也值得進(jìn)一步研究,包括單芯片多處理器結(jié)構(gòu)在什么樣的負(fù)載下有比較好的性能,不同的單芯片多處理器結(jié)構(gòu)在不同的負(fù)載下性能又如何等。
總的來說,多核處理器的硬件結(jié)構(gòu)不是十分復(fù)雜,多核的研究焦點(diǎn)還在于多核的軟件支持和多核處理器的帶寬問題。
隨著構(gòu)成多核處理器核心數(shù)目的不斷擴(kuò)大,為了多核計(jì)算機(jī)系統(tǒng)性能的提高和可靠性的增長(zhǎng)需求,研究開發(fā)新型軟件編程模型的工作顯得格外重要。在目前情況下,多核應(yīng)用開發(fā)工具和平臺(tái)的研發(fā)尤為迫切。這主要包括:智能的優(yōu)化編譯器、程序調(diào)試工具、性能監(jiān)測(cè)和調(diào)協(xié)工具、并行編程環(huán)境、能耗調(diào)度問題等等。
多核處理器的未來發(fā)展
應(yīng)用需求的不斷提高是計(jì)算機(jī)發(fā)展的根本動(dòng)力。換句話說,即使計(jì)算機(jī)不斷地快速發(fā)展和進(jìn)步,它也永遠(yuǎn)滿足不了無休止的應(yīng)用的需求。如目前的服務(wù)器應(yīng)用,要求高的吞吐率和在多處理器上的多線程應(yīng)用;Internet的應(yīng)用、P2P和普適計(jì)算的應(yīng)用都促使了計(jì)算機(jī)性能的不斷提升?!耙匀藶楸尽钡挠?jì)算需求,協(xié)同的工作模式是現(xiàn)代應(yīng)用的顯著特點(diǎn)。對(duì)于單處理器性能而言,過去是每1.5年提高2倍。而目前是每5年提高2倍。從計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)角度上看,多核處理器的出現(xiàn)也是大勢(shì)所趨!而多核技術(shù)的不斷進(jìn)步也促進(jìn)了個(gè)人電腦、高性能計(jì)算機(jī)和服務(wù)器的不斷發(fā)展進(jìn)步。
從計(jì)算機(jī)技術(shù)發(fā)展來看,在20世紀(jì)90年代初期,大型主機(jī)、小型計(jì)算機(jī)和工組站技術(shù)不斷應(yīng)用于個(gè)人計(jì)算機(jī)上,如超標(biāo)量技術(shù)、繪圖技術(shù)等;同時(shí)在消費(fèi)類電子上也采用了RISC等技術(shù)。到20世紀(jì)90年代后期,隨著個(gè)人計(jì)算機(jī)的不斷發(fā)展和普及,PC技術(shù)(如IO技術(shù)、用戶接口技術(shù)、存儲(chǔ)系統(tǒng)與設(shè)備)在不斷應(yīng)用于消費(fèi)類電子上的同時(shí),也促進(jìn)了高性能計(jì)算機(jī)、服務(wù)器系統(tǒng)的不斷進(jìn)步,如集群計(jì)算技術(shù)、IO技術(shù)、RAID技術(shù)等在這些系統(tǒng)中的普遍應(yīng)用。而如今,隨著音視頻技術(shù)從模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)變,以人為本的應(yīng)用理念和協(xié)同交互的實(shí)時(shí)需求等消費(fèi)類電子應(yīng)用需求對(duì)處理器性能提出了更高的要求。如IBM的Cell處理器,這個(gè)代表當(dāng)今計(jì)算機(jī)體系結(jié)構(gòu)最高水平的處理器,就是為了滿足Sony Playstation 游戲機(jī)等消費(fèi)類電子應(yīng)用而誕生的。其異構(gòu)的多核架構(gòu)、實(shí)時(shí)處理技術(shù)、高速并行數(shù)據(jù)傳輸技術(shù)、并行編譯技術(shù)必將在個(gè)人計(jì)算機(jī)和高性能計(jì)算機(jī)、服務(wù)器上得以應(yīng)用,進(jìn)而實(shí)現(xiàn)以消費(fèi)類電子為主導(dǎo)的處理器技術(shù)的不斷進(jìn)步!
不難看出,多核處理器是處理器發(fā)展的必然趨勢(shì)。無論是移動(dòng)/嵌入式應(yīng)用、桌面應(yīng)用還是服務(wù)器應(yīng)用,都將采用多核的架構(gòu)。 正如著名計(jì)算機(jī)體系結(jié)構(gòu)專家、美國(guó)U.C.Berkeley 大學(xué)David A. Partterson教授指出的那樣,未來的計(jì)算機(jī)系統(tǒng)硬件和軟件功能特點(diǎn)將會(huì)發(fā)生180度轉(zhuǎn)彎:計(jì)算機(jī)硬件將是靈活的、可重構(gòu)的,而軟件則是難于改變或者說相對(duì)固定的,這也是由于計(jì)算機(jī)軟硬件技術(shù)的發(fā)展和成本等因素造成的。未來的多核處理器芯片將包含很多通用的處理器核,每個(gè)處理器核運(yùn)行2~4個(gè)線程。同時(shí)芯片中包含成千個(gè)異構(gòu)可編程加速器,用于媒體加速等特殊處理。同時(shí)也滿足可重構(gòu)的要求。
從目前來看,一些桌面應(yīng)用尚不支持多線程、價(jià)格相對(duì)偏高和應(yīng)用開發(fā)工具的不成熟,還在一定程度上限制多核處理器的推廣。隨著應(yīng)用需求的擴(kuò)大和技術(shù)的不斷進(jìn)步,多核必將展示出其強(qiáng)大的性能優(yōu)勢(shì)。
鏈接:塔式、機(jī)架式和刀片式服務(wù)器
人們經(jīng)常按塔式、機(jī)架式和刀片式這三種結(jié)構(gòu)來劃分服務(wù)器,服務(wù)器的外形為什么會(huì)有這樣的劃分呢?主要原因就是具體的應(yīng)用環(huán)境不同,塔式服務(wù)器長(zhǎng)得跟我們平時(shí)用的臺(tái)式機(jī)一樣,占用空間比較大,一般是一些小型企業(yè)自己使用自己維護(hù);而機(jī)架式服務(wù)器長(zhǎng)得就像臥著的臺(tái)式機(jī),可以一臺(tái)一臺(tái)地放到固定機(jī)架上,因此而得名,它可以拿到專業(yè)的服務(wù)器托管商那里進(jìn)行托管,這樣每年只需支付一定的托管費(fèi),就免去了自己管理服務(wù)器的諸多不便;而刀片服務(wù)器是近幾年才比較流行的一種服務(wù)器架構(gòu),它非常薄,可以一片一片地疊放在機(jī)柜上,通過群集技術(shù)進(jìn)行協(xié)同運(yùn)算,能夠處理大量的任務(wù),特別適合分布式服務(wù),如作為Web服務(wù)器。