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