基于CC—NUMA的多處理器系統(tǒng)研究
對于多處理器系統(tǒng),比較流行的有3種模式,對稱多處理(Symmetric Multiprocessing,SMP)模式、非均勻存儲訪問(Non Uniform Memory Access,NUMA)模式、大規(guī)模并行處理(Massively Parallel Processing,MPP)模式。SMP模式即將2個或2個以上的同樣的處理器連接到一個共享的主存上。在SMP系統(tǒng)中,所有的處理器可以同時訪問同一個物理存儲器,即運行同一個操作系統(tǒng),因此也被稱為均勻性存儲訪問系統(tǒng)。這種結構比較簡單,但是由于其是共享存儲器,容易在訪存時產(chǎn)生系統(tǒng)瓶頸,可擴展性也比較差。MPP是分布式存儲器模式,可擴展性好,但是需要并行編程和并行編譯,在軟件系統(tǒng)構建上比較復雜,使用不便。NUMA架構將若干個單元通過專門的互聯(lián)設備聯(lián)結在一起組成分布式和共享內(nèi)存空間。每一個處理器可以訪問自己的存儲器,也可以訪問其他處理器或者共享的存儲器,所有訪存有遠近、時延長短之分,稱為非均勻存儲訪問。在某個處理器訪問空間上比較遠的存儲器時,會有很大的時延,為了緩解這個問題,通過高速緩存一致性使得處理器訪問存儲器的幾率大大降低,在某種程度上提高了系統(tǒng)效率,這種架構稱為CC—NUMA即一致性緩存非均勻存儲訪問模式。這種架構繼承了SMP和MPP系統(tǒng)的一些優(yōu)點,在處理器個數(shù),內(nèi)存大小、I/O連接能力和帶寬上有很大的伸縮性,又保持了SMP系統(tǒng)單一操作系統(tǒng)、簡單的應用程序編程模式和易于管理的優(yōu)點。
1 CC—NUMA基本架構
CC—NUMA架構的系統(tǒng)最出名的莫過于SGI公司的ORIGIN系列,SGI公司很好的發(fā)展和擴展了CC—NUMA技術,其基本架構被廣泛應用。圖1是其ORIGIN2000的基本原理圖,每一個節(jié)點擁有2個處理器,2個二級緩存,主存,用于互聯(lián)的HUB芯片,1個I/O接口,1個互聯(lián)網(wǎng)絡的路由器接口,它的每個節(jié)點可以看作是一個SMP,通過互聯(lián)網(wǎng)絡可擴展至128個處理器的多處理器系統(tǒng)。Origin 2000的所有結點通過CrayLink高性能互聯(lián)網(wǎng)絡相互聯(lián)接,路由器是構成CrayLink的基本單位,它包含6個端口,內(nèi)部采用交叉開關實現(xiàn)端口間的全互聯(lián)。每個路由器的2個端口用于聯(lián)接結點,其余4個端口實現(xiàn)路由器間的互聯(lián),形成互聯(lián)網(wǎng)絡拓撲結構。該CrayLink的半分帶寬與結點個數(shù)成線性遞增關系,對任意2個結點,至少能提供兩條路徑,保證了結點間的高帶寬、低延遲聯(lián)接和互聯(lián)網(wǎng)絡的穩(wěn)定性和容錯能力。
2 兩種比較新的架構
SGI公司的Origin系列多處理器系統(tǒng)是一種比較通用的架構,但是還是比較復雜。后來,分別由Corepaq公司的Alpha EV7框架的處理器Alpha 21364和AMD公司的Opteron處理器組成的CC—NUMA架構的多處理器系統(tǒng)簡單很多,這兩種處理器都是針對多處理系統(tǒng)領域推出的,其有著特有的專為多處理器系統(tǒng)應用設計的處理器結構。
2.1 Alpha 21364處理器
2000年,Compaq公司推出了Alpha處理器的第四代產(chǎn)品Alpha21364,這是一款RISC處理器,在當時非常先進,在業(yè)內(nèi)首次在處理器內(nèi)集成了內(nèi)存控制器,特別是它還有先進的多處理互聯(lián)功能,在建造多處理器系統(tǒng)上很方便。
21364的簡化圖如圖2所示。21364是64位處理器,擁有1.5 MB的L2 CACHE,支持緩存一致性協(xié)議。內(nèi)部集成了2個RDRAM內(nèi)存控制器,在RDRAM中對于頁命中點對點的延遲是30 ns,加載應用的延遲是75 ns,對應高達12 GB/s的帶寬。最大的不同就是有一個路由器,有4個連接通道可與附近處理器相連,并與本地端口和I/O端口相連,每個連接通道提供6.2 GB/s的帶寬。
21364的處理器問互聯(lián)總線提供了CC—NUMA多處理器架構間的無粘合連接,如圖3所示。處理器間的二維拓撲互聯(lián)架構滿足了最遠的處理器間的最小系統(tǒng)延遲設計。這種架構可擴展至128個處理器互聯(lián)。
2.2 Opteron處理器
AMD公司在2001年推出了其第8代處理器K8架構的Opteron處理器。Opteron處理器基于X86系統(tǒng)架構并對其做了根本性改善,屬于64位處理器,并兼容32位X86處理器架構。Opteron處理器集成了內(nèi)存控制器,降低了訪存延遲,加大了訪存帶寬。Hyper—Transport(超傳輸)互連控制器也被集成到Opteron處理器內(nèi)部,在處理器和I/O子系統(tǒng)之間提供了拓展性極強的數(shù)據(jù)連接帶寬。在Opteron處理器內(nèi)部的數(shù)據(jù)通道為雙向16位的通訊,可以達到1 600 MT/s(每秒百萬次傳送)的工作效率,可提供雙向為6.4 GB/s的帶寬。AMD Opteron處理器之間以及處理器同I/O子系統(tǒng)之間如何通過HyperTransport(超傳輸)技術進行互連。處理器之間的互連采用的是一致性協(xié)議(CoherentProtocol),相反I/O連接遵循的是非一致性協(xié)議(Non—coherent Protoco1)。集成了3個HyperTransport(超傳輸)互連控制器和1個內(nèi)存控制器的處理器,需要盡可能高效地把指令和數(shù)據(jù)信息發(fā)送到相關接口。為實現(xiàn)這一需求,系統(tǒng)采用了交叉通道架構。
圖4中展現(xiàn)了北橋架構細節(jié),包括交叉通道(XBar)、內(nèi)存管理器之間的路由指令和數(shù)據(jù)信息、3個HyperTransport(超傳輸)技術的連接和處理器自己的系統(tǒng)請求接口(System Request Interface,SRI)。
現(xiàn)在對Opteron處理器組成的CC—NUMA系統(tǒng)的內(nèi)存訪問進行分析。將內(nèi)存訪問分為本地訪問和遠程訪問。如圖5所示為hops圖,處理器對本地存儲器的訪問,由于其無需經(jīng)過節(jié)點,訪問路程為O—hop(跳躍),依次的處理器分別需要經(jīng)過1個和2個其他的處理器才能訪問遠程存儲器,路程分別為1一 hop和2-hops。Opteron處理器支持在無其他任何芯片組連接的情況下支持無粘合地將至多8個處理器連接成CC—NUMA多處理器系統(tǒng)。如圖6 所示為8個處理器拓撲,它有將8個處理器連接成多處理器系統(tǒng)的兩種方案。在圖6中,提供兩條HyperTransport I/0通道,32 GB/s的對分帶寬,經(jīng)過計算其平均訪問路程為1.64 hops。圖6提供了4條HyperTransport I/O通道,25.6 GB/s的對分帶寬,1.71hops的平均訪問路程。這兩種方案各有所長,前者I/O帶寬雖然小于后者,但提供了更高的處理器間帶寬和更小的平均訪問路程,在訪問延遲上也相當小,所以在總體性能上優(yōu)于后者。
3 新型架構
考慮到以上兩種架構所用的處理器具有特殊性,都有獨有的處理器間互聯(lián)總線,不能推廣到大部分處理器。而Origin2000的架構過于復雜,也就失去了其普遍性。故在此,基于前幾種架構,提出一種更加簡單、通用的CC—NUMA框架,如圖7所示為一個四處理器的系統(tǒng)原理圖。
圖7中,整個系統(tǒng)完全是一個模塊化的架構,各個模塊之間都是獨立的,包括CPU、內(nèi)存控制器、存儲器路由器、存儲器以及I/0系統(tǒng)。每個CPU有自己的CACHE、內(nèi)存控制器和可共享的本地存儲器,CPU可以直接訪問本地存儲器,也可以通過存儲器路由選擇存儲器,然后訪問遠程存儲器。CACHE的一致性也通過存儲器路由實現(xiàn)。這樣,在CPU L2 CACHE比較大的情況下,CPU可以較少地訪問存儲器,或者可以很快地訪問本地存儲器,減少在訪問遠程存儲器時的延遲。各處理器之間的互聯(lián)可以通過現(xiàn)有的各種總線完成,如PCI一E,RAPIDI/O等,這樣既利用了現(xiàn)有技術,又很方便,具體實現(xiàn)還在研究中。
存儲器路由的選擇可以由高速FPGA實現(xiàn),不同的FPGA可以擴展到不同數(shù)量、類型的處理器,所以整個系統(tǒng)的擴展性大大提高。
系統(tǒng)帶寬取決于內(nèi)存控制器帶寬,其平均的訪問路程為1.5 hops,明顯低于前面幾種架構的延遲。在總體性能上主要取決于FPGA路由器的性能。當前的高速FPGA在頻率吞吐量上可以達到500 MHz以上的速度,在單引腳上可以達到6.5 Gb/s的傳輸,完全可以滿足存儲器路由的帶寬要求,并且其高頻率也可以有效控制整個系統(tǒng)的訪存延遲。
整個系統(tǒng)可以快速地配置起來,并且可以擴展。所用的處理器可以是X86架構的處理器、PowerPc、MIPS處理器等,甚至一些嵌入式處理器也可以使用,真正達到了通用性。
4 結 語
多處理器系統(tǒng)的建構是一個很復雜的工程,要想充分發(fā)揮硬件架構的性能優(yōu)勢還需要操作系統(tǒng)及應用程序的配合,不同的操作系統(tǒng)及應用程序運行在同樣的處理構架上其性能表現(xiàn)也會大相徑庭。