共享系統(tǒng)地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)和方法
【專(zhuān)利摘要】提出一種共享系統(tǒng)地址空間的非緊耦合的多節(jié)點(diǎn)多處理器系統(tǒng),包括服務(wù)器節(jié)點(diǎn)和節(jié)點(diǎn)間控制單元。所述服務(wù)器節(jié)點(diǎn)之間通過(guò)所述節(jié)點(diǎn)間控制單元實(shí)現(xiàn)資源共享和通信互連。還提出一種基于上述系統(tǒng)的數(shù)據(jù)讀寫(xiě)方法。通過(guò)共享系統(tǒng)地址空間的方式,在非緊耦合的多節(jié)點(diǎn)多處理器系統(tǒng)內(nèi)實(shí)現(xiàn)了內(nèi)存共享與I/O共享,允許本地節(jié)點(diǎn)直接訪(fǎng)問(wèn)遠(yuǎn)程節(jié)點(diǎn)的內(nèi)存資源與I/O資源。
【專(zhuān)利說(shuō)明】共享系統(tǒng)地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式計(jì)算機(jī)處理【技術(shù)領(lǐng)域】,具體涉及共享系統(tǒng)地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)和方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)購(gòu)物、搜索、物聯(lián)網(wǎng)與數(shù)據(jù)挖掘等領(lǐng)域的迅速發(fā)展,數(shù)據(jù)中心所需要處理的數(shù)據(jù)量急劇快速地增長(zhǎng),2013年中國(guó)產(chǎn)生的數(shù)據(jù)總量超過(guò)0.8ZB,2倍于2012年,相當(dāng)于2009年全球的數(shù)據(jù)總量。目前主流互聯(lián)網(wǎng)公司所需要處理的數(shù)據(jù)總量都在PB級(jí),如2013年的大數(shù)據(jù)會(huì)議上,阿里巴巴的數(shù)據(jù)總量在20PB,騰訊公司的數(shù)據(jù)總量在100PB。
[0003]面對(duì)爆炸式的數(shù)據(jù)增長(zhǎng),數(shù)據(jù)中心的可擴(kuò)展性面臨了極大的挑戰(zhàn)。Scale-up (縱向擴(kuò)容)與Scale-out (橫向擴(kuò)展)是目前數(shù)據(jù)中心擴(kuò)容的兩種主要形式。Scale-up是向更強(qiáng)大的CPU,內(nèi)存,網(wǎng)絡(luò)及其他設(shè)備擴(kuò)展,而Scale-out則是通過(guò)分布式算法將一個(gè)個(gè)獨(dú)立的低成本服務(wù)器節(jié)點(diǎn)組成一個(gè)大而強(qiáng)的系統(tǒng)。與Scale-up相比,Scale-out擴(kuò)容更簡(jiǎn)單、成本更低,逐漸成為了未來(lái)數(shù)據(jù)中心發(fā)展的主流架構(gòu)。
[0004]然而采用Scale-out體系結(jié)構(gòu)的數(shù)據(jù)中心,服務(wù)器節(jié)點(diǎn)之間采用松耦合的組織形式,相互之間獨(dú)立,不能共享計(jì)算資源、存儲(chǔ)資源與I/o資源。而目前的分布式算法很難做到將計(jì)算任務(wù)在大量的服務(wù)器節(jié)點(diǎn)之間均勻分布,而不均衡的任務(wù)分配容易造成部分服務(wù)器節(jié)點(diǎn)負(fù)載重,這部分節(jié)點(diǎn)成為整個(gè)系統(tǒng)的性能瓶頸。
[0005]為了解決上述問(wèn)題,研究人員提出了服務(wù)器節(jié)點(diǎn)之間共享內(nèi)存與共享I/O的解決方案,其中有代表性的是“內(nèi)存服務(wù)器”與“虛擬化I/O”?!皟?nèi)存服務(wù)器”是指將數(shù)據(jù)中心的節(jié)點(diǎn)分成“計(jì)算節(jié)點(diǎn)”與“內(nèi)存服務(wù)節(jié)點(diǎn)”,后者在前者產(chǎn)生頁(yè)面錯(cuò)誤時(shí)為它提供內(nèi)存?!疤摂M化I/O”通過(guò)模擬I/O設(shè)備的寄存器與內(nèi)存,并且截獲操作系統(tǒng)對(duì)1端口與寄存器的訪(fǎng)問(wèn),然后通過(guò)軟件或硬件的形式來(lái)模擬真實(shí)的I/o設(shè)備。
[0006]然而上述解決方案都比較片面,沒(méi)有形成一個(gè)系統(tǒng)層面的解決方案。為此,本發(fā)明提出了一種共享系統(tǒng)地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)和方法,為非緊耦合的多服務(wù)器節(jié)點(diǎn)之間的內(nèi)存共享與I/o共享提出了統(tǒng)一的解決方案。
【發(fā)明內(nèi)容】
[0007]提出一種共享系統(tǒng)地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)構(gòu)造方法,包括:
[0008]服務(wù)器節(jié)點(diǎn),用于管理本地計(jì)算資源、內(nèi)存資源、以及I/O資源;
[0009]節(jié)點(diǎn)間控制單元,用于在非緊耦合的多個(gè)服務(wù)器節(jié)點(diǎn)之間實(shí)現(xiàn)全局視
[0010]圖的系統(tǒng)地址空間共享;
[0011]其中,服務(wù)器節(jié)點(diǎn)之間通過(guò)節(jié)點(diǎn)間控制單元實(shí)現(xiàn)資源共享和通信互連。
[0012]特別地,所述的服務(wù)器節(jié)點(diǎn)包括至少一個(gè)處理器、至少一個(gè)內(nèi)存控制模塊,以及至少一個(gè)I/O控制模塊。
[0013]特別地,所述節(jié)點(diǎn)間控制單元包括:
[0014]與各個(gè)服務(wù)器節(jié)點(diǎn)連接的網(wǎng)絡(luò)接口 ;
[0015]系統(tǒng)地址空間映射模塊,用于實(shí)現(xiàn)服務(wù)器節(jié)點(diǎn)的共享資源的系統(tǒng)地址與服務(wù)器節(jié)點(diǎn)的本地真實(shí)資源的物理地址之間的轉(zhuǎn)換;
[0016]支持原子指令的鎖操作管理模塊,用于在非緊耦合的服務(wù)器節(jié)點(diǎn)之間實(shí)現(xiàn)共享鎖機(jī)制;
[0017]網(wǎng)絡(luò)消息轉(zhuǎn)換模塊,用于服務(wù)器節(jié)點(diǎn)之間的消息轉(zhuǎn)換。
[0018]特別地,所述的系統(tǒng)地址空間映射模塊內(nèi)建立有一張全局系統(tǒng)地址空間映射關(guān)系表和一張節(jié)點(diǎn)內(nèi)部資源映射表;
[0019]所述全局系統(tǒng)地址空間映射關(guān)系表包括MM1地址空間,所述MM1地址空間記錄了所有服務(wù)器節(jié)點(diǎn)的共享資源的MM1地址;
[0020]所述節(jié)點(diǎn)內(nèi)部資源映射表包括映射在MM1地址空間中的所述服務(wù)器節(jié)點(diǎn)的共享資源的本地真實(shí)資源的物理地址空間。
[0021]特別地,同一個(gè)服務(wù)器節(jié)點(diǎn)的所有共享資源映射在一段連續(xù)的MM1地址空間。
[0022]特別地,所述的支持原子指令的鎖操作管理模塊,用于實(shí)現(xiàn)多個(gè)服務(wù)器節(jié)點(diǎn)之間的互斥操作。
[0023]特別地,所述本地真實(shí)資源為所述服務(wù)器節(jié)點(diǎn)的內(nèi)存資源和I/O資源。
[0024]一種共享地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)的數(shù)據(jù)訪(fǎng)問(wèn)方法,包括:
[0025]S1:本地節(jié)點(diǎn)根據(jù)配置的麗1地址空間信息,發(fā)出數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求;
[0026]S2:所述數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求被轉(zhuǎn)發(fā)到節(jié)點(diǎn)間控制器ENC ;
[0027]S3:所述ENC根據(jù)配置的麗1地址空間信息,通過(guò)外部互連網(wǎng)絡(luò)將所述數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的遠(yuǎn)程節(jié)點(diǎn);
[0028]S4:所述相應(yīng)的遠(yuǎn)程節(jié)點(diǎn)收到所述數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求后,根據(jù)配置的節(jié)點(diǎn)內(nèi)部資源地址空間映射表確定所述數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求所要訪(fǎng)問(wèn)的該遠(yuǎn)程節(jié)點(diǎn)內(nèi)部的真實(shí)資源的地址。
[0029]本發(fā)明的有益效果是:通過(guò)共享系統(tǒng)地址空間的方式,在非緊耦合的多節(jié)點(diǎn)多處理器系統(tǒng)內(nèi)實(shí)現(xiàn)了內(nèi)存共享與I/o共享,允許本地節(jié)點(diǎn)直接訪(fǎng)問(wèn)遠(yuǎn)程節(jié)點(diǎn)的內(nèi)存資源與I/O資源。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0030]圖1為本發(fā)明提出的一種共享系統(tǒng)地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)。
[0031]圖2為本發(fā)明提出的共享系統(tǒng)地址空間的地址空間映射關(guān)系圖。
[0032]圖3為本發(fā)明提出的節(jié)點(diǎn)間控制模塊示意圖。
[0033]圖4為本發(fā)明提出的節(jié)點(diǎn)內(nèi)部資源地址空間映射表。
[0034]圖5為節(jié)點(diǎn)內(nèi)部原子指令申請(qǐng)鎖操作流程圖。
[0035]圖6為本發(fā)明提出的地址映射流程示意圖。
[0036]圖7為本發(fā)明提出的申請(qǐng)全局鎖操作的流程示意圖。
【具體實(shí)施方式】
[0037]為了使本發(fā)明的目的、技術(shù)方案更加清楚明白,下面給出本發(fā)明的【具體實(shí)施方式】,結(jié)合附圖及實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明。
[0038]實(shí)施例一:
[0039]本發(fā)明提出的實(shí)施例一提出一種共享系統(tǒng)地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)。圖1給出了所述系統(tǒng)的結(jié)構(gòu)圖。在圖中,節(jié)點(diǎn)內(nèi)部通過(guò)節(jié)點(diǎn)內(nèi)控制器INC(Intra NodeController)相連,每個(gè)INC可以連接至少一個(gè)CPU。每個(gè)節(jié)點(diǎn)是一個(gè)獨(dú)立的整體,擁有獨(dú)立的計(jì)算資源、內(nèi)存資源與I/O資源,可以運(yùn)行獨(dú)立的操作系統(tǒng)。節(jié)點(diǎn)之間采用非緊耦合形式組織,相互之間獨(dú)立,節(jié)點(diǎn)間無(wú)法直接實(shí)現(xiàn)內(nèi)存資源與I/O資源的共享。
[0040]所述節(jié)點(diǎn)可以為服務(wù)器節(jié)點(diǎn),該服務(wù)器節(jié)點(diǎn)用于執(zhí)行操作系統(tǒng),管理本地的計(jì)算資源、內(nèi)存資源、以及I/O資源。服務(wù)器節(jié)點(diǎn)包括至少一個(gè)處理器、至少一個(gè)內(nèi)存控制模塊、和/或至少一個(gè)I/o控制模塊。
[0041]為了實(shí)現(xiàn)節(jié)點(diǎn)之間內(nèi)存資源與I/O資源的共享,所述系統(tǒng)還包括節(jié)點(diǎn)間控制器ENC (External Node Controller)。各個(gè)節(jié)點(diǎn)通過(guò)節(jié)點(diǎn)間控制器ENC與專(zhuān)用互連網(wǎng)絡(luò)相連,組成可擴(kuò)展的分布式計(jì)算系統(tǒng)。更重要的是,節(jié)點(diǎn)間通過(guò)ENC才能夠?qū)崿F(xiàn)內(nèi)存資源與1/0資源的共享,具體實(shí)現(xiàn)方法將在后續(xù)文字中描述。
[0042]首先參見(jiàn)圖2,圖2示出了共享系統(tǒng)地址空間映射關(guān)系圖。本發(fā)明通過(guò)共享系統(tǒng)地址空間的方式實(shí)現(xiàn)節(jié)點(diǎn)之間內(nèi)存資源與I/o資源的共享。其中,麗10區(qū)域映射了所有遠(yuǎn)程節(jié)點(diǎn)中被共享的內(nèi)存地址與I/O地址空間;在本地節(jié)點(diǎn)與遠(yuǎn)程節(jié)點(diǎn)中,被MM1區(qū)域映射的內(nèi)存地址空間,需要分配在非一致性的內(nèi)存區(qū)域Non-coherent Memory。
[0043]舉例來(lái)說(shuō),Node_0中的non-coherent Memory是真實(shí)的內(nèi)存,而MM1地址空間記錄的僅僅是一個(gè)映射關(guān)系,所有節(jié)點(diǎn)通過(guò)麗10地址空間發(fā)出的訪(fǎng)問(wèn)都會(huì)落在真實(shí)的內(nèi)存和1/0上,通過(guò)全局映射表(一段麗10空間)進(jìn)行訪(fǎng)問(wèn)Node_0的地址,最后會(huì)轉(zhuǎn)變成對(duì)non-coherent Memory的訪(fǎng)問(wèn)?;谶@種方式,本地節(jié)點(diǎn)通過(guò)訪(fǎng)問(wèn)MM1地址空間的地址,實(shí)現(xiàn)訪(fǎng)問(wèn)遠(yuǎn)程節(jié)點(diǎn)內(nèi)存資源與1/0資源的目的。
[0044]圖3給出了節(jié)點(diǎn)間控制模塊ENC的結(jié)構(gòu)示意圖。節(jié)點(diǎn)間控制模塊是本發(fā)明的重要部件,包括與各個(gè)相互獨(dú)立的節(jié)點(diǎn)連接的網(wǎng)絡(luò)接口,系統(tǒng)地址空間映射模塊、網(wǎng)絡(luò)消息管理模塊以及支持原子指令的鎖操作管理模塊。
[0045]1.系統(tǒng)地址空間映射模塊
[0046]系統(tǒng)地址空間映射模塊,用于將遠(yuǎn)程節(jié)點(diǎn)系統(tǒng)地址空間內(nèi)的地址轉(zhuǎn)換成本地系統(tǒng)地址空間內(nèi)的地址,使兩個(gè)節(jié)點(diǎn)之間能夠跨系統(tǒng)域通信。基于該模塊,可以將整個(gè)非緊耦合的多節(jié)點(diǎn)系統(tǒng)內(nèi)的共享資源建立一個(gè)全局視圖,如圖2所示?;谠撊忠晥D,非緊耦合的節(jié)點(diǎn)之間可實(shí)現(xiàn)在緊耦合組織方式下才能實(shí)現(xiàn)的資源共享。
[0047]系統(tǒng)地址空間映射模塊用于建立共享系統(tǒng)地址空間的全局視圖(圖2示出),所有遠(yuǎn)程節(jié)點(diǎn)的共享資源映射在本地的麗10地址空間,不同麗10區(qū)域的地址空間不重疊,同一個(gè)節(jié)點(diǎn)的所有共享資源映射在一段連續(xù)的MM1空間。同時(shí)該模塊將遠(yuǎn)程節(jié)點(diǎn)通過(guò)MM1地址訪(fǎng)問(wèn)本地節(jié)點(diǎn)共享資源的請(qǐng)求轉(zhuǎn)換成節(jié)點(diǎn)內(nèi)可識(shí)別的地址請(qǐng)求。
[0048]所述的系統(tǒng)地址空間映射模塊還建立一張節(jié)點(diǎn)內(nèi)部資源映射表。在節(jié)點(diǎn)內(nèi)部資源映射表中,將全局視圖中本地節(jié)點(diǎn)對(duì)應(yīng)的MM1地址空間映射為本地資源真實(shí)的地址空間,即內(nèi)存地址以及1/0設(shè)備的麗1地址。
[0049]圖4給出了節(jié)點(diǎn)內(nèi)部資源地址空間映射表。其中,表的左半部為全局地址空間視圖中本地節(jié)點(diǎn)對(duì)應(yīng)的連續(xù)的MM1地址空間,表的右半部為對(duì)應(yīng)于連續(xù)MM1地址空間的本地內(nèi)存資源或者I/O資源的本地地址。
[0050]2.支持原子指令的鎖操作管理模塊
[0051]支持原子指令的鎖操作管理模塊,用于在非緊耦合的兩個(gè)節(jié)點(diǎn)之間實(shí)現(xiàn)共享鎖機(jī)制,使兩個(gè)節(jié)點(diǎn)之間沖突的共享操作可以互斥執(zhí)行。
[0052]為了說(shuō)明本專(zhuān)利中針對(duì)共享地址的原子指令執(zhí)行流程,在專(zhuān)利中首先回顧一下在節(jié)點(diǎn)內(nèi)的原子指令執(zhí)行流程。在系統(tǒng)中原子指令要求,指令內(nèi)的兩次訪(fǎng)存操作要在無(wú)外界沖突訪(fǎng)存操作干擾的情況下順序完成,因此原子指令的執(zhí)行流程分成三個(gè)步驟:申請(qǐng)全局鎖、執(zhí)行訪(fǎng)存操作、釋放全局鎖。
[0053]首先,申請(qǐng)全局鎖的過(guò)程如圖5所示,其中Core為處理器核、LLC為最后一級(jí)緩存的緩存控制器,Config Agent為配置代理,Quiescent Master為靜止控制器。在申請(qǐng)全局鎖的過(guò)程中,Core首先發(fā)出申請(qǐng),經(jīng)過(guò)LLC與Config Agent到達(dá)Quiescent Master ;Quiescent Master向節(jié)點(diǎn)內(nèi)的所有處理器發(fā)出停止請(qǐng)求的申請(qǐng)(StopReql);當(dāng)QuiescentMaster收到所有處理器的確認(rèn)回復(fù)之后,Quiescent Master向I/O代理發(fā)出停止請(qǐng)求的申請(qǐng)(StopReq2);當(dāng)收到所有的確認(rèn)回復(fù)之后,Quiescent Master向申請(qǐng)鎖操作的Core回復(fù)確認(rèn)消息。當(dāng)Core收到確認(rèn)消息以后,執(zhí)行訪(fǎng)存操作與釋放全局鎖操作,釋放全局鎖操作與申請(qǐng)鎖操作流程相似。
[0054]在共享全局地址空間的非緊耦合的多節(jié)點(diǎn)多處理器系統(tǒng)中,針對(duì)共享地址的原子指令執(zhí)行流程與節(jié)點(diǎn)內(nèi)的指令原子指令的執(zhí)行流程,在申請(qǐng)I/o的停止請(qǐng)求(StopReq2)過(guò)程中有著很大的區(qū)別。為了保證該原子指令的作用域是整個(gè)系統(tǒng),而非某個(gè)節(jié)點(diǎn)內(nèi)部,當(dāng)鎖操作管理模塊收到停止I/O請(qǐng)求的申請(qǐng)時(shí),該請(qǐng)求會(huì)通過(guò)ENC中的鎖操作管理模塊廣播到所有節(jié)點(diǎn)的鎖操作管理器。
[0055]在多節(jié)點(diǎn)申請(qǐng)全局鎖的過(guò)程中,避免死鎖是首先要考慮的問(wèn)題,本專(zhuān)利中為了避免死鎖,將系統(tǒng)中某一個(gè)節(jié)點(diǎn)推舉為全局鎖操作管理節(jié)點(diǎn)(Lock Manager),所有申請(qǐng)全局鎖的節(jié)點(diǎn)都要向全局鎖操作管理節(jié)點(diǎn)的鎖操作管理模塊發(fā)送請(qǐng)求,然后由該節(jié)點(diǎn)向系統(tǒng)內(nèi)其他節(jié)點(diǎn)的鎖操作管理器發(fā)送申請(qǐng)全局鎖的請(qǐng)求。
[0056]當(dāng)節(jié)點(diǎn)內(nèi)的鎖操作管理模塊,收到停止1/0請(qǐng)求(StopReq2)的申請(qǐng)時(shí),鎖操作管理模塊會(huì)向全局鎖操作管理節(jié)點(diǎn)Lock Manager發(fā)出申請(qǐng)節(jié)點(diǎn)間全局鎖的請(qǐng)求,LockManager在收到請(qǐng)求以后,轉(zhuǎn)發(fā)請(qǐng)求到所有其它節(jié)點(diǎn)的鎖操作管理模塊,所有節(jié)點(diǎn)的鎖操作管理器會(huì)在本節(jié)點(diǎn)內(nèi)部申請(qǐng)節(jié)點(diǎn)內(nèi)的全局鎖操作,申請(qǐng)成功后向Lock Manager回復(fù)確認(rèn)消息,當(dāng)Lock Manager收齊所有的確認(rèn)回復(fù)以后,向申請(qǐng)節(jié)點(diǎn)間全局鎖的節(jié)點(diǎn)回復(fù)確認(rèn)消息。當(dāng)申請(qǐng)節(jié)點(diǎn)間全局鎖的鎖操作管理器收到確認(rèn)回復(fù)以后,向本節(jié)點(diǎn)的Quiescent Master回復(fù)完成停止1/0請(qǐng)求的申請(qǐng)。Quiescent Master向處理器核回復(fù)確認(rèn)消息,完成了針對(duì)共享地址的全局鎖的申請(qǐng)過(guò)程。
[0057]3.網(wǎng)絡(luò)消息轉(zhuǎn)換模塊
[0058]網(wǎng)絡(luò)消息轉(zhuǎn)換模塊,用于實(shí)現(xiàn)節(jié)點(diǎn)內(nèi)部互連網(wǎng)絡(luò)與節(jié)點(diǎn)之間互連網(wǎng)絡(luò)的消息轉(zhuǎn)換,在兩個(gè)網(wǎng)絡(luò)之間實(shí)現(xiàn)透明通信。節(jié)點(diǎn)訪(fǎng)問(wèn)遠(yuǎn)程節(jié)點(diǎn)共享的資源的交互信息以及申請(qǐng)全局鎖過(guò)程中交互的信息均通過(guò)該模塊在節(jié)點(diǎn)間轉(zhuǎn)發(fā)。
[0059]實(shí)施例二:
[0060]圖6給出了地址映射流程圖,描述了本地節(jié)點(diǎn)訪(fǎng)問(wèn)遠(yuǎn)程節(jié)點(diǎn)的共享資源時(shí),被訪(fǎng)問(wèn)地址的轉(zhuǎn)換流程。具體流程描述如下:
[0061]步驟一,本地節(jié)點(diǎn)根據(jù)全局共享地址空間視圖,發(fā)出讀取(或修改)數(shù)據(jù)請(qǐng)求。
[0062]步驟二,根據(jù)本地節(jié)點(diǎn)的地址空間配置,請(qǐng)求被轉(zhuǎn)發(fā)到ENC(節(jié)點(diǎn)間控制器)。
[0063]步驟三,ENC(節(jié)點(diǎn)間控制器)根據(jù)全局共享地址空間視圖,通過(guò)外部互連網(wǎng)絡(luò)轉(zhuǎn)發(fā)請(qǐng)求到遠(yuǎn)程節(jié)點(diǎn)。
[0064]步驟四,遠(yuǎn)程節(jié)點(diǎn)收到請(qǐng)求,根據(jù)節(jié)點(diǎn)內(nèi)部資源地址空間映射表將全局視圖的MM1地址轉(zhuǎn)換成本地地址空間內(nèi)地址。
[0065]實(shí)施例三:
[0066]圖7描述了申請(qǐng)全局鎖操作的流程示意圖。具體步驟如下:
[0067]步驟一,當(dāng)本地節(jié)點(diǎn)的鎖操作管理模塊收到申請(qǐng)鎖的請(qǐng)求時(shí),并非立即執(zhí)行答復(fù)而是向全局鎖操作管理節(jié)點(diǎn)Lock Manager的鎖操作管理模塊發(fā)出申請(qǐng)節(jié)點(diǎn)間全局鎖的請(qǐng)求。
[0068]步驟二,Lock Manager的鎖操作管理模塊收到請(qǐng)求后,向視圖內(nèi)的所有節(jié)點(diǎn)的鎖操作管理模塊發(fā)出申請(qǐng)節(jié)點(diǎn)內(nèi)鎖的請(qǐng)求。
[0069]步驟三,每個(gè)節(jié)點(diǎn)的鎖操作管理模塊會(huì)在其節(jié)點(diǎn)內(nèi)部執(zhí)行申請(qǐng)節(jié)點(diǎn)內(nèi)鎖操作,然后答復(fù)Lock Manager的鎖操作管理模塊。
[0070]步驟四,Lock Manager的鎖操作管理模塊當(dāng)收齊所有的確認(rèn)答復(fù)以后,答復(fù)最初申請(qǐng)鎖操作的鎖操作管理模塊,允許其執(zhí)行原子訪(fǎng)存操作。
[0071]當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種共享地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng),其特征在于,包括: 服務(wù)器節(jié)點(diǎn),用于管理本地計(jì)算資源、內(nèi)存資源、以及I/o資源; 節(jié)點(diǎn)間控制單元,用于在非緊耦合的多個(gè)服務(wù)器節(jié)點(diǎn)之間實(shí)現(xiàn)全局視圖的系統(tǒng)地址空間共孚; 其中,服務(wù)器節(jié)點(diǎn)之間通過(guò)節(jié)點(diǎn)間控制單元實(shí)現(xiàn)資源共享和通信互連。
2.根據(jù)權(quán)利要求1所述系統(tǒng),其特征在于: 所述的服務(wù)器節(jié)點(diǎn)包括至少一個(gè)處理器、至少一個(gè)內(nèi)存控制模塊,以及至少一個(gè)I/O控制模塊。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于: 所述節(jié)點(diǎn)間控制單元包括: 與各個(gè)服務(wù)器節(jié)點(diǎn)連接的網(wǎng)絡(luò)接口; 系統(tǒng)地址空間映射模塊,用于實(shí)現(xiàn)服務(wù)器節(jié)點(diǎn)的共享資源的系統(tǒng)地址與服務(wù)器節(jié)點(diǎn)的本地真實(shí)資源的物理地址之間的轉(zhuǎn)換; 支持原子指令的鎖操作管理模塊,用于在非緊耦合的服務(wù)器節(jié)點(diǎn)之間實(shí)現(xiàn)共享鎖機(jī)制; 網(wǎng)絡(luò)消息轉(zhuǎn)換模塊,用于服務(wù)器節(jié)點(diǎn)之間的消息轉(zhuǎn)換。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于: 所述的系統(tǒng)地址空間映射模塊內(nèi)建立有一張全局系統(tǒng)地址空間映射關(guān)系表和一張節(jié)點(diǎn)內(nèi)部資源映射表; 所述全局系統(tǒng)地址空間映射關(guān)系表包括MM1地址空間,所述MM1地址空間記錄了所有服務(wù)器節(jié)點(diǎn)的共享資源的麗1地址; 所述節(jié)點(diǎn)內(nèi)部資源映射表包括映射在MM1地址空間中的所述服務(wù)器節(jié)點(diǎn)的共享資源的本地真實(shí)資源的物理地址空間。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于:同一個(gè)服務(wù)器節(jié)點(diǎn)的所有共享資源映射在一段連續(xù)的麗1地址空間。
6.根據(jù)權(quán)利要求3所述系統(tǒng),其特征在于: 所述的支持原子指令的鎖操作管理模塊,用于實(shí)現(xiàn)多個(gè)服務(wù)器節(jié)點(diǎn)之間的互斥操作。
7.根據(jù)權(quán)利要求3-6所述的系統(tǒng),其特征在于: 所述本地真實(shí)資源為所述服務(wù)器節(jié)點(diǎn)的內(nèi)存資源和I/O資源。
8.一種共享地址空間的非緊耦合多節(jié)點(diǎn)多處理器系統(tǒng)的數(shù)據(jù)訪(fǎng)問(wèn)方法, 其特征在于,包括: 51:本地節(jié)點(diǎn)根據(jù)配置的麗1地址空間信息,發(fā)出數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求; 52:所述數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求被轉(zhuǎn)發(fā)到節(jié)點(diǎn)間控制器ENC ; 53:所述ENC根據(jù)配置的MM1地址空間信息,通過(guò)外部互連網(wǎng)絡(luò)將所述數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的遠(yuǎn)程節(jié)點(diǎn); S4:所述相應(yīng)的遠(yuǎn)程節(jié)點(diǎn)收到所述讀取數(shù)據(jù)請(qǐng)求后,根據(jù)配置的節(jié)點(diǎn)內(nèi)部資源地址空間映射表確定所述數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求所要訪(fǎng)問(wèn)的該遠(yuǎn)程節(jié)點(diǎn)內(nèi)部的真實(shí)資源的地址。
【文檔編號(hào)】H04L29/08GK104199740SQ201410433320
【公開(kāi)日】2014年12月10日 申請(qǐng)日期:2014年8月28日 優(yōu)先權(quán)日:2014年8月28日
【發(fā)明者】王恩東, 胡雷鈞, 唐士斌, 陳繼承 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司