?!♂摗埦恪≠R占莊
摘 要:針對當前多處理器發(fā)展形勢,提出一種新型的CC-MUMA架構(gòu)。CC-NUMA是廣泛應用于多處理機系統(tǒng)的一種體系結(jié)構(gòu),兼具SMP和MPP的一些優(yōu)點。簡要介紹CC-NUMA多處理器系統(tǒng)的特點;分析其基本架構(gòu);詳細討論兩種比較新的架構(gòu),并在此基礎上提出一種簡單、實用的新型架構(gòu),在靈活度、延遲、可擴展性方面均優(yōu)于以前的架構(gòu),同時對其可行性及性能進行了全面分析。
關鍵詞:CC-NUMA;Origin2000;Alpha 21364;Opteron;平均訪問路程
中圖分類號:TP38文獻標識碼:A
文章編號:1004 373X(2009)02 016 03
Study of CC-NUMA Multi-processor System
SANG Zhao,ZHANG Junyi,HE Zhanzhuang
(Xi′an Micro-electronic Institute,Xi′an,710054,China)
Abstract:Aiming at the requirement of multi-processor system,a new CC-NUMA architecture is proposed.CC-NUMA is a widely used architecture of multi-processing system,with advantages of both SMP and MPP.The features of CC-NUMA basic architecture are analyzed,along with two other new architectures,a simple and utility new architecture is proposed,which is more flexible and scalable,and has lower delay,then its feasibility and performance are verified.
Keywords:CC-NUMA;Origin2000;Alpha 21364;Opteron;average diameter
對于多處理器系統(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)。這種結(jié)構(gòu)比較簡單,但是由于其是共享存儲器,容易在訪存時產(chǎn)生系統(tǒng)瓶頸,可擴展性也比較差。MPP是分布式存儲器模式,可擴展性好,但是需要并行編程和并行編譯,在軟件系統(tǒng)構(gòu)建上比較復雜,使用不便。NUMA架構(gòu)將若干個單元通過專門的互聯(lián)設備聯(lián)結(jié)在一起組成分布式和共享內(nèi)存空間。每一個處理器可以訪問自己的存儲器,也可以訪問其他處理器或者共享的存儲器,所有訪存有遠近、時延長短之分,稱為非均勻存儲訪問。在某個處理器訪問空間上比較遠的存儲器時,會有很大的時延,為了緩解這個問題,通過高速緩存一致性使得處理器訪問存儲器的幾率大大降低,在某種程度上提高了系統(tǒng)效率,這種架構(gòu)稱為CC-NUMA即一致性緩存非均勻存儲訪問模式。這種架構(gòu)繼承了SMP和MPP系統(tǒng)的一些優(yōu)點,在處理器個數(shù),內(nèi)存大小、I/O連接能力和帶寬上有很大的伸縮性,又保持了SMP系統(tǒng)單一操作系統(tǒng)、簡單的應用程序編程模式和易于管理的優(yōu)點。
1 CC-NUMA基本架構(gòu)
CC-NUMA架構(gòu)的系統(tǒng)最出名的莫過于SGI公司的ORIGIN系列,SGI公司很好的發(fā)展和擴展了CC-NUMA技術,其基本架構(gòu)被廣泛應用。圖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 的所有結(jié)點通過CrayLink 高性能互聯(lián)網(wǎng)絡相互聯(lián)接,路由器是構(gòu)成CrayLink 的基本單位,它包含6 個端口,內(nèi)部采用交叉開關實現(xiàn)端口間的全互聯(lián)。每個路由器的2個端口用于聯(lián)接結(jié)點,其余4 個端口實現(xiàn)路由器間的互聯(lián),形成互聯(lián)網(wǎng)絡拓撲結(jié)構(gòu)。該CrayLink 的半分帶寬與結(jié)點個數(shù)成線性遞增關系,對任意2個結(jié)點,至少能提供兩條路徑,保證了結(jié)點間的高帶寬、低延遲聯(lián)接和互聯(lián)網(wǎng)絡的穩(wěn)定性和容錯能力。
2 兩種比較新的架構(gòu)
SGI公司的 Origin系列多處理器系統(tǒng)是一種比較通用的架構(gòu),但是還是比較復雜。后來,分別由Compaq公司的Alpha EV7框架的處理器Alpha 21364和AMD公司的Opteron處理器組成的CC-NUMA架構(gòu)的多處理器系統(tǒng)簡單很多,這兩種處理器都是針對多處理系統(tǒng)領域推出的,其有著特有的專為多處理器系統(tǒng)應用設計的處理器結(jié)構(gòu)。
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多處理器架構(gòu)間的無粘合連接,如圖3所示。處理器間的二維拓撲互聯(lián)架構(gòu)滿足了最遠的處理器間的最小系統(tǒng)延遲設計。這種架構(gòu)可擴展至128個處理器互聯(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)存控制器,降低了訪存延遲,加大了訪存帶寬。HyperTransport(超傳輸)互連控制器也被集成到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é)議(Coherent Protocol),相反I/O連接遵循的是非一致性協(xié)議(Non-coherent Protocol)。集成了3個HyperTransport(超傳輸)互連控制器和1個內(nèi)存控制器的處理器,需要盡可能高效地把指令和數(shù)據(jù)信息發(fā)送到相關接口。為實現(xiàn)這一需求,系統(tǒng)采用了交叉通道架構(gòu)。
圖4中展現(xiàn)了北橋架構(gòu)細節(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é)點,訪問路程為0-h(huán)op(跳躍),依次的處理器分別需要經(jīng)過1個和2個其他的處理器才能訪問遠程存儲器,路程分別為1-h(huán)op和2-h(huán)ops。
Opteron處理器支持在無其他任何芯片組連接的情況下支持無粘合地將至多8個處理器連接成CC-NUMA多處理器系統(tǒng)。如圖6所示為8個處理器拓撲,它有將8個處理器連接成多處理器系統(tǒng)的兩種方案。在圖6中,提供兩條HyperTransport I/O通道,32 GB/s的對分帶寬,經(jīng)過計算其平均訪問路程為1.64 hops。圖6提供了4條HyperTransport I/O通道,25.6 GB/s的對分帶寬,1.71 hops的平均訪問路程。這兩種方案各有所長,前者I/O帶寬雖然小于后者,但提供了更高的處理器間帶寬和更小的平均訪問路程,在訪問延遲上也相當小,所以在總體性能上優(yōu)于后者。
3 新型架構(gòu)
考慮到以上兩種架構(gòu)所用的處理器具有特殊性,都有獨有的處理器間互聯(lián)總線,不能推廣到大部分處理器。而Origin2000的架構(gòu)過于復雜,也就失去了其普遍性。故在此,基于前幾種架構(gòu),提出一種更加簡單、通用的CC-NUMA框架,如圖7所示為一個四處理器的系統(tǒng)原理圖。
圖7中,整個系統(tǒng)完全是一個模塊化的架構(gòu),各個模塊之間都是獨立的,包括CPU、內(nèi)存控制器、存儲器路由器、存儲器以及I/O系統(tǒng)。每個CPU有自己的CACHE、內(nèi)存控制器和可共享的本地存儲器,CPU可以直接訪問本地存儲器,也可以通過存儲器路由選擇存儲器,然后訪問遠程存儲器。CACHE的一致性也通過存儲器路由實現(xiàn)。這樣,在CPU L2 CACHE比較大的情況下,CPU可以較少地訪問存儲器,或者可以很快地訪問本地存儲器,減少在訪問遠程存儲器時的延遲。
各處理器之間的互聯(lián)可以通過現(xiàn)有的各種總線完成,如PCI-E,RAPID I/O等,這樣既利用了現(xiàn)有技術,又很方便,具體實現(xiàn)還在研究中。
存儲器路由的選擇可以由高速FPGA實現(xiàn),不同的FPGA可以擴展到不同數(shù)量、類型的處理器,所以整個系統(tǒng)的擴展性大大提高。
系統(tǒng)帶寬取決于內(nèi)存控制器帶寬,其平均的訪問路程為1.5 hops,明顯低于前面幾種架構(gòu)的延遲。在總體性能上主要取決于FPGA路由器的性能。當前的高速FPGA在頻率吞吐量上可以達到500 MHz以上的速度,在單引腳上可以達到6.5 Gb/s的傳輸,完全可以滿足存儲器路由的帶寬要求,并且其高頻率也可以有效控制整個系統(tǒng)的訪存延遲。
整個系統(tǒng)可以快速地配置起來,并且可以擴展。所用的處理器可以是X86架構(gòu)的處理器、PowerPc、MIPS處理器等,甚至一些嵌入式處理器也可以使用,真正達到了通用性。
4 結(jié) 語
多處理器系統(tǒng)的建構(gòu)是一個很復雜的工程,要想充分發(fā)揮硬件架構(gòu)的性能優(yōu)勢還需要操作系統(tǒng)及應用程序的配合,不同的操作系統(tǒng)及應用程序運行在同樣的處理構(gòu)架上其性能表現(xiàn)也會大相徑庭。
參考文獻
[1]陳國良.并行計算機體系結(jié)構(gòu)[M].北京:高等教育出版社,2002.
[2]Anon.Non-Uniform Memory Access[EB/OL].http://www.wikipedia.org.
[3]Anon.Multiprocessing Specification[EB/OL].http://www.intel.com.
[4]Anon.Symmetric Multiprocessing [EB/OL].http://www.wikipedia.org.
[5]Anon.The SGIAltixTM 2000 Global Shared-Memory Architecture[EB/OL].http://www.sgi.com.
[6]Kevin Krewell.Alpha EV7 Processor: A High Performance Tradition Continues [R].2002.
[7]Advanced Micro Devices,Inc.AMD Eighth-Generation Processor Architecture[R].2002.
[8]吳吉慶.基于CC-NUMA結(jié)構(gòu)的I/O系統(tǒng)設計 [J].計算機研究與發(fā)展,2005(6):905-912.
[9]Ardsher Ahmed.AMD Opteron Shared Memeriy MP Systems[R].2002.
[10]李承偉.多PowerPC7400_7410處理器體系架構(gòu)研究 [J].計算機工程,2005(6):197-199.
作者簡介 桑 釗 男,1984年出生,在讀碩士研究生。研究方向為計算機應用技術。
張君毅 男,1983年出生,在讀碩士研究生。研究方向為嵌入式操作系統(tǒng)及實時嵌入式軟件。
賀占莊 男,1962年出生,研究員,碩士生導師。研究方向為計算機控制技術。