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