NUMA(NonUniformMemoryAccessArchitecture)技術(shù)可以使眾多服務(wù)器像單一系統(tǒng)那樣運(yùn)轉(zhuǎn),同時保留小系統(tǒng)便于編程和管理的優(yōu)點(diǎn)。基于電子商務(wù)應(yīng)用對內(nèi)存訪問提出的更高的要求,NUMA也向復(fù)雜的結(jié)構(gòu)設(shè)計(jì)提出了挑戰(zhàn)。
NUMA資料
- 中文名:非統(tǒng)一內(nèi)存訪問架構(gòu)
- 外文名:NonUniformMemoryAccessArchitecture
- 所屬類別:用于多處理器的電腦記憶體設(shè)計(jì)
產(chǎn)生
非統(tǒng)一內(nèi)存訪問(NUMA)是一種用于多處理器的電腦記憶體設(shè)計(jì),內(nèi)存訪問時間取決于處理器的內(nèi)存位置。在NUMA下,處理器訪問它自己的本地存儲器的速度比非本地存儲器(存儲器的地方到另一個處理器之間共享的處理器或存儲器)快一些。
NUMA架構(gòu)在邏輯上遵循對稱多處理(SMP)架構(gòu)。它是在二十世紀(jì)九十年代被開發(fā)出來的,開發(fā)商包括Burruphs(優(yōu)利系統(tǒng)),ConvexComputer(惠普),意大利霍尼韋爾信息系統(tǒng)(HISI)的(后來的GroupBull),SiliconGraphics公司(后來的硅谷圖形),Sequent電腦系統(tǒng)(后來的IBM),通用數(shù)據(jù)(EMC),Digital(后來的Compaq,HP)。這些公司研發(fā)的技術(shù)后來在類Unix操作系統(tǒng)中大放異彩,并在一定程度上運(yùn)用到了WindowsNT中。
首次商業(yè)化實(shí)現(xiàn)基于NUMA的Unix系統(tǒng)的是對稱多處理XPS-100系列服務(wù)器,它是由VAST公司的DanGielen為HISI設(shè)計(jì)的。這個架構(gòu)的巨大成功使HISI成為了歐洲的頂級Unix廠商。
基本概念
現(xiàn)代計(jì)算機(jī)的處理速度比它的主存速度快不少。而在早期的計(jì)算和數(shù)據(jù)處理中,CPU通常比它的主存慢。但是隨著超級計(jì)算機(jī)的到來,處理器和存儲器的性能在二十世紀(jì)六十年代達(dá)到平衡。自從那個時候,CPU常常對數(shù)據(jù)感到饑餓而且必須等待存儲器的數(shù)據(jù)到來。為了解決這個問題,很多在80和90年代的超級計(jì)算機(jī)設(shè)計(jì)專注于提供高速的存儲器訪問,使得計(jì)算機(jī)能夠高速地處理其他系統(tǒng)不能處理的大數(shù)據(jù)集。
限制訪問存儲器的次數(shù)是現(xiàn)代計(jì)算機(jī)提高性能的要點(diǎn)。對于商品化的處理器,這意味著設(shè)置數(shù)量不斷增長的高速緩存和使用不斷變得精巧復(fù)雜的算法以防止“緩存數(shù)據(jù)缺失(cachemissed)”。但是操作系統(tǒng)和應(yīng)用程序大小的明顯增長壓制了前述的緩存技術(shù)造成的提升。沒有使用NUMA的多處理器系統(tǒng)使得問題更糟糕。因?yàn)橥粫r間只能有一個處理器訪問計(jì)算機(jī)的存儲器,所以在一個系統(tǒng)中可能存在多個處理器在等待訪問存儲器。
NUMA通過提供分離的存儲器給各個處理器,避免當(dāng)多個處理器訪問同一個存儲器產(chǎn)生的性能損失來試圖解決這個問題。對于涉及到分散的數(shù)據(jù)的應(yīng)用(在服務(wù)器和類似于服務(wù)器的應(yīng)用中很常見),NUMA可以通過一個共享的存儲器提高性能至n倍,而n大約是處理器(或者分離的存儲器)的個數(shù)。
當(dāng)然,不是所有數(shù)據(jù)都局限于一個任務(wù),所以多個處理器可能需要同一個數(shù)據(jù)。為了處理這種情況,NUMA系統(tǒng)包含了附加的軟件或者硬件來移動不同存儲器的數(shù)據(jù)。這個操作降低了對應(yīng)于這些存儲器的處理器的性能,所以總體的速度提升受制于運(yùn)行任務(wù)的特點(diǎn)。
介紹
當(dāng)今數(shù)據(jù)計(jì)算領(lǐng)域的主要應(yīng)用程序和模型可大致分為聯(lián)機(jī)事務(wù)處理(OLTP)、決策支持系統(tǒng)(DSS)和企業(yè)信息通訊(BusinessCommunications)三大類。而小型獨(dú)立服務(wù)器模式、SMP(對稱多處理)模式、MPP(大規(guī)模并行處理)模式和NUMA模式,則是上述3類系統(tǒng)設(shè)計(jì)人員在計(jì)算平臺的體系結(jié)構(gòu)方面可以采用的選擇。
為了全面的了解NUMA的優(yōu)勢,我們不妨先來考察一下這幾種模式在處理器與存儲器結(jié)構(gòu)方面的區(qū)別。
SMP模式將多個處理器與一個集中的存儲器相連。在SMP模式下,所有處理器都可以訪問同一個系統(tǒng)物理存儲器,這就意味著SMP系統(tǒng)只運(yùn)行操作系統(tǒng)的一個拷貝。因此SMP系統(tǒng)有時也被稱為一致存儲器訪問(UMA)結(jié)構(gòu)體系,一致性意指無論在什么時候,處理器只能為內(nèi)存的每個數(shù)據(jù)保持或共享唯一一個數(shù)值。很顯然,SMP的缺點(diǎn)是可伸縮性有限,因?yàn)樵诖鎯ζ鹘涌谶_(dá)到飽和的時候,增加處理器并不能獲得更高的性能。
MPP模式則是一種分布式存儲器模式,能夠?qū)⒏嗟奶幚砥骷{入一個系統(tǒng)的存儲器。一個分布式存儲器模式具有多個節(jié)點(diǎn),每個節(jié)點(diǎn)都有自己的存儲器,可以配置為SMP模式,也可以配置為非SMP模式。單個的節(jié)點(diǎn)相互連接起來就形成了一個總系統(tǒng)。MPP體系結(jié)構(gòu)對硬件開發(fā)商頗具吸引力,因?yàn)樗鼈兂霈F(xiàn)的問題比較容易解決,開發(fā)成本比較低。由于沒有硬件支持共享內(nèi)存或高速緩存一致性的問題,所以比較容易實(shí)現(xiàn)大量處理器的連接。
可見,單一SMP模式與MPP模式的關(guān)鍵區(qū)別在于,在SMP模式中,數(shù)據(jù)一致性是由硬件專門管理的,這樣做比較容易實(shí)現(xiàn),但成本較高;在MPP模式中,節(jié)點(diǎn)之間的一致性是由軟件來管理,因此,它的速度相對較慢,但成本卻低得多。
在美國某大學(xué)的研究項(xiàng)目中被提出來的NUMA模式,也采用了分布式存儲器模式,不同的是所有節(jié)點(diǎn)中的處理器都可以訪問全部的系統(tǒng)物理存儲器。然而,每個處理器訪問本節(jié)點(diǎn)內(nèi)的存儲器所需要的時間,可能比訪問某些遠(yuǎn)程節(jié)點(diǎn)內(nèi)的存儲器所花的時間要少得多。換句話說,也就是訪問存儲器的時間是不一致的,這也就是這種模式之所以被稱為“NUMA”的原因。簡而言之,NUMA既保持了SMP模式單一操作系統(tǒng)拷貝、簡便的應(yīng)用程序編程模式以及易于管理的特點(diǎn),又繼承了MPP模式的可擴(kuò)充性,可以有效地?cái)U(kuò)充系統(tǒng)的規(guī)模。這也正是NUMA的優(yōu)勢所在。
緩存
幾乎所有利用少量的極快的非共享的內(nèi)存例如cache的CPU結(jié)構(gòu)利用內(nèi)存訪問方法中引用的位置。使用NUMA的系統(tǒng),在共享內(nèi)存時維持高速緩存一致性的開銷非常大。盡管設(shè)計(jì)與搭建更簡單,但是非一致性高速緩存NUMA系統(tǒng)編程在馮諾依曼編程架構(gòu)標(biāo)準(zhǔn)下變得非常復(fù)雜。
NUMA
典型的,ccNUMA在緩存控制器中使用處理器間通信,以此來保持穩(wěn)定的存儲器映像當(dāng)多個緩存試圖存儲在同一個內(nèi)存位置時。由于這個原因,當(dāng)多處理器快速連續(xù)的嘗試訪問相同的內(nèi)存區(qū)時ccNUMA可能表現(xiàn)比較差。支持NUMA的操作系統(tǒng)嘗試通過以NUMA友好的方式分配處理器和內(nèi)存,同時避免會使NUMA非友好方式成為必然的調(diào)度、鎖定算法來降低這種類型訪問的頻率。另外,緩存一致性協(xié)議如MESIF協(xié)議試圖減少需要維護(hù)緩存一致性的通信??蓴U(kuò)展一致性接口(SCI)是一個IEEE標(biāo)準(zhǔn)定義的一個基于目錄的緩存一致性協(xié)議,以避免在早期的多處理器系統(tǒng)中發(fā)現(xiàn)的可擴(kuò)展性限制。SCI被用作NumascaleNumaConnect的基礎(chǔ)技術(shù)。
截止2011年,ccNUMA系統(tǒng)是基于AMDOpteron處理器的多處理器系統(tǒng)(該系統(tǒng)可以在沒有外部邏輯的情況下執(zhí)行),或者基于英特爾安騰處理器(需要芯片組以支持NUMA的系統(tǒng))。支持CCNUMA的芯片組例子有SGISHUB(Superhub),IntelE8870,HPsx2000(在IntegrityandSuperdome服務(wù)器中使用),和那些以NECItanium-based的系統(tǒng)上。早期ccNUMA系統(tǒng)例如那些來自硅谷圖形(計(jì)算機(jī)公司)是基于MIPS處理器和DECAlpha21364(EV7)處理器的。
發(fā)展經(jīng)過
Sequent公司是世界公認(rèn)的NUMA技術(shù)領(lǐng)袖。早在1986年,Sequent公司率先利用微處理器作為創(chuàng)建大型系統(tǒng)的構(gòu)建,開發(fā)了基于Unix的SMP體系結(jié)構(gòu),開創(chuàng)了業(yè)界轉(zhuǎn)入SMP領(lǐng)域的先河。1999年9月,IBM公司收購了Sequent公司,將NUMA技術(shù)集成到IBMUnix陣營中,并推出了能夠支持和擴(kuò)展Intel平臺的NUMA-Q系統(tǒng)及解決方案,為全球大型企業(yè)客戶適應(yīng)高速發(fā)展的電子商務(wù)市場提供了更加多樣化、高可擴(kuò)展性及易于管理的選擇,成為NUMA技術(shù)的領(lǐng)先開發(fā)者與革新者。
此后,IBM還推出了名為NUMACenter的多層次系統(tǒng),集成了Unix和WindowsNT系統(tǒng)優(yōu)勢,為WindowsNT應(yīng)用程序提供了預(yù)集成的環(huán)境,允許客戶在高可擴(kuò)充性和高可用性的Unix數(shù)據(jù)層中,自由使用WindowsNT應(yīng)用程序,有效的實(shí)現(xiàn)了Unix和WindowsNT的互操作。
NUMA-Q結(jié)構(gòu)的基本構(gòu)成是Intel的4個處理器組建塊(Quad)設(shè)計(jì),NUMA-Q實(shí)現(xiàn)的2項(xiàng)關(guān)鍵技術(shù)是Quad設(shè)計(jì)和IQ-Link互連設(shè)備。NUMA-QQuad由4個處理器、一定數(shù)量的內(nèi)存和7個位于PCI通道的PCI插槽組成。NUMA-Q體系結(jié)構(gòu)利用Quad實(shí)現(xiàn)了CC-NUMA結(jié)構(gòu),大規(guī)模擴(kuò)展并保留了SMP編程模式,并可提供容錯光纖通道I/O子系統(tǒng),使SMP應(yīng)用程序能運(yùn)行于其上。NUMA-Q能在單一節(jié)點(diǎn)上支持高達(dá)256個處理器。IQ-Link互聯(lián)設(shè)備是NUMA-QQuad總線間的互聯(lián)設(shè)備,這種互聯(lián)設(shè)備的一致性嚴(yán)格以硬件實(shí)現(xiàn),不需要用軟件維護(hù)。IQ-Link互聯(lián)設(shè)備允許使用多個低延遲總線,具備低延遲和吞吐量高的特點(diǎn),提供了很強(qiáng)的系統(tǒng)可擴(kuò)充性和整體性能。
可見,這種體系結(jié)構(gòu)的優(yōu)勢在于:首先,NUMA的突破性技術(shù)徹底擺脫了傳統(tǒng)的超大總線對多處理結(jié)構(gòu)的束縛。它大大增強(qiáng)單一操作系統(tǒng)可管理的處理器、內(nèi)存和I/O插槽。
其次,NUMA設(shè)計(jì)的重點(diǎn)是讓處理器快速的訪問在同一單元的內(nèi)存,NUMA-Q處理器訪問同一單元上的內(nèi)存的速度比一般SMP模式超出一倍。并且,NUMA-Q操作系統(tǒng)充分利用處理器緩存,能達(dá)到極高的尋址命中率。SMP模式雖然比NUMA簡單,但是,所有的處理器訪問內(nèi)存的時間是一致且緩慢的。同時,基于SMP的總線存著在一個物理極限,令系統(tǒng)的擴(kuò)充性逐步降低。此外,在基于SMP體系結(jié)構(gòu)的大型系統(tǒng)中,平衡的增加處理器、I/O和內(nèi)存變得更加困難。
此外,NUMA系統(tǒng)提供內(nèi)存互連的硬件系統(tǒng),這種技術(shù)可以開發(fā)新型動態(tài)的分區(qū)系統(tǒng)。系統(tǒng)分區(qū)的好處在于允許系統(tǒng)管理員在同一計(jì)算機(jī)內(nèi)運(yùn)行多個操作系統(tǒng)(如Unix和WindowsNT),并根據(jù)用戶工作負(fù)荷的要求,在不同的操作系統(tǒng)環(huán)境間,簡單的管理和使用CPU和內(nèi)存資源,從而實(shí)現(xiàn)最佳的性能和最高的資源利用率。
NUMA-Q現(xiàn)已成為IBM互聯(lián)網(wǎng)服務(wù)器部門的支柱產(chǎn)品,加強(qiáng)了IBM服務(wù)器在電子商務(wù)領(lǐng)域的競爭力。不難看出,NUMA-Q的目標(biāo)市場是那些解決“關(guān)鍵事務(wù)性”(Mission-Critical)的商業(yè)數(shù)據(jù)中心。這些商業(yè)數(shù)據(jù)中心的計(jì)算機(jī)系統(tǒng)具有一些共同的特征,如具有高可用性、高可靠性、能夠適應(yīng)與日俱增的性能需求的高可擴(kuò)充性的特點(diǎn)。NUMA-Q體系結(jié)構(gòu)可以幫助聯(lián)機(jī)事務(wù)處理、決策支持系統(tǒng)和企業(yè)信息通訊系統(tǒng)設(shè)計(jì)人員創(chuàng)建這種大規(guī)模的“關(guān)鍵事務(wù)性”解決方案。
因此,NUMA-Q廣泛的適用于具有大量I/O計(jì)算、商業(yè)智能、客戶關(guān)系管理、企業(yè)資源規(guī)劃的環(huán)境。它給企業(yè)提供利用同一組部件創(chuàng)建多種體系結(jié)構(gòu)的靈活性,以及適用于多種解決方案的高可用性和高可管理性的工具集,同時可以支持多用戶和更大的吞吐量,減少客戶故障停機(jī)時間,提升了I/O功能,實(shí)現(xiàn)更大的聯(lián)機(jī)存儲與備份能力,并具有很強(qiáng)的擴(kuò)展性,可以最大程度地保護(hù)客戶的投資。
目前,包括美國Nasdaq證券自動報價系統(tǒng),波音飛機(jī)制造公司、福特汽車公司等在內(nèi)的諸多國際著名企業(yè)都選用了IBMNUMA-Q體系結(jié)構(gòu)的服務(wù)器,全球最大的Internet兒童產(chǎn)品零售商eToys依靠NUMA-Q成功地實(shí)現(xiàn)了電子商務(wù)。國內(nèi)已有很多大型企業(yè),包括中國銀行、中國建設(shè)銀行、郵政儲蓄管理局、北京西單商場股份有限公司及國務(wù)院辦公廳等等部門,采用IBMNUMA-Q建立了自己的系統(tǒng)環(huán)境。
業(yè)界許多服務(wù)器產(chǎn)品供應(yīng)商,如Sun、HP、Compaq、Unisys、SGI和DataGeneral等廠商的硬件結(jié)構(gòu)也將向NUMA結(jié)構(gòu)轉(zhuǎn)移,很多廠商正在計(jì)劃或正在研制基于NUMA體系結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)。IBM也將推出更有競爭力的第4代NUMA-Q體系結(jié)構(gòu),迎接NUMA對復(fù)雜設(shè)計(jì)、多路I/O提出的挑戰(zhàn)。
高速緩存相關(guān)的非一致性內(nèi)存訪問(CacheCoherentNon-UniformMemoryAccess,CC-NUMA)是NUMA的一種類型。在CC-NUMA系統(tǒng)中,分布式內(nèi)存相連接形成單一內(nèi)存,內(nèi)存之間沒有頁面復(fù)制或數(shù)據(jù)復(fù)制,也沒有軟件消息傳送。CC-NUMA只有一個內(nèi)存映象,存儲部件利用銅纜和某些智能硬件進(jìn)行物理連接。CacheCoherent是指不需要軟件來保持多個數(shù)據(jù)拷貝的一致性,也不需要軟件來實(shí)現(xiàn)操作系統(tǒng)與應(yīng)用系統(tǒng)的數(shù)據(jù)傳輸。如同在SMP模式中一樣,單一操作系統(tǒng)和多個處理器完全在硬件級實(shí)現(xiàn)管理。
高速緩存唯一的內(nèi)存體系結(jié)構(gòu)(Cache-OnlyMemoryArchitecture,COMA)是CC-NUMA體系結(jié)構(gòu)的競爭者,兩者擁有相同的目標(biāo),但實(shí)現(xiàn)方式不同。COMA節(jié)點(diǎn)不對內(nèi)存部件進(jìn)行分布,也不通過互連設(shè)備使整個系統(tǒng)保持一致性。COMA節(jié)點(diǎn)沒有內(nèi)存,只在每個Quad中配置大容量的高速緩存。
集群運(yùn)算
我們可以把NUMA看作集群運(yùn)算的一個緊密耦合的形式。虛擬內(nèi)存對集群結(jié)構(gòu)的頁式調(diào)度技術(shù)的加入更是使得NUMA可以完全由軟件實(shí)現(xiàn)。基于軟件的NUMA在節(jié)點(diǎn)間的延遲仍然比基于硬件的NUMA大幾個數(shù)量級。