專利名稱:混合huma/s-coma系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式共享存儲器系統(tǒng)及高速緩沖存儲器領(lǐng)域。具體地說,本發(fā)明涉及一種混合結(jié)構(gòu),在這種結(jié)構(gòu)中,在頂層形成有第一種存儲器(簡單COMA),該存儲器與另一種存儲器(NUMA)形成整體。
本文件中使用了下列術(shù)語全局存儲器(Global Memory)它指可由不同節(jié)點(diǎn)上的進(jìn)程來加以尋址的存儲器對象。它形成并安裝在UNIX系統(tǒng)V且被安裝進(jìn)要對全局存儲器對象進(jìn)行尋址的各個進(jìn)程的有效地址空間內(nèi)。
DSM分布式共享存儲器(Distributed Shared Memory)。一種能提供共享存儲器功能的結(jié)構(gòu),盡管物理存儲器分布在系統(tǒng)的節(jié)點(diǎn)之間。
S-COMA只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(SimpleCache only Memory Architecture)。是一種DSM的配置方式,其中,每個節(jié)點(diǎn)均將其本地存儲器的一部分保留為用于全局存儲器的高速緩沖存儲器。通過S-COMA軟件與硬件的組合來管理這種高速緩沖存儲器。各進(jìn)程通過進(jìn)程的特定虛地址來訪問數(shù)據(jù),節(jié)點(diǎn)存儲器硬件通過本地實地址來訪問數(shù)據(jù),S-COMA硬件在節(jié)點(diǎn)之間傳遞全局地址。S-COMA子系統(tǒng)控制本地地址與全局地址之間的變換。
NUMA非均等的存儲器存取(Non Uniform Memory Access)。一種DSM配置方式,其中,系統(tǒng)內(nèi)的n個節(jié)點(diǎn)中的每一個節(jié)點(diǎn)均占有系統(tǒng)的實存儲器(和實地址空間)的1/n。進(jìn)程通過虛地址來訪問數(shù)據(jù),節(jié)點(diǎn)存儲器硬件通過實地址來訪問數(shù)據(jù)。NUMA基礎(chǔ)結(jié)構(gòu)在節(jié)點(diǎn)之間傳遞實地址。
UMA均等的存儲器存取(Uniform Memory Access)。一種共享的存儲器組織,通過這種組織,任何處理器均可在相同(均等)的時間內(nèi)訪問任何存儲器的存儲單元。
邊界函數(shù)(BF,boundary Function)層或邏輯函數(shù),它在節(jié)點(diǎn)的邊界處執(zhí)行一組動作。在本發(fā)明中,BF為經(jīng)由DSM的子系統(tǒng)進(jìn)入或離開節(jié)點(diǎn)的地址進(jìn)行地址變換。
客戶(Client)一種節(jié)點(diǎn),它可訪問(緩存)數(shù)據(jù),但不是數(shù)據(jù)的基地。
基地(Home)一種節(jié)點(diǎn),它是數(shù)據(jù)的擁有者或者是對數(shù)據(jù)關(guān)聯(lián)性進(jìn)行管理的目錄的擁有者。
延遲時間(Latency)與諸如從存儲器中取出數(shù)據(jù)之類的特定動作或操作有關(guān)的延遲時間。
窺探邏輯(Snooping logic)用于監(jiān)測(窺探)線路或總線從而查找特定的地址、標(biāo)記或其它關(guān)鍵信息的邏輯。
網(wǎng)絡(luò)邏輯(Network logic)與網(wǎng)絡(luò)或通訊光纖相連的邏輯。
實地址空間(Real address space)由地址變換所產(chǎn)生的實地址范圍。是物理存儲器的地址。
本地實地址(Local real address)一種實地址,它用于本地節(jié)點(diǎn)。
全局實地址(Global real address)一種實地址,它可于所有的節(jié)點(diǎn)。
物理地址(Physical address)一種實地址,是物理存儲器的地址。
輸入地址(Input address)設(shè)置成輸入給一個組件的地址。
相關(guān)地址(Associated address)由成對地址構(gòu)成的數(shù)據(jù)結(jié)構(gòu)中的成對地址的第二個地址,第一個地址是輸入地址。
共享存儲器的多處理器系統(tǒng)允許多個處理器中的各個處理器通過讀和寫(加載和存儲)操作來訪問任何的存儲單元(存儲器)。除了就效率而言,共享存儲器的基本結(jié)構(gòu)相對處理器或程序是隱藏的。
一個存儲器的存儲單元可由多個處理器來更新。結(jié)果是產(chǎn)生單個系列的更新值,并且所有的處理器都能按相同的順序查看對存儲器存儲單元的更新值。這種屬性稱為“關(guān)聯(lián)性”。在關(guān)聯(lián)的系統(tǒng)中,處理器不能查看到上另一個處理器不同的更新次序。
與高速緩沖存儲器關(guān)聯(lián)、共享的存儲器多處理器系統(tǒng)能向存儲器提供高速緩沖存儲器,從而提高存儲器存取的效率(減少延遲時間)。由于高速緩沖存儲器保持有關(guān)聯(lián)性,所以能保持如系統(tǒng)中所有存儲器所查看到的那樣的用于給定存儲器存儲單元的單個更新值序列的特征。
本專利中所述的系統(tǒng)結(jié)構(gòu)是與高速緩沖存儲器關(guān)聯(lián)、共享的存儲器多處理器系統(tǒng)。以下說明這種系統(tǒng)的三種具體的變化形式即UMA、NUMA和S-COMA。
“UMA”是指均等存儲器存取,并且描述了這樣一種系統(tǒng)結(jié)構(gòu),其中,計算機(jī)系統(tǒng)中的多個處理器共享一個實地址空間,從任何一個處理器到任何一個存儲器存儲單元的延遲時間都是相同的或者是均等的。也就是說,給定的處理器可按均等的時間訪問任何的存儲器的存儲單元。最新型的對稱多處理器(SMP)是UMA系統(tǒng)。
圖1示出了典型的UMA系統(tǒng)10的結(jié)構(gòu)。多個處理器12和存儲器16一樣與共用系統(tǒng)總線14相連。由于從任何一個處理器12到任何存儲器16中的一個存儲單元的路徑都是相同的(也就是說,經(jīng)過系統(tǒng)總線),所以從任何一個處理器到任何一個存儲器存儲單元的延遲時間都是相同的。
圖1還示出了高速緩沖存儲器18。必須存在有這樣一種高速緩沖存儲器關(guān)聯(lián)性協(xié)議,該協(xié)議對高速緩沖存儲器18進(jìn)行管理并確保對一個的存儲器存儲單元的更新是有序的,因此,所有的處理器都會查看到同一個更新序列。在諸如所說明的UMA系統(tǒng)中,這一點(diǎn)通常是通過使各個高速緩沖存儲器控制器在系統(tǒng)總線上進(jìn)行“窺探”而實現(xiàn)的。這包括觀察總線上的所有事務(wù),并在總線上的操作涉及到窺探者的高速緩沖存儲器中所保存的存儲器存儲單元時采取行動(即參與關(guān)聯(lián)性協(xié)議)。
這種組織方式的好處是可以簡化并行的程序設(shè)計,因為,進(jìn)程可對數(shù)據(jù)的位置不敏感,也就是說,可按特定的時間量存取數(shù)據(jù),而與用于保存數(shù)據(jù)的存儲器存儲單元無關(guān)。
這種組織方式的缺點(diǎn)是UMA系統(tǒng)不能很好地進(jìn)行調(diào)整。由于設(shè)計出了越來越大的系統(tǒng)(有越來越多的處理器和存儲器),所以,保持存儲器存取時間的均等性更加困難且昂貴。此外,需要高速緩沖存儲器控制器來進(jìn)行窺探的方案需要有諸如共用系統(tǒng)總線之類的用于數(shù)據(jù)地址的共用通訊媒介。但是,由于其中設(shè)置了更多的處理器和更多的存儲器操作,故系統(tǒng)總線是過載的串行資源。當(dāng)系統(tǒng)總線飽和時,增加更多或更快的處理器并不能提高系統(tǒng)效率。
另一種系統(tǒng)變形是“NUMA”,它指不均等的存儲器存取并描述了這樣一種系統(tǒng)結(jié)構(gòu),其中,計算機(jī)系統(tǒng)中的多個處理器共享一個實地址空間,在該空間內(nèi),存儲器延遲時間隨存取存儲器存儲單元的變化而變。也就是說,某些存儲器存儲單元比另一些存儲單元“更接近”某些存儲器。與UMA系統(tǒng)不同,不能在相同的時間內(nèi)從給定的存儲器來存取所有的存儲器存儲單元,也就是說,其些存儲器存儲單元要比另一些存儲單元花更長的時間才能存取,所以,存儲器存取時間是不均等的。
如圖2所示,NUMA系統(tǒng)提供了分布式共享存儲器,也就是說,總的系統(tǒng)存儲器是節(jié)點(diǎn)22中的存儲器M1、M2、M3的總和。存在有單個的實地址空間,系統(tǒng)20中的所有節(jié)點(diǎn)22均可共享該地址空間,在圖2中,每個節(jié)點(diǎn)均包含系統(tǒng)存儲器的三分之一。每個節(jié)點(diǎn)22均包括UMA系統(tǒng)10。多個節(jié)點(diǎn)均通過網(wǎng)絡(luò)接口(NI)26與共用通信光纖或網(wǎng)絡(luò)24相連。
一個節(jié)點(diǎn)中的處理器可通過一個裝載或存儲指令來存取另一個節(jié)點(diǎn)中的存儲器存儲單元。NUMA存儲器控制器(NMC)28的功能是負(fù)責(zé)在本地節(jié)點(diǎn)的系統(tǒng)總線上捕獲存儲器請求,并將其傳給包含目標(biāo)存儲器存儲單元的節(jié)點(diǎn)(即基地節(jié)點(diǎn))。由于從一個處理器到遠(yuǎn)程存儲器存儲單元的路徑要比從同一處理器到本地存儲器存儲單元的路徑遠(yuǎn),故存儲器存取時間是不均等的。
同UMA系統(tǒng)一樣,高速緩沖存儲器通過某種協(xié)儀保持相關(guān)聯(lián)。所有節(jié)點(diǎn)上的處理器都會在串行時查看到對單個存儲器存儲單元的更新。但是,與UMA系統(tǒng)不同,NUMA系統(tǒng)一般不能將存儲器操作廣播給所有節(jié)點(diǎn)從而使所有的高速緩沖存儲器控制器均能對這些節(jié)點(diǎn)進(jìn)行窺探。相反,基地節(jié)點(diǎn)NMC負(fù)責(zé)將關(guān)聯(lián)性請求傳給對這些請求感興趣的遠(yuǎn)程節(jié)點(diǎn)。在典型的NUMA實現(xiàn)形式中,每個NMC均保持有用于節(jié)點(diǎn)中的所有存儲器的目錄。這個目錄跟蹤本地存儲器的各個高速緩沖存儲器的數(shù)據(jù)行,從而保持高速緩沖存儲器數(shù)據(jù)行的狀態(tài),并了解是否有其它節(jié)點(diǎn)正在對該數(shù)據(jù)行進(jìn)行緩存。例如,節(jié)點(diǎn)1中的NMC28跟蹤M1中的所有存儲器。如果在節(jié)點(diǎn)1中出現(xiàn)了存儲器操作,節(jié)點(diǎn)1上的NMC28就查詢其目錄,并將請求傳給具有被緩存的目標(biāo)數(shù)據(jù)行的所有節(jié)點(diǎn)。題為“用于在各高速緩沖存儲模式之間進(jìn)行選擇的混合NUMA COMA高速緩沖存儲系統(tǒng)和方法”的US專利5710907號中充分地說明了NUMA系統(tǒng)中用于遠(yuǎn)程存儲器存取的樣本數(shù)據(jù)流,本文引用了該專利的全部內(nèi)容。
上述結(jié)構(gòu)的優(yōu)點(diǎn)是,能很容易地建立這樣的系統(tǒng),該系統(tǒng)可在UMA系統(tǒng)限制的范圍之外進(jìn)行調(diào)整。主要原因是,所有的高速緩沖存儲器控制器都不必對單個的共用通訊光纖進(jìn)行窺探。相反,這些控制器僅窺視本地光纖,本地光纖僅在對節(jié)點(diǎn)有影響時才查看存儲器操作。
NUMA系統(tǒng)的缺點(diǎn)是,對性能敏感的程序會根據(jù)數(shù)據(jù)放置在存儲器中的位置而以不同的方式執(zhí)行。這一點(diǎn)對在多個程序執(zhí)行線程之間共享數(shù)據(jù)的并行程序來說特別重要。
導(dǎo)致分布式存儲器有增加的存儲器延遲時間的第二個問題是NUMA系統(tǒng)的有限的高速緩沖存儲器長度。某些NUMA系統(tǒng)不能提供比構(gòu)成NUMA系統(tǒng)的SMP更強(qiáng)的緩存能力,在這種情況下,增加的存儲器延遲時間會使硬件高速緩沖存儲器的優(yōu)點(diǎn)變小。另外,在NMC中可提供另一層次的硬件緩存。但是,該硬件是專用硬件,這意味著一種開銷,這種開銷僅在對遠(yuǎn)程存儲器進(jìn)行大量存取時才有用。
作為又一種系統(tǒng)變形,“S-COMA”是指只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(即COMA的變形,COMA是指高速緩沖存儲器的唯一存儲器結(jié)構(gòu))并描述了一種分布式共享存儲器結(jié)構(gòu),其中,計算機(jī)系統(tǒng)中的多個處理器可透明地存取整個系統(tǒng)中的任何存儲器,并且,存儲器延遲時間隨所存取的存儲器存儲單元而變。但是,與NUMA系統(tǒng)不同,節(jié)點(diǎn)保持有獨(dú)立的實地址空間。各個節(jié)點(diǎn)的本地實存儲器的一部分被用作了高速緩沖存儲器,由系統(tǒng)軟件將該高速緩沖存儲器分配成有頁長度的信息塊。所引用的US專利5710907號中充分地說明了S-COMA操作的特點(diǎn)。
上述結(jié)構(gòu)的一個優(yōu)點(diǎn)是,能很容易地建立比UMA或NUMA更易調(diào)整的系統(tǒng)。主要原因是,各個節(jié)點(diǎn)僅對它們的本地實存儲器空間進(jìn)行管理,從而減少了系統(tǒng)的復(fù)雜性和節(jié)點(diǎn)間的干擾。還有,同NUMA一樣,所有的高速緩沖存儲器控制器不必窺探單個的共用通訊光纖。相反,它們只窺探本地光纖,本地光纖僅在對節(jié)點(diǎn)有影響時才查看存儲器操作。
此外,S-COMA與NUMA相比通過提供很大的主存儲器高速緩沖存儲器而能為多個程序提供更佳的平均延遲時間。由于提供了很大的高速緩沖存儲器,故可在很大程度上減少高速緩沖存儲器出錯次數(shù),從而減少遠(yuǎn)程存儲器存取次數(shù),因而能提高程序的效率。再有,S-COMA與NUMA相比通過減少對存儲器管理數(shù)據(jù)結(jié)構(gòu)的爭用而提供更佳的可調(diào)性和節(jié)點(diǎn)獨(dú)立特性。通過借助變換函數(shù)來過濾地址還可限制直接存儲器存取。
參照圖3,利用S-COMA結(jié)構(gòu),可創(chuàng)建全局存儲器對象并為其分配全局地址(GA),并將一單個的節(jié)點(diǎn)指定為用于任何特定數(shù)據(jù)頁的基地節(jié)點(diǎn)30。通過將一虛地址(VA)賦給全局對象,可將上述全局對象與各個有關(guān)的進(jìn)程地址空間連接起來。隨后用頁表(PT)將VA變換成本地實地址(RA)。
每個節(jié)點(diǎn)30、32均保持有S-COMA高速緩沖存儲器34即主存儲器36中的高速緩沖存儲器,該高速緩沖存儲器由S-COMA子系統(tǒng)所持有。在訪問全局?jǐn)?shù)據(jù)區(qū)時,對S-COMA高速緩沖存儲器中的槽(slot)進(jìn)行分配,通過將數(shù)據(jù)放進(jìn)基地節(jié)點(diǎn)的S-COMA高速緩沖存儲器34中而使該數(shù)據(jù)形成在駐留于基地節(jié)點(diǎn)30的存儲器中?;?0上的S-COMA設(shè)備用于使基地S-COMA高速緩沖存儲器數(shù)據(jù)行34的地址(RA)與目標(biāo)數(shù)據(jù)行的全局地址(GA)相關(guān)聯(lián)??蛻艄?jié)點(diǎn)32中的S-COMA設(shè)備用于使客戶S-COMA高速緩沖存儲器數(shù)據(jù)行34的地址(RA′)與目標(biāo)數(shù)據(jù)行的全局地址相關(guān)聯(lián)。
當(dāng)客戶32試圖訪問不在本地L2高速緩沖存儲器內(nèi)的全局?jǐn)?shù)據(jù)時,就檢查客戶的S-COMA高速緩沖存儲器34。如果在該高速緩沖存儲器中有數(shù)據(jù),就從本地存儲器(RA′)取出數(shù)據(jù)并結(jié)束請求。如果在客戶的S-COMA高速緩沖存儲器34中數(shù)據(jù)不存在或不是處于有效狀態(tài),則客戶的S-COMA目錄′38就與基地的S-COMA目錄38相通訊,以檢索該數(shù)據(jù)的有效拷貝。
在節(jié)點(diǎn)間進(jìn)行通訊的各個節(jié)點(diǎn)中,S-COMA機(jī)構(gòu)執(zhí)行邊界函數(shù),以便將S-COMA高速緩沖存儲器槽的相關(guān)的本地實地址(RA)、(RA′)變換成全局地址(GA)。請注意,各個節(jié)點(diǎn)30、32可使用同于目標(biāo)數(shù)據(jù)行的S-COMA高速緩沖存儲器槽的不同實地址,但所有的節(jié)點(diǎn)均使用相同的全局地址以標(biāo)識特定的全局?jǐn)?shù)據(jù)行。通過這種方式,可保持節(jié)點(diǎn)間的獨(dú)立性。
盡管根據(jù)高速緩沖存儲器數(shù)據(jù)行進(jìn)行關(guān)聯(lián),但S-COMA緩存系統(tǒng)具有按頁增量來分配高速緩沖存儲器槽的缺點(diǎn)。如果進(jìn)程使用了在S-COMA高速緩沖存儲器中分配的各個頁內(nèi)的存儲器的較大百分比,則S-COMA能通過提供更大的高速緩存容量而優(yōu)于NUMA。但是,如果使用了所分配的各個頁的較少的部分,則S-COMA會因分配未被充分使用的較大的高速緩沖存儲器槽而浪費(fèi)存儲器。
作為又一種變化形式,上述題為“用于在高速緩沖存儲模式之間進(jìn)行選擇的混合NUMA COMA高速緩沖存儲系統(tǒng)和方法”的美國專利5710907說明了一種混合緩存結(jié)構(gòu)及用于多處理器計算機(jī)系統(tǒng)的高速緩沖存儲器關(guān)聯(lián)性協(xié)議。在這種混合系統(tǒng)的一種實現(xiàn)形式中,各個子系統(tǒng)均包括至少一個處理器、面向頁的COMA高速緩沖存儲器以及面向數(shù)據(jù)行的混合NUMA/COMA高速緩沖存儲器。每個子系統(tǒng)均能獨(dú)立地按COMA模式或NUMA模式存儲數(shù)據(jù)。在按COMA模式進(jìn)行緩存時,子系統(tǒng)分配存儲器空間的一個頁,然后將數(shù)據(jù)存儲在COMA高速緩沖存儲器中所分配的頁內(nèi)。依照這種實現(xiàn)形式,在按COMA模式進(jìn)行緩存時,所述子系統(tǒng)還能將同一數(shù)據(jù)存儲在混合高速緩沖存儲器內(nèi)以便快速存取。相反,在按NUMA模式進(jìn)行緩存時,所述子系統(tǒng)將通常是一行數(shù)據(jù)的數(shù)據(jù)存儲在混合高速緩沖存儲器內(nèi)。
上述混合系統(tǒng)的一個缺點(diǎn)是該系統(tǒng)依賴于一個S-COMA關(guān)聯(lián)設(shè)備,該設(shè)備獨(dú)立于或等同于NUMA關(guān)聯(lián)設(shè)備。用兩種在邏輯上是完整的設(shè)備來實現(xiàn)本文所述的混合概念。此外,基地和客戶節(jié)點(diǎn)必須保持著用于數(shù)據(jù)的S-COMA高速緩沖存儲器并在全局地址與實地址之間進(jìn)行變換。
盡管存在有上述系統(tǒng)變化形式,但還是希望進(jìn)一步改進(jìn)系統(tǒng)存儲器結(jié)構(gòu)特別是改進(jìn)使用了第一種存儲器和第二種存儲器的混合結(jié)構(gòu)。
簡要地說,在一個方面中,本發(fā)明包括一種混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng),該系統(tǒng)可與具有多個彼此相連的節(jié)點(diǎn)的計算機(jī)一道使用,其中,將數(shù)據(jù)作為多個頁存儲在混合NUMA/S-COMA存儲器系統(tǒng)內(nèi),每個頁均包括至少一個數(shù)據(jù)行。所述混合NUMA/S-COMA存儲器系統(tǒng)包括多個NUMA存儲器,它們配置成能存儲至少一個數(shù)據(jù)行。所述多個NUMA存儲器的每個NUMA存儲器均駐留于計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)中的不同節(jié)點(diǎn)。所述多個NUMA存儲器包括一個NUMA關(guān)聯(lián)子系統(tǒng),它用于協(xié)調(diào)數(shù)據(jù)在NUMA存儲器之間的傳遞。所述混合NUMA/S-COMA存儲器系統(tǒng)還包括NUMA存儲器內(nèi)的至少一個S-COMA高速緩沖存儲器,它配置成能存儲上述多個頁中的至少一個頁。每個S-COMA高速緩沖存儲器均駐留于計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)中的不同節(jié)點(diǎn)。至少一個S-COMA高速緩沖存儲器在從計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)內(nèi)的另一個節(jié)點(diǎn)中接收數(shù)據(jù)或?qū)?shù)據(jù)傳給計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)內(nèi)的另一個節(jié)點(diǎn)時使用了NUMA關(guān)聯(lián)子系統(tǒng)。
在另一個方面中,本發(fā)明包括用于在計算機(jī)系統(tǒng)的客戶節(jié)點(diǎn)與基地節(jié)點(diǎn)之間傳遞數(shù)據(jù)的方法,所述計算機(jī)系統(tǒng)具有多個彼此相連的節(jié)點(diǎn),其中,所述計算機(jī)系統(tǒng)使用了混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng),這種系統(tǒng)具有多個能存儲數(shù)據(jù)的NUMA存儲器,每個NUMA存儲器均駐留于計算機(jī)系統(tǒng)的不同節(jié)點(diǎn);以及,至少一個能存儲數(shù)據(jù)的S-COMA高速緩沖存儲器,每個S-COMA高速緩沖存儲器均駐留于計算機(jī)系統(tǒng)的不同節(jié)點(diǎn),所述客戶節(jié)點(diǎn)包括由至少一個S-COMA高速緩沖存儲器中的S-COMA高速緩沖存儲器。所述傳遞方法包括在所述計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)中的客戶節(jié)點(diǎn)處生成對存儲器實地址的數(shù)據(jù)請求;確定該實地址是否包括客戶節(jié)點(diǎn)處的本地實地址;當(dāng)所述實地址包括一本地實地址時,就確定是否需要對上述本地實地址作邊界函數(shù)變換,以便將該本地實地址變換成基地節(jié)點(diǎn)實地址;以及,當(dāng)需要上述邊界函數(shù)變換時,就將本地實地址變換成基地節(jié)點(diǎn)實地址,其中,基地節(jié)點(diǎn)實地址包括一網(wǎng)絡(luò)地址,客戶節(jié)點(diǎn)在請求存取基地節(jié)點(diǎn)實地址處的數(shù)據(jù)時使用該網(wǎng)絡(luò)地址。
在又一個方面中,本發(fā)明包括用于構(gòu)造混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng)的方法。該方法包括提供一計算機(jī)系統(tǒng),它帶有多個彼此相連的節(jié)點(diǎn);使該計算機(jī)系統(tǒng)配備有一非均等存儲器存取(NUMA)結(jié)構(gòu),所述NUMA結(jié)構(gòu)包括NUMA關(guān)聯(lián)子系統(tǒng);以及,在計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)中的至少一個節(jié)點(diǎn)處形成只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(S-COMA)高速緩沖存儲器,形成S-COMA高速緩沖存儲器的過程包括將上述S-COMA高速緩沖存儲器配置成能在不使用S-COMA關(guān)聯(lián)子系統(tǒng)的情況下使用NUMA關(guān)聯(lián)子系統(tǒng)來進(jìn)行數(shù)據(jù)訪問捕獲、數(shù)據(jù)移動以及關(guān)聯(lián)性管理。
在還一個方面中,本發(fā)明包括一種產(chǎn)品,它包括至少一種計算機(jī)可用的媒體,該媒體中包括有一個被實現(xiàn)于其中的計算機(jī)可讀的程序代碼裝置,以便在計算機(jī)系統(tǒng)的客戶節(jié)點(diǎn)與基地節(jié)點(diǎn)之間傳遞數(shù)據(jù),所述計算機(jī)系統(tǒng)具有多個彼此相連的節(jié)點(diǎn),其中,所述計算機(jī)系統(tǒng)使用了混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng),這種存儲器系統(tǒng)具有多個能存儲數(shù)據(jù)的NUMA存儲器,每個NUMA存儲器均駐留于上述計算機(jī)系統(tǒng)的不同節(jié)點(diǎn);以及,至少一個能存儲數(shù)據(jù)的S-COMA高速緩沖存儲器,每個S-COMA高速緩沖存儲器均駐留于計算機(jī)系統(tǒng)的不同節(jié)點(diǎn),所述客戶節(jié)點(diǎn)包括由該至少一個S-COMA高速緩沖存儲器構(gòu)成的S-COMA高速緩沖存儲器。所述產(chǎn)品中的計算機(jī)可讀程序代碼裝置包括用于使計算機(jī)在所述的多個節(jié)點(diǎn)中的客戶節(jié)點(diǎn)處生成對存儲器實地址的數(shù)據(jù)請求的計算機(jī)可讀程序代碼裝置;用于使計算機(jī)確定該實地址是否包括客戶節(jié)點(diǎn)處的本地實地址的計算機(jī)可讀程序代碼裝置;用于使計算機(jī)在所述實地址包括一本地實地址時確定是否需要邊界函數(shù)變換的計算機(jī)可讀程序代碼裝置,所述邊界函數(shù)變換可將本地實地址變換成基地節(jié)點(diǎn)實地址;以及,用于使計算機(jī)在上述邊界函數(shù)變換被需要之時將本地實地址變換成基地節(jié)點(diǎn)實地址的計算機(jī)可讀程序代碼裝置,其中,基地節(jié)點(diǎn)實地址包括一網(wǎng)絡(luò)地址,客戶節(jié)點(diǎn)在請求存取基地節(jié)點(diǎn)實地址處的數(shù)據(jù)時使用該網(wǎng)絡(luò)地址。
如前所述的混合NUMA/S-COMA系統(tǒng)有多種優(yōu)點(diǎn)。利用所提供的真正綜合的系統(tǒng),可避免對獨(dú)立的S-COMA關(guān)聯(lián)和通訊設(shè)備及獨(dú)立的NUMA關(guān)聯(lián)和通訊設(shè)備的需要。如本文所述,盡管集成了S-COMA的功能,但可使用NUMA管理器來移動數(shù)據(jù)并保持節(jié)點(diǎn)間的關(guān)聯(lián)性。利用本文所提供的組合系統(tǒng),可以獲得S-COMA的靈活的大巨的主存儲器高速緩沖存儲器,它可在不需要專用高速緩沖存儲器的情況下為各個節(jié)點(diǎn)提供(超越純粹的NUMA實施方案的)額外緩存容量。依照本發(fā)明實現(xiàn)的上述混合系統(tǒng)能獲得S-COMA實施方案的非常高的效率,從而能獲得最佳的NUMA機(jī)制并避免在基地節(jié)點(diǎn)上作全局址址與實地址之間的變換。
連同附圖從以下對本發(fā)明的某些實施例的詳細(xì)說明中可以更容易地理解本發(fā)明的上述目的、優(yōu)點(diǎn)和特征以及其它內(nèi)容,在附圖中圖1是典型的均等存儲器存取(UMA)結(jié)構(gòu)的一個實施例的圖;圖2是非均等存儲器存取(NUMA)結(jié)構(gòu)的一個實施例的圖;圖3說明了一通用的只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(S-COMA);圖4是對依照本發(fā)明實現(xiàn)的混合NUMA/S-COMA系統(tǒng)的高層說明;圖5是本發(fā)明的混合NUMA/S-COMA系統(tǒng)中的在客戶節(jié)點(diǎn)處實現(xiàn)的存儲器請求邏輯的一個實施例的流程圖;圖6是本發(fā)明的混合NUMA/S-COMA系統(tǒng)中的在基地節(jié)點(diǎn)處實現(xiàn)的存儲器請求邏輯的流程圖;圖7是本發(fā)明的混合NUMA/S-COMA系統(tǒng)中的發(fā)請求的節(jié)點(diǎn)處的輸入存儲器請求處理邏輯的一個實施例的流程圖;圖8是本發(fā)明的混合NUMA/S-COMA系統(tǒng)中的基地節(jié)點(diǎn)處的混合存儲器輸出處理邏輯的一個實施例的流程圖;圖9是本發(fā)明的混合NUMA/S-COMA系統(tǒng)的發(fā)請求的節(jié)點(diǎn)處的混合存儲器輸入處理邏輯的一個實施例的流程圖。
本發(fā)明提供了一種這樣的方法,它用于在非均等存儲器存取(NUMA)基礎(chǔ)結(jié)構(gòu)的頂層上形成只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(S-COMA)系統(tǒng),以便將NUMA關(guān)聯(lián)設(shè)備用于數(shù)據(jù)訪問捕獲、數(shù)據(jù)移動和關(guān)聯(lián)性管理。依照這種S-COMA組織,可將各節(jié)點(diǎn)上的主存儲器的一部分用作全局存儲器的數(shù)據(jù)高速緩沖存儲器。這些S-COMA高速緩沖存儲器中的每個高速緩沖存儲器均由對它們進(jìn)行使用的本地節(jié)點(diǎn)來管理。
利用本發(fā)明,對來自基地節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行緩存的各個節(jié)點(diǎn)均能將數(shù)據(jù)緩存在正常的NUMA層次結(jié)構(gòu)內(nèi),并且能在彼此無關(guān)且在基地節(jié)點(diǎn)不特別通知它們緩存決定的情況下可選地將數(shù)據(jù)緩存在S-COMA高速緩沖存儲器內(nèi)。
以上內(nèi)容是將NUMA基地本地實地址用作用于S-COMA高速緩沖存儲器的全局地址并將基地本地實地址變換成用于執(zhí)行客戶節(jié)點(diǎn)上的關(guān)聯(lián)協(xié)議的客戶本地實地址而實現(xiàn)的。同樣,就從客戶傳到基地的關(guān)聯(lián)消息而言,在傳給與節(jié)點(diǎn)相連的網(wǎng)絡(luò)之前將客戶本地實地址變換成全局地址,該全局地址呈基地本地實地址的形式。
在標(biāo)準(zhǔn)的S-COMA實現(xiàn)形式中,所有的節(jié)點(diǎn)都保持著用于所訪問的全局?jǐn)?shù)據(jù)的S-COMA高速緩沖存儲器,即使是數(shù)據(jù)的基地節(jié)點(diǎn)也是這樣。在基地節(jié)點(diǎn)使數(shù)據(jù)進(jìn)入其本地存儲器以供客戶節(jié)點(diǎn)使用時,該基地節(jié)點(diǎn)就必須將數(shù)據(jù)保持在自己的S-COMA高速緩沖存儲器內(nèi)。為了S-COMA設(shè)備能對數(shù)據(jù)的訪問進(jìn)行控制以便進(jìn)行關(guān)聯(lián)性管理,這一點(diǎn)是必需的。
利用本發(fā)明,S-COMA高速緩沖存儲器僅用于保存在別處返回的被緩存的數(shù)據(jù)行。不必將數(shù)據(jù)行緩存在基地節(jié)點(diǎn)的S-COMA高速緩沖存儲器內(nèi),因為,所有關(guān)聯(lián)性管理都是由基地NUMA設(shè)備進(jìn)行的,也就是說,通常的(非S-COMA)存儲器保存著本地數(shù)據(jù)行,并且NUMA目錄會跟蹤在該節(jié)點(diǎn)處返回的數(shù)據(jù)行的使用。在需要關(guān)聯(lián)動作時,就用標(biāo)準(zhǔn)的NUMA機(jī)制把關(guān)聯(lián)消息傳給其它節(jié)點(diǎn),并將發(fā)送數(shù)據(jù)行的基地實地址。
以與S-COMA系統(tǒng)上的全局地址同樣的方式使用基地實地址。S-COMA客戶節(jié)點(diǎn)會對傳入和傳出該節(jié)點(diǎn)的地址進(jìn)行“邊界函數(shù)”變換。這一點(diǎn)與在標(biāo)準(zhǔn)S-COMA實現(xiàn)方案中出現(xiàn)的在全局地址與本地實地址之間進(jìn)行變換的變換相類似。但是,在所述的混合實現(xiàn)方案中,客戶直接在基地節(jié)點(diǎn)所使用的基地實地址與表示客戶的本地實存儲器中的S-COMA高速緩沖存儲器的客戶實地址之間進(jìn)行變換。
圖4示出了本發(fā)明的一個實施例,它說明了本文所提出的用于混合NUMA/S-COMA環(huán)境的多種地址之間的關(guān)系。所說的環(huán)境包括基地節(jié)點(diǎn)40和客戶節(jié)點(diǎn)42,每個節(jié)點(diǎn)均分別包括實地址(RAH)和(RAL)。和圖3一樣,客戶節(jié)點(diǎn)42保持有本地實地址空間46內(nèi)的S-COMA高速緩沖存儲器44,它獨(dú)立于基本節(jié)點(diǎn)40。但是,與圖3的實施例不同,不按規(guī)范的全局地址而是按基地節(jié)點(diǎn)40所使用的實地址(RAH)或(RAhome)進(jìn)行基地節(jié)點(diǎn)40與客戶節(jié)點(diǎn)42之間的通訊??蛻艄?jié)點(diǎn)42將NUMA管理器中按邊界函數(shù)49接收到的實地址變換成相應(yīng)的本地實地址(RAL)或(RALocal),該地址指向客戶的S-COMA高速緩沖存儲器44。
本發(fā)明的一個方面是進(jìn)行從按整個系統(tǒng)來使用的NUMA地址到局部地址的變換,所述局部地址僅能應(yīng)用于與基地相通訊的各個節(jié)點(diǎn)上的S-COMA高速緩沖存儲器。
諸如NUMA之類的全局存儲器系統(tǒng)使用了分布于系統(tǒng)中多個節(jié)點(diǎn)的地址空間。該地址本身表示節(jié)點(diǎn)為所尋址的數(shù)據(jù)提供了后備存儲器。例如,在一個很簡單的系統(tǒng)中,地址的高位字節(jié)可指定節(jié)點(diǎn)號,而地址的其余部分則指定節(jié)點(diǎn)中的存儲器存儲單元。
在一個節(jié)點(diǎn)接收到了輸入自其它節(jié)點(diǎn)的基地地址時,此節(jié)點(diǎn)就將該地址變換成某種“相關(guān)地址”即直接對應(yīng)于基地地址的本地地址,以便作進(jìn)一步處理。這樣作的好處是,本地節(jié)點(diǎn)可同S-COMA一樣以與系統(tǒng)其它部分無關(guān)的方式管理自己的地址。在各個節(jié)點(diǎn)均運(yùn)行有一獨(dú)立的操作系統(tǒng)實例的多操作系統(tǒng)環(huán)境中,這一點(diǎn)特別重要。請注意,還可用“節(jié)點(diǎn)的子集”來代替術(shù)語“各個節(jié)點(diǎn)”。為簡明起見,以下使用術(shù)語“各個節(jié)點(diǎn)”,并將該術(shù)語理解成是指操作受控于單個操作系統(tǒng)實例的一個節(jié)點(diǎn)或一組節(jié)點(diǎn)。
在本文中,地址變換機(jī)制是指邊界函數(shù)。在各個節(jié)點(diǎn)上,邊界函數(shù)保持有一目錄,它用于跟蹤在被節(jié)點(diǎn)發(fā)送或接收時需要進(jìn)行變換的存儲器地址。可通過(用于本地存儲器訪問的)窺探邏輯和(用于從遠(yuǎn)程節(jié)點(diǎn)進(jìn)行訪問的)網(wǎng)絡(luò)邏輯來存取所說的目錄。各個目錄的條目均包含有所關(guān)心的數(shù)據(jù)行的本地實地址和相應(yīng)的基地節(jié)點(diǎn)地址。如果條目中的標(biāo)志指示出需要進(jìn)行變換,那么,就用來自目錄條目的“相關(guān)地址”來代替輸入的地址。
依照上述S-COMA組織,將主存儲器的一部分用作全局存儲器的數(shù)據(jù)高速緩沖存儲器。這些S-COMA高速緩沖存儲器中的每一個均由使用它們的本地節(jié)點(diǎn)來管理。
將NUMA機(jī)制用于提供數(shù)據(jù)訪問捕獲、數(shù)據(jù)移動和關(guān)聯(lián)機(jī)制。這就避免了需要對用于數(shù)據(jù)訪問捕獲、數(shù)據(jù)移動和關(guān)聯(lián)的獨(dú)立S-COMA機(jī)制。以下進(jìn)一步逐條說明本發(fā)明的這些方面。
1、起點(diǎn)是諸如圖2所示的NUMA系統(tǒng)。在該NUMA系統(tǒng)中,系統(tǒng)的實地址空間分布于節(jié)點(diǎn)之間并且是可共享的(即任何一個節(jié)點(diǎn)都可訪問任何一個存儲器存儲單元)。NUMA系統(tǒng)包含有這樣的設(shè)備,它用于保持各存儲器存儲單元的關(guān)聯(lián)性、保持可對特定存儲器存儲單元進(jìn)行緩存的客戶列表并將關(guān)聯(lián)請求發(fā)送給基地或客戶存儲器存儲單元。
2、關(guān)聯(lián)性目錄各個NMC均保持有一個表,該表帶一個條目,此條目用于存儲器的在節(jié)點(diǎn)處返回的各個數(shù)據(jù)行。在每一個條目中都有緩存有數(shù)據(jù)行的客戶節(jié)點(diǎn)的列表。所說的表以實存儲器地址為索引。
3、系統(tǒng)軟件將各節(jié)點(diǎn)上的主存儲器的一部分分配為S-COMA高速緩沖存儲器。
4、邊界函數(shù)變換表每個NMC均保持有一個表,該表帶有一個條目,此條目用于存儲器的被用作S-COMA高速緩沖存儲器的各個頁。每個條目中都有包含著所緩存的數(shù)據(jù)的基地節(jié)點(diǎn)實地址(RAhome)。該表由本地實存儲器地址(RAlocal)來索引。盡管可能是低效的查找,但仍可通過將基地實存儲器地址用作輸入并發(fā)送本地實存儲器地址來找到一個條目。
5、NUMA存儲器子系統(tǒng)將本地S-COMA高速緩沖存儲器范圍內(nèi)的所有地址均看作是在別處返回的地址。也就是說,本地NMC不啟動用于本地S-COMA高速緩沖存儲器范圍內(nèi)的地址的關(guān)聯(lián)動作,相反,它進(jìn)行邊界函數(shù)變換,并將存儲器請求傳給與邊界函數(shù)變換表中的目標(biāo)本地實地址相對應(yīng)的基地節(jié)點(diǎn)實地址(RAhome)的基地。
6、每個NMC均僅為從節(jié)點(diǎn)輸出或輸入給節(jié)點(diǎn)的操作而查找BF變換表,然后僅為不是基地的地址查找BF變換表。這稱為邊界函數(shù)。
7、用來自上述變換表的“相關(guān)值”數(shù)據(jù)地址來代替輸出數(shù)據(jù)中的數(shù)據(jù)地址。
當(dāng)客戶節(jié)點(diǎn)通過其本地實地址來訪問S-COMA高速緩沖存儲器中的數(shù)據(jù)并且本地關(guān)聯(lián)目錄中的狀態(tài)表示無效時,通常的NUMA機(jī)制就會阻止所說的本地訪問,BF將本地實地址變換為基地節(jié)點(diǎn)實地址,并且,將通過通常的NUMA機(jī)制將對數(shù)據(jù)的請求發(fā)送給基地節(jié)點(diǎn)。請注意,NUMA子系統(tǒng)可發(fā)送對數(shù)據(jù)行的請求,因為,網(wǎng)絡(luò)地址是實際的NUMA地址。
不執(zhí)行任何邊界函數(shù)的基地節(jié)點(diǎn)將會接收請求并用標(biāo)準(zhǔn)的NUMA邏輯來作用于該請求。在響應(yīng)消息中將所請求的數(shù)據(jù)送回給客戶節(jié)點(diǎn)。
客戶節(jié)點(diǎn)接收對所請求的數(shù)據(jù)的響應(yīng)并對網(wǎng)絡(luò)地址(即基地節(jié)點(diǎn)實地址)進(jìn)行BF查找。若在BF變換表中找到了RAhome,則BF用來自該變換表的相應(yīng)本地實地址來代替所說的地址。存儲器控制器在關(guān)聯(lián)目錄中將數(shù)據(jù)行標(biāo)記為有效并將數(shù)據(jù)應(yīng)答傳給客戶節(jié)點(diǎn)的發(fā)請求的處理器。這就完成了請求。
當(dāng)客戶節(jié)點(diǎn)通過其本地實地址來訪問S-COMA高速緩沖存儲器中的數(shù)據(jù)并且所述狀態(tài)表示有效時,數(shù)據(jù)行就處于S-COMA高速緩沖存儲器內(nèi)并且不需要有其它的動作。不需要BF變換,并且,通常的NUMA僅按本地存儲器的延遲時間將數(shù)據(jù)從本地存儲器返回。
當(dāng)基地節(jié)點(diǎn)將關(guān)聯(lián)性請求送出給客戶節(jié)點(diǎn)時,基地節(jié)點(diǎn)通過使用它本身的NUMA地址(它代替純粹S-COMA系統(tǒng)中的全局地址)來作到這一點(diǎn)。各個客戶節(jié)點(diǎn)均能接收上述請求,并且,正如在BF變換表中找到的那樣,BF將輸入的地址(基地節(jié)點(diǎn)實地址)變換成本地地址。然后,用本地地址(RAlocal)在本地處理所說的請求。
圖5-9說明了本發(fā)明混合NUMA/S-COMA系統(tǒng)中實現(xiàn)的邏輯流程的一個實施例。在以下的說明中,假定是圖4的系統(tǒng),其中,發(fā)請求的處理器包括客戶節(jié)點(diǎn),并且,存儲器管理單元(MMU)包括如前所述的NUMA存儲器控制器(NMC)。此外,物理地址(PA)等價于如前所述的實地址(RA)。
從圖5開始,邏輯流程始于標(biāo)號100,客戶節(jié)點(diǎn)或發(fā)請求的處理器將數(shù)據(jù)行的虛地址(VA)提供給本地存儲器管理單元(MMU)110。本地MMU將VA轉(zhuǎn)換成物理地址(PA),并且,邏輯流程確定在發(fā)請求的處理器的硬件高速緩沖存儲器之一中是否存在有預(yù)定數(shù)據(jù)行的有效拷貝120。正如在本文中所使用的那樣,“第2級高速緩沖存儲器”是指以下將進(jìn)一步說明的通?;驑?biāo)準(zhǔn)的高速緩沖存儲器而不是S-COMA高速緩沖存儲器。如果數(shù)據(jù)存在于本地標(biāo)準(zhǔn)高速緩沖存儲器內(nèi),則L2高速緩沖存儲器就將數(shù)據(jù)行提供給發(fā)請求的處理器130,并且,結(jié)束數(shù)據(jù)檢索過程140。
如果物理數(shù)據(jù)不存在于請求者的硬件高速緩沖存儲器之一中,則L2高速緩沖存儲器將物理地址(PA)提供給發(fā)請求的子系統(tǒng)的NUMA存儲器控制器(NMC)150,在NMC處查詢物理地址是否是傳給發(fā)請求的處理器的本地物理地址160。如果“是”,則使用圖8的混合存儲器輸出處理170,如以下所述。從本質(zhì)上說,圖8的邏輯流程確定物理地址是否是發(fā)請求的處理器的本地S-COMA高速緩沖存儲器的一部分。如果物理地址不包括本地物理地址,則數(shù)據(jù)行處于遠(yuǎn)程物理地址,并且,所述邏輯流程返回至純粹的NUMA處理實例,其中,發(fā)請求的NMC將數(shù)據(jù)請求傳給基地子系統(tǒng)180,該基地子系統(tǒng)具有消息請求中的數(shù)據(jù)地址。
所述邏輯流程從發(fā)請求的節(jié)點(diǎn)轉(zhuǎn)向190圖6的基地節(jié)點(diǎn)處理過程200,其中,基地子系統(tǒng)接收請求消息并對關(guān)聯(lián)目錄進(jìn)行更新以反映對讀取請求的應(yīng)答,即數(shù)據(jù)行的新狀態(tài)210。數(shù)據(jù)行的新狀態(tài)表示處理節(jié)點(diǎn)具有數(shù)據(jù)行的有效拷貝,它是傳統(tǒng)的NUMA處理過程,以跟蹤正在對該受支配的數(shù)據(jù)行進(jìn)行緩存的那些客戶節(jié)點(diǎn)以及數(shù)據(jù)行的狀態(tài),即有效或無效。然后,基地子系統(tǒng)確定它在基地存儲器內(nèi)是否具有有效的數(shù)據(jù)拷貝220,如果“否”,則基地子系統(tǒng)使用傳統(tǒng)的NUMA處理過程,以使從緩存客戶子系統(tǒng)中再調(diào)用所緩存的數(shù)據(jù)行拷貝230。一旦基地子系統(tǒng)在存儲器中具有有效的數(shù)據(jù)行拷貝,就將數(shù)據(jù)提供給發(fā)請求的子系統(tǒng)240,并且,所述邏輯流程轉(zhuǎn)向發(fā)請求的子系統(tǒng)以便如圖7所示那樣作進(jìn)一步的處理250。
在從基地子系統(tǒng)接收到返回數(shù)據(jù)時,就通過確定在客戶節(jié)點(diǎn)處接收到的物理地址是否是本地物理地址310來開始發(fā)請求的子系統(tǒng)處的處理過程300。如果不是,則依照本發(fā)明進(jìn)行圖9的混合存儲器輸入處理310。
如圖9所示,輸入處理500始于在發(fā)請求的子系統(tǒng)處從基地子系統(tǒng)接收請求數(shù)據(jù)510。然后,發(fā)請求的NMC通過將所接收到的數(shù)據(jù)地址用作如前所述的“網(wǎng)絡(luò)地址”而對響應(yīng)消息中的數(shù)據(jù)地址執(zhí)行邊界函數(shù)目錄查找520。如果在邊界函數(shù)變換表中找到了網(wǎng)絡(luò)地址(NA)530,則將數(shù)據(jù)地址從網(wǎng)絡(luò)地址變換成邊界函數(shù)變換表中的相應(yīng)本地實地址(RAlocal)以供發(fā)請求的子系統(tǒng)使用540。如果在變換表中未找到網(wǎng)絡(luò)地址,或者已根據(jù)邊界函數(shù)進(jìn)行了地址變換,則處理過程返回至圖7的邏輯流程550。
按圖7的發(fā)請求的子系統(tǒng)的處理過程繼續(xù),如果物理地址是本地物理地址,或者在圖9的混合存儲器輸入處理過程之后,發(fā)請求的NMC將數(shù)據(jù)應(yīng)答傳給發(fā)請求的處理器330,并且,可任選地將數(shù)據(jù)行存儲在L2高速緩沖存儲器(即通常的硬件高速緩沖存儲器)內(nèi)340,以便后續(xù)使用。這就結(jié)束了本發(fā)明這一實施例的處理過程350。
參照圖5,如果物理地址是本地地址,那么,就可從查詢160開始執(zhí)行圖8的混合存儲器輸出處理過程。這一處理過程通過發(fā)請求的NMC存取關(guān)聯(lián)目錄以確定在請求者的本地中數(shù)據(jù)行是否處于有效狀態(tài)410而始于發(fā)請求的子系統(tǒng)400。如果回答是“是”,則本地存儲器在與存儲器是否是S-COMA高速緩沖存儲器無關(guān)的請況下將數(shù)據(jù)行提供給發(fā)請求的存儲器430,從而結(jié)束了檢索處理過程440。
如果本地存儲器中沒有有效的數(shù)據(jù)拷貝,則邏輯流程確定是否需要邊界函數(shù)450,即通過確定所請求的地址是否在S-COMA高速緩沖存儲器的范圍內(nèi)來確定是否需要邊界函數(shù)。如果為“否”,則不是S-COMA環(huán)境,并且,數(shù)據(jù)被檢查后輸出給系統(tǒng)的另一個節(jié)點(diǎn)。如果所選定的地址是S-COMA高速緩沖存儲器的一部分,則必須將該地址變換為子系統(tǒng)所能理解的基地地址。因此,請求邊界函數(shù)可存取邊界函數(shù)變換表并將請求中的本地實地址變換成網(wǎng)絡(luò)地址460,然后,將該網(wǎng)絡(luò)地址如前所述那樣傳給基地子系統(tǒng)470,從而結(jié)束了圖8的混合輸出處理過程480。
概括地說,本領(lǐng)域的技術(shù)人員會從上述說明中認(rèn)識到,本文所述的混合NUMA/S-COMA系統(tǒng)有多種優(yōu)點(diǎn)。所提供的系統(tǒng)包括一個真正綜合的系統(tǒng),其中,通過使用NUMA關(guān)聯(lián)和通訊設(shè)備可消除對獨(dú)立的S-COMA關(guān)聯(lián)和通訊設(shè)備的需要。如本文所述,盡管集成了S-COMA的功能,但可使用NUMA管理器來移動數(shù)據(jù)并保持節(jié)點(diǎn)間的關(guān)聯(lián)性。利用所提供的組合系統(tǒng),可以獲得S-COMA的靈活的大型主存儲器高速緩沖存儲器,它可在不需要專用高速緩沖存儲器的情況下為各個節(jié)點(diǎn)提供超越純粹NUMA形式的額外的緩存容量。最佳的是,所提供的實現(xiàn)形式可避免在基地節(jié)點(diǎn)上作全局址址與實地址之間的變換。
本發(fā)明例如可被包括在一產(chǎn)品(例如一個或多個計算機(jī)程序產(chǎn)品)中,該產(chǎn)品例如帶有計算機(jī)可用的媒體。這種媒體中例如帶有計算用于提供和發(fā)揮本發(fā)明的效能的計算機(jī)可讀程序代碼裝置。所述的產(chǎn)品可被包括為計算機(jī)系統(tǒng)的一部分或者單獨(dú)出售。
此外,可提供至少一種機(jī)器可讀的程序存儲設(shè)備,它以有形的方式實現(xiàn)了至少一種機(jī)器可執(zhí)行的、由指令構(gòu)成的程序,以便實現(xiàn)本發(fā)明的效能。
以舉例的方式提供了本文所述的流程圖。在不脫離本發(fā)明精神的情況下,本文所述的流程圖或其步驟(或操作)可能有變化的形式。例如,在某些情況下,可按不同的次序執(zhí)行上述步驟,或者對這些步驟進(jìn)行增、刪和修改。所有這些變化形式均被認(rèn)為是包括了如后附權(quán)利要求所述的本發(fā)明的一部分。
盡管依照本發(fā)明的某些最佳實施例詳細(xì)說明了本發(fā)明,但是,本領(lǐng)域的技術(shù)人員可實現(xiàn)多種改進(jìn)形式和變化形式。因此,后附權(quán)利要求涵蓋了本發(fā)明實質(zhì)精神和范圍內(nèi)的所有改進(jìn)形式和變化形式。
權(quán)利要求
1.一種混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng),該系統(tǒng)與具有多個彼此相連的節(jié)點(diǎn)的計算機(jī)一道使用,其中,將數(shù)據(jù)作為多個頁存儲在混合NUMA/S-COMA存儲器系統(tǒng)內(nèi),每個頁均包括至少一個數(shù)據(jù)行,所述混合NUMA/S-COMA存儲器系統(tǒng)包括多個NUMA存儲器,它們配置成能存儲至少一個數(shù)據(jù)行,所述多個NUMA存儲器的每個NUMA存儲器均駐留于計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)中的不同節(jié)點(diǎn),并且,所述多個NUMA存儲器包括NUMA關(guān)聯(lián)子系統(tǒng),它用于協(xié)調(diào)數(shù)據(jù)在多個NUMA存儲器之間的傳遞,以及至少一個S-COMA高速緩沖存儲器,它配置成能存儲上述多個頁中的至少一個頁,所述至少一個S-COMA高速緩沖存儲器的每個S-COMA高速緩沖存儲器駐留于上述計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)中的不同節(jié)點(diǎn),所述至少一個S-COMA高速緩沖存儲器在將數(shù)據(jù)傳給計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)內(nèi)的另一個節(jié)點(diǎn)或從計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)內(nèi)的另一個節(jié)點(diǎn)中接收數(shù)據(jù)時使用了所述NUMA關(guān)聯(lián)子系統(tǒng)。
2.如權(quán)利要求1的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,所述至少一個S-COMA高速緩沖存儲器包括多個S-COMA高速緩沖存儲器,并且,所述NUMA關(guān)聯(lián)子系統(tǒng)包括NUMA關(guān)聯(lián)協(xié)議,它位于上述多個節(jié)點(diǎn)中的一個可將來自所述計算機(jī)系統(tǒng)的所述多個節(jié)點(diǎn)中的基地節(jié)點(diǎn)的數(shù)據(jù)緩存在上述S-COMA高速緩沖存儲器之一內(nèi)的客戶節(jié)點(diǎn)上,所述NUMA關(guān)聯(lián)協(xié)議用于在前述客戶節(jié)點(diǎn)與基地節(jié)點(diǎn)之間傳送S-COMA關(guān)聯(lián)消息。
3.如權(quán)利要求2的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,所述客戶節(jié)點(diǎn)處的帶有關(guān)聯(lián)協(xié)議的NUMA關(guān)聯(lián)子系統(tǒng)包括一位于客戶節(jié)點(diǎn)處的邊界函數(shù)變換表,它用于在所述客戶節(jié)點(diǎn)的一個S-COMA高速緩沖存儲器與基地節(jié)點(diǎn)之間發(fā)送消息時在基地節(jié)點(diǎn)實地址與客戶節(jié)點(diǎn)實地址之間作轉(zhuǎn)換,其中,所述基地節(jié)點(diǎn)實地址包括這樣一個網(wǎng)絡(luò)地址,所述NUMA通訊系統(tǒng)在基地節(jié)點(diǎn)與客戶節(jié)點(diǎn)的S-COMA高速緩沖存儲器之間傳遞數(shù)據(jù)時使用該網(wǎng)絡(luò)地址。
4.如權(quán)利要求3的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,該系統(tǒng)還包括一個將所述多個節(jié)點(diǎn)連接起來的通訊網(wǎng)絡(luò),其中,所述NUMA關(guān)聯(lián)子系統(tǒng)包括用于使用上述邊界函數(shù)變換表的裝置以便將客戶節(jié)點(diǎn)實地址變換成基地節(jié)點(diǎn)實地址,所述基地節(jié)點(diǎn)實地址包括一網(wǎng)絡(luò)地址,以便在將消息從前述客戶節(jié)點(diǎn)傳給基地節(jié)點(diǎn)時傳到將上述多個節(jié)點(diǎn)相互連接起來的通訊網(wǎng)絡(luò)上。
5.如權(quán)利要求3的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,該系統(tǒng)還包括將所述多個節(jié)點(diǎn)連接起來的通訊網(wǎng)絡(luò),其中,所述NUMA關(guān)聯(lián)子系統(tǒng)包括用于在接收到客戶節(jié)點(diǎn)處的網(wǎng)絡(luò)地址時檢查上述邊界函數(shù)變換表并用于在所述網(wǎng)絡(luò)地址與從基地節(jié)點(diǎn)到所述客戶節(jié)點(diǎn)的一個S-COMA高速緩沖存儲器的消息相關(guān)聯(lián)時通過利用上述邊界函數(shù)變換表將所述網(wǎng)絡(luò)地址轉(zhuǎn)換成客戶節(jié)點(diǎn)實地址的裝置,所述網(wǎng)絡(luò)地址包括一基地節(jié)點(diǎn)實地址。
6.如權(quán)利要求1的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,所述至少一個S-COMA高速緩沖存儲器包括一在所述多個節(jié)點(diǎn)中的至少一個客戶節(jié)點(diǎn)處實現(xiàn)的S-COMA高速緩沖存儲器,以便將在別處返回的至少一個被緩存的頁保存在所說的計算機(jī)內(nèi)。
7.如權(quán)利要求6的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,所述NUMA關(guān)聯(lián)子系統(tǒng)包括標(biāo)準(zhǔn)的NUMA關(guān)聯(lián)機(jī)制,所述至少一個S-COMA高速緩沖存儲器用該標(biāo)準(zhǔn)的NUMA關(guān)聯(lián)機(jī)制將S-COMA關(guān)聯(lián)消息發(fā)送給前述多個節(jié)點(diǎn)中的其它節(jié)點(diǎn)。
8.如權(quán)利要求6的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,所述客戶節(jié)點(diǎn)包括用于在不將存儲決定通知給基地節(jié)點(diǎn)的情況下將數(shù)據(jù)存儲在客戶節(jié)點(diǎn)處的S-COMA高速緩沖存儲器內(nèi)的裝置。
9.如權(quán)利要求8的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,所述客戶節(jié)點(diǎn)和基地節(jié)點(diǎn)具有獨(dú)立的操作系統(tǒng)。
10.如權(quán)利要求6的混合NUMA/S-COMA存儲器系統(tǒng),其特征在于,所述計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)包括多個客戶節(jié)點(diǎn),每個客戶節(jié)點(diǎn)均具有一S-COMA高速緩沖存儲器,并且包括用于對該S-COMA進(jìn)行管理的裝置,這個用于進(jìn)行管理的裝置包括用于使用NUMA關(guān)聯(lián)系統(tǒng)以便對S-COMA高速緩沖存儲器進(jìn)行關(guān)聯(lián)性管理的裝置。
11.一種用于在計算機(jī)系統(tǒng)的客戶節(jié)點(diǎn)與基地節(jié)點(diǎn)之間傳遞數(shù)據(jù)的方法,所述計算機(jī)系統(tǒng)具有多個彼此相連的節(jié)點(diǎn),其中,所述計算機(jī)系統(tǒng)使用了混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng),這種系統(tǒng)具有多個能存儲數(shù)據(jù)的NUMA存儲器,每個NUMA存儲器均駐留于上述計算機(jī)系統(tǒng)的不同節(jié)點(diǎn);以及,至少一個能存儲數(shù)據(jù)的S-COMA高速緩沖存儲器,每個S-COMA高速緩沖存儲器均駐留于上述計算機(jī)系統(tǒng)的不同節(jié)點(diǎn),所述客戶節(jié)點(diǎn)包括由至少一個S-COMA高速緩沖存儲器構(gòu)成的S-COMA高速緩沖存儲器,所述傳遞方法包括(i)在前述計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)中的客戶節(jié)點(diǎn)處生成對存儲器實地址的數(shù)據(jù)請求;(ii)確定該實地址是否包括客戶節(jié)點(diǎn)處的本地實地址;(iii)當(dāng)所述實地址包括一本地實地址時,確定是否需要對上述本地實地址作邊界函數(shù)變換,以便將該本地實地址變換成基地節(jié)點(diǎn)實地址;以及,(iv)在需要所述邊界函數(shù)變換時,將所述本地實地址變換成基地節(jié)點(diǎn)實地址,其中,所述基地節(jié)點(diǎn)實地址包括這樣一個網(wǎng)絡(luò)地址,前述客戶節(jié)點(diǎn)在請求存取基地節(jié)點(diǎn)實地址處的數(shù)據(jù)時使用該網(wǎng)絡(luò)地址。
12.如權(quán)利要求11的方法,其特征在于,所述本地實地址包括一S-COMA高速緩沖存儲器地址,所述方法還包括利用前述多個NUMA存儲器的NUMA關(guān)聯(lián)子系統(tǒng)將一請求消息從前述客戶節(jié)點(diǎn)傳給基地節(jié)點(diǎn),所述請求消息包括上述網(wǎng)絡(luò)地址,該網(wǎng)絡(luò)地址包括所請求的數(shù)據(jù)的基地節(jié)點(diǎn)實地址。
13.如權(quán)利要求12的方法,其特征在于,該方法還包括在前述客戶節(jié)點(diǎn)處從所述基地節(jié)點(diǎn)中接收一應(yīng)答消息,所述應(yīng)答消息包括一實地址,并且,所述方法還包括確定前述應(yīng)答消息的實地址是否包括所述客戶節(jié)點(diǎn)的本地實地址。
14.如權(quán)利要求13的方法,其特征在于,所述實地址不同于前述客戶節(jié)點(diǎn)處的本地實地址,所述方法包括在客戶節(jié)點(diǎn)處對前述應(yīng)答消息中的實地址進(jìn)行邊界函數(shù)目錄查找,如果在邊界函數(shù)目錄查找中找到了所說的實地址,就利用用于前述客戶節(jié)點(diǎn)的邊界函數(shù)變換表將該實地址從網(wǎng)絡(luò)地址變換成相應(yīng)的本地實地址。
15.如權(quán)利要求11的方法,其特征在于,所述客戶節(jié)點(diǎn)包括一NUMA存儲器控制器,并且,所述方法還包括請求上述客戶節(jié)點(diǎn)的NUMA存儲器控制器將數(shù)據(jù)請求從客戶節(jié)點(diǎn)傳給使用上述網(wǎng)絡(luò)地址的基地節(jié)點(diǎn),所述網(wǎng)絡(luò)地址包括上述基地節(jié)點(diǎn)實地址。
16.如權(quán)利要求11的方法,其特征在于,當(dāng)所述實地址不包括上述確定步驟(iii)中的本地實地址時,所述方法還包括在前述客戶節(jié)點(diǎn)處請求NUMA存儲器控制器將數(shù)據(jù)請求傳給將前述實地址用作基地節(jié)點(diǎn)實地址的基地節(jié)點(diǎn)。
17.一種用于制造混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng)的方法。該方法包括提供一計算機(jī)系統(tǒng),它帶有多個彼此相連的節(jié)點(diǎn);使該計算機(jī)系統(tǒng)配備有一非均等存儲器存取(NUMA)結(jié)構(gòu),所述NUMA結(jié)構(gòu)包括NUMA關(guān)聯(lián)子系統(tǒng);以及在前述計算機(jī)系統(tǒng)的多個節(jié)點(diǎn)中的至少一個節(jié)點(diǎn)處形成只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(S-COMA)高速緩沖存儲器,上述形成S-COMA高速緩沖存儲器的步驟包括將上述S-COMA配置成能在不使用S-COMA關(guān)聯(lián)子系統(tǒng)的情況下使用所述NUMA關(guān)聯(lián)子系統(tǒng)來進(jìn)行數(shù)據(jù)訪問捕獲、數(shù)據(jù)移動以及關(guān)聯(lián)性管理。
18.一種產(chǎn)品,它包括至少一種計算機(jī)可用的媒體,該媒體中包括計算機(jī)可讀的程序代碼裝置,以便在計算機(jī)系統(tǒng)的客戶節(jié)點(diǎn)與基地節(jié)點(diǎn)之間傳遞數(shù)據(jù),所述計算機(jī)系統(tǒng)具有多個彼此相連的節(jié)點(diǎn),其中,所述計算機(jī)系統(tǒng)使用了混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng),這種系統(tǒng)具有多個能存儲數(shù)據(jù)的NUMA存儲器,每個NUMA存儲器均駐留于存儲器系統(tǒng)的不同節(jié)點(diǎn);以及,至少一個能存儲數(shù)據(jù)的S-COMA高速緩沖存儲器,每個S-COMA高速緩沖存儲器均駐留于計算機(jī)系統(tǒng)的不同節(jié)點(diǎn),所述客戶節(jié)點(diǎn)包括由至少一個上述S-COMA高速緩沖存儲器構(gòu)成的S-COMA高速緩沖存儲器,所述產(chǎn)品中的計算機(jī)可讀程序代碼裝置包括(i)用于使計算機(jī)在所述的多個節(jié)點(diǎn)的客戶節(jié)點(diǎn)處生成帶有存儲器實地址的數(shù)據(jù)請求的計算機(jī)可讀程序代碼裝置;(ii)用于使計算機(jī)確定上述實地址是否包括客戶節(jié)點(diǎn)處的本地實地址的計算機(jī)可讀程序代碼裝置;(iii)用于使計算機(jī)在所述實地址包括一本地實地址時確定是否需要邊界函數(shù)變換的計算機(jī)可讀程序代碼裝置,所述邊界函數(shù)變換可將本地實地址變換成基地節(jié)點(diǎn)實地址;以及(iv)用于使計算機(jī)在上述邊界函數(shù)變換有需要時將本地實地址變換成基地節(jié)點(diǎn)實地址的計算機(jī)可讀程序代碼裝置,其中,所述基地節(jié)點(diǎn)實地址包括這樣一個網(wǎng)絡(luò)地址,客戶節(jié)點(diǎn)在請求存取基地節(jié)點(diǎn)實地址處的數(shù)據(jù)時使用該網(wǎng)絡(luò)地址。
19.如權(quán)利要求18的產(chǎn)品,其特征在于,所述本地實地址包括一S-COMA高速緩沖存儲器地址,所述產(chǎn)品還包括計算機(jī)可讀程序代碼裝置,它用于使計算機(jī)利用上述由多個NUMA存儲器構(gòu)成的NUMA關(guān)聯(lián)子系統(tǒng)將一請求消息從前述客戶節(jié)點(diǎn)傳給基地節(jié)點(diǎn),所述請求請求包括上述網(wǎng)絡(luò)地址,該網(wǎng)絡(luò)地址包括所請求數(shù)據(jù)的基地節(jié)點(diǎn)實地址。
20.如權(quán)利要求19的產(chǎn)品,其特征在于,該產(chǎn)品還包括計算機(jī)可讀程序代碼裝置,它用于使計算機(jī)在前述客戶節(jié)點(diǎn)處從所述基地節(jié)點(diǎn)接收一應(yīng)答消息,該應(yīng)答消息包括一實地址,并且,所述產(chǎn)品還包括計算機(jī)可讀程序代碼裝置,它用于使計算機(jī)確定上述應(yīng)答消息的實地址是否包括上述客戶節(jié)點(diǎn)的本地實地址。
21.如權(quán)利要求20的產(chǎn)品,其特征在于,當(dāng)所述實地址不包括前述客戶節(jié)點(diǎn)處的的本地實地址時,所述產(chǎn)品就包括計算機(jī)可讀程序代碼裝置,它用于使計算機(jī)在客戶節(jié)點(diǎn)處對前述應(yīng)答消息中的實地址進(jìn)行邊界函數(shù)目錄查找,如果在邊界函數(shù)目錄查找中找到了所說的實地址,所述產(chǎn)品就還包括計算機(jī)可讀程序代碼裝置,它用于使計算機(jī)利用用于前述客戶節(jié)點(diǎn)的邊界函數(shù)變換表將該實地址從網(wǎng)絡(luò)地址變換成相應(yīng)的本地實地址。
全文摘要
一種混合非均等存儲器結(jié)構(gòu)/只有簡單高速緩沖存儲器的存儲器結(jié)構(gòu)(NUMA/S-COMA)存儲器系統(tǒng),它與具有多個彼此相連的節(jié)點(diǎn)的計算機(jī)一道使用。該多個節(jié)點(diǎn)包括NUMA存儲器,后者包括一NUMA關(guān)聯(lián)子系統(tǒng)。在計算機(jī)系統(tǒng)中的至少一個節(jié)點(diǎn)上設(shè)置至少一個S-COMA高速緩沖存儲器。通過將基地實地址用作網(wǎng)絡(luò)地址,可存取存儲在系統(tǒng)中的另一個節(jié)點(diǎn)處的數(shù)據(jù)。用邊界函數(shù)變換來將基地實地址變換成本地實地址。
文檔編號G06F15/16GK1263311SQ9912640
公開日2000年8月16日 申請日期1999年12月17日 優(yōu)先權(quán)日1999年1月27日
發(fā)明者D·A·利伯蒂 申請人:國際商業(yè)機(jī)器公司