两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種用于虛擬共享存儲系統(tǒng)的遠程取頁方法及網(wǎng)絡接口卡的制作方法

文檔序號:7592459閱讀:183來源:國知局
專利名稱:一種用于虛擬共享存儲系統(tǒng)的遠程取頁方法及網(wǎng)絡接口卡的制作方法
技術領域
本發(fā)明涉及計算機系統(tǒng),更具體地說,涉及一種用于虛擬共享存儲系統(tǒng)的遠程取頁方法。
背景技術
由于共享存儲系統(tǒng)(下同)的易編程性,研究人員考慮在用消息傳遞進行通信的多臺機器上實現(xiàn)共享存儲的編程模式,這便是虛擬共享存儲。虛擬共享存儲同時具有易編程性而且由于大部分虛擬共享存儲系統(tǒng)在機群上實現(xiàn),具備良好的性能價格比。虛擬共享存儲系統(tǒng)多以頁為共享粒度。
遠程取頁指源節(jié)點發(fā)生缺頁時產(chǎn)生缺頁信號,當信號處理程序發(fā)現(xiàn)共享的虛擬地址不在源節(jié)點命中時產(chǎn)生遠程取頁請求,目的節(jié)點接收到取頁請求后根據(jù)虛擬地址查找對應的物理地址,然后將物理地址對應的頁發(fā)送回源節(jié)點。傳統(tǒng)的虛擬共享存儲系統(tǒng)關于遠程取頁的做法是源節(jié)點發(fā)現(xiàn)缺頁中斷后向目的節(jié)點的相應進程(而不是網(wǎng)絡接口卡硬件)發(fā)送取頁請求的消息,目的節(jié)點的CPU的正常工作將被取頁請求打斷,把所要讀取的將頁面內(nèi)容以消息形式封裝并發(fā)送消息,源節(jié)點接收返回的讀頁面返回消息,源節(jié)點的CPU再次被打斷來解封消息并將消息體(頁面內(nèi)容)送到對應的頁面。
如上所述,傳統(tǒng)的遠程取頁方法需要對遠程主機產(chǎn)生中斷,遠程主機接收中斷后停止正在進行的計算進行中斷服務,使計算和通信不能重疊,降低了并行計算的效率。同時,將頁的內(nèi)容以消息的形式進行封裝和拷貝,增加了額外的開銷。
因此需要有一種方法,能夠減小遠程取頁開銷,使計算和通信重疊。

發(fā)明內(nèi)容
本發(fā)明的目的之一在于提供一種遠程取頁方法,減小遠程取頁的協(xié)議處理開銷;本發(fā)明的目的之二在于提供一種遠程取頁方法,在進行遠程取頁時不打斷遠程主機的計算,獲得計算與通信的重疊;本發(fā)明的目的之三在于提供一種遠程取頁方法,使遠程取頁能快速返回。
為了實現(xiàn)上述目的,本發(fā)明提供一種用于虛擬共享存儲系統(tǒng)的遠程取頁方法,所述虛擬共享存儲系統(tǒng)包括用網(wǎng)絡接口卡和交換機互聯(lián)的源節(jié)點和目的節(jié)點;包括步驟1)將網(wǎng)絡接口卡上的存儲器區(qū)域映射到用戶進程的虛地址空間;2)源節(jié)點的用戶進程直接訪問其網(wǎng)絡接口卡,產(chǎn)生并向目的節(jié)點的網(wǎng)絡接口卡發(fā)送遠程取頁請求消息;3)目的節(jié)點的網(wǎng)絡接口卡接收來自源節(jié)點的遠程取頁請求消息;4)目的節(jié)點的網(wǎng)絡接口卡直接讀取目的節(jié)點中的所需頁;5)目的節(jié)點的網(wǎng)絡接口卡向源節(jié)點的網(wǎng)絡接口卡返回遠程取頁應答消息,該消息中包含步驟4)中讀取的頁;6)源節(jié)點的網(wǎng)絡接口卡接收所述遠程取頁應答消息;7)源節(jié)點的網(wǎng)絡接口卡直接將所述頁寫到源節(jié)點的內(nèi)存區(qū)域。
為了實施上述方法,本發(fā)明還提供一種用于虛擬共享存儲系統(tǒng)的網(wǎng)絡接口卡,包括PCI接口控制器、消息傳遞操作邏輯、寄存器控制邏輯、發(fā)送FIFO和接收FIFO,與發(fā)送FIFO連接的發(fā)送邏輯和發(fā)送驅動,與接收FIFO連接的接收邏輯和接收驅動;還包括幀頭分析邏輯,用于分析遠程取頁請求消息和遠程取頁應答消息的幀頭;RDMA操作邏輯,用于控制對內(nèi)存讀寫操作,以便將頁面從內(nèi)存中直接讀取或著寫入;其中,RDMA是遠程內(nèi)存直接訪問(Remote Direct Memory Access)英文縮寫;虛實地址轉換邏輯,用于虛擬地址和物理地址的轉換。
本發(fā)明具有如下優(yōu)點1)在本發(fā)明中,通過將網(wǎng)絡接口卡上的存儲器區(qū)域映射到用戶進程的虛地址空間,使得用戶進程和網(wǎng)絡接口卡可以雙向直接訪問,可以在不打斷遠程節(jié)點CPU的當前工作的情況下實現(xiàn)取頁操作。
2)本發(fā)明用網(wǎng)絡接口卡上的硬件處理大部分的協(xié)議開銷,減少了用戶進程的接收消息和解封消息等協(xié)議處理開銷,提高了遠程取頁的效率。
3)一般的DMA和RDMA操作都是直接采用物理地址,而在本發(fā)明中采用虛擬地址,為實現(xiàn)遠程取頁和虛擬共享存儲提供了非常大的便利。


圖1是一個示例性的虛擬共享系統(tǒng);圖2是實現(xiàn)本發(fā)明的遠程取頁方法的網(wǎng)絡接口卡;圖3是本發(fā)明的遠程取頁方法的方法流程框圖;圖4是實現(xiàn)本發(fā)明遠程取頁方法的地址映射示意圖。
具體實施例方式
下面結合附圖和具體實施方式
對本發(fā)明作進一步詳細描述。
如圖1所示的一個示例性的虛擬共享系統(tǒng),包括源節(jié)點10和目的節(jié)點20,它們分別具有網(wǎng)絡接口卡30和30’,網(wǎng)絡接口卡30和30’通過交換機40互聯(lián)。在具體應用時,交換機40由Altera的FPGA芯片EP20K200EFC484-2X實現(xiàn)。
在本發(fā)明中,遠程取頁操作主要由節(jié)點上的網(wǎng)絡接口卡完成。網(wǎng)絡接口卡30和30’和邏輯結構如圖2所示。在圖2中,網(wǎng)絡接口卡用PCI接口控制器301與主機的PCI總線連接,幀頭分析邏輯302、消息傳遞操作邏輯303、RDMA操作邏輯304、虛實地址轉換邏輯305、控制寄存器邏輯306、接收FIFO307和發(fā)送FIFO308通過本地總線連接,發(fā)送邏輯310和發(fā)送驅動312順序與發(fā)送FIFO308連接,接收邏輯309和接收驅動311順序與接收FIFO307連接。其中,幀頭分析邏輯302根據(jù)幀的類型而采取不同的動作;消息傳遞操作邏輯303負責普通的消息收發(fā)操作;RDMA操作邏輯304控制內(nèi)存讀寫操作;虛實地址轉換邏輯305用于虛擬地址和物理地址的轉換,包括包括TLB(Translation Lookaside Buffer)匹配邏輯和一個虛實地址對照表;控制寄存器邏輯306寄存器的讀寫操作。在具體應用時,圖2所示的網(wǎng)絡接口卡的邏輯功能由Altera的FPGA芯片EP1K100FC484-1實現(xiàn)。
圖3是本發(fā)明的遠程取頁方法的流程圖。如下所述在步驟101中,為了能夠讓用戶進程直接訪問網(wǎng)絡接口卡上的存儲器,需要在通信協(xié)議中通過地址映射的方法將網(wǎng)絡接口卡(NIC)上的存儲器區(qū)域映射到用戶進程(User)的虛地址空間。這里的地址映射如圖4所示,通過兩次映射完成首先,NIC寄存器區(qū)域位于PCI空間,在基于x86體系結構的PC機上,PCI空間與主機內(nèi)存物理地址空間是一致的,這一階段的映射不需要通信協(xié)議做任何干預;第二,在本發(fā)明中,為了使用戶進程能直接訪問NIC上的這一寄存器區(qū)域,在通信協(xié)議中將NIC寄存器在物理地址空間的這部分區(qū)域再映射到用戶進程的虛地址空間,這樣用戶進程就可以直接訪問網(wǎng)絡接口了。
在步驟102中,源節(jié)點的用戶進程直接訪問其網(wǎng)絡接口卡,產(chǎn)生并向目的節(jié)點的網(wǎng)絡接口卡發(fā)送遠程取頁請求消息。具體包括如下子步驟步驟102a)源節(jié)點上的用戶進程通過通信庫把要讀取的頁在目的節(jié)點上虛擬地址、數(shù)據(jù)長度(或者說頁的大小)、該頁返回源節(jié)點的虛擬地址填入一個可用的描述符;步驟102b)由通信線程把已經(jīng)填寫完畢的描述符寫到網(wǎng)絡接口卡的寄存器上(發(fā)送一次寫一個描述符);步驟102c)網(wǎng)絡接口卡根據(jù)用戶進程所寫的內(nèi)容來組幀,并在幀頭置一類型標志,以表明該幀為遠程取頁請求消息,并將此幀發(fā)送至目的節(jié)點的網(wǎng)絡接口卡。如步驟102a)所述,該遠程取頁請求消息的幀體內(nèi)還包括要讀取的頁在目的節(jié)點上虛擬地址域、數(shù)據(jù)長度域、該頁返回源節(jié)點的虛擬地址域。該步驟由圖2所示的網(wǎng)絡接口卡中的消息傳遞操作邏輯303實現(xiàn)。
在步驟103中,目的節(jié)點的網(wǎng)絡接口卡接收來自源節(jié)點的遠程取頁請求消息。目的節(jié)點從其網(wǎng)絡接口卡的接收FIFO緩沖區(qū)中取出幀頭數(shù)據(jù)并進行分析,確定是遠程取頁讀操作,進行幀頭轉換——轉換為返回的幀頭。該步驟由圖2所示的網(wǎng)絡接口卡中的幀頭分析邏輯實現(xiàn)。
在步驟104中,目的節(jié)點的網(wǎng)絡接口卡直接讀取目的節(jié)點中的所需頁。具體包括如下子步驟步驟104a)網(wǎng)絡接口卡申請網(wǎng)絡接口本地總線;步驟104b)網(wǎng)絡接口卡申請進行虛實地址轉換,將虛擬地址轉換為物理地址。在這里,虛實地址轉換由圖2所示的網(wǎng)絡接口卡上的虛實地址轉換邏輯完成。該虛實地址轉換邏輯包括一個虛實地址轉換緩沖器(TLB,Translation LookasideBuffer),其中存儲由虛擬地址和物理地址的匹配表項。在進行虛實地址轉換時,在網(wǎng)絡接口卡上的TLB表項中查找與虛擬地址匹配的項,若找到則直接返回對應的物理地址,若沒有找到則產(chǎn)生中斷,由節(jié)點主機的網(wǎng)卡驅動程序接收中斷后根據(jù)中斷類型進行虛實地址轉換,將獲得的物理地址寫入網(wǎng)絡接口卡,虛實地址轉換邏輯接收到數(shù)據(jù)后對TLB表項進行更新同時返回物理地址。
步驟104c)網(wǎng)絡接口卡將返回幀頭寫入網(wǎng)絡接口發(fā)送FIFO緩沖區(qū);步驟104d)將TLB轉換得到的物理地址指定的內(nèi)存區(qū)域以DMA方式讀到發(fā)送FIFO緩沖區(qū)。該步驟由圖2所示的網(wǎng)絡接口卡上的RDMA操作邏輯完成。
在步驟105中,目的節(jié)點的網(wǎng)絡接口卡向源節(jié)點的網(wǎng)絡接口卡返回遠程取頁應答消息,該消息中包含已經(jīng)讀取的頁。并在遠程取頁應答消息的幀頭中設置一類型標志,以表明該該幀為遠程取頁應答消息。
在步驟106中,源節(jié)點的網(wǎng)絡接口卡接收遠程取頁應答消息。源節(jié)點從其網(wǎng)絡接口卡的接收FIFO緩沖區(qū)中取出幀頭數(shù)據(jù)并進行分析,根據(jù)類型標志,確定是遠程取頁的讀返回操作。
在步驟107中,源節(jié)點的網(wǎng)絡接口卡直接將所述頁寫到源節(jié)點的內(nèi)存區(qū)域。具體包括如下子步驟步驟107a)網(wǎng)絡接口卡申請進行虛實地址轉換,該步驟的具體操作與步驟104b)基本相同;由于網(wǎng)絡接口卡只能根據(jù)PCI總線地址進行工作,而PCI空間與物理地址空間又是一致的,所以只要知道需要訪問的進程空間所對應的物理地址,網(wǎng)絡接口卡就可以通過該地址訪問對應的內(nèi)存區(qū)域;步驟107b)網(wǎng)絡接口卡申請獲得本地總線;步驟107c)將接收FIFO緩沖區(qū)中的數(shù)據(jù)送到TLB轉換得到的物理地址所指定的內(nèi)存區(qū)域。為了實現(xiàn)這一點,源節(jié)點用戶進程的虛頁面鎖定(pin)在其物理內(nèi)存中,以防止網(wǎng)絡接口在訪問這一區(qū)域時,操作系統(tǒng)將對應頁面交換出去。并且,如圖4所示,對于涉及RDMA的頁面(即圖4中的RDMA區(qū)域),建立用戶進程虛地址和物理地址的映射,再將該RDMA區(qū)域在物理地址空間的區(qū)域映射到PCI空間,這樣一來,網(wǎng)絡接口通過該物理地址就可以可靠地訪問用戶空間;步驟107d)網(wǎng)絡接口卡向源節(jié)點主機內(nèi)存中對應的描述符的完成標志置位。
權利要求
1.一種用于虛擬共享存儲系統(tǒng)的遠程取頁方法,所述虛擬共享存儲系統(tǒng)包括用網(wǎng)絡接口卡和交換機互聯(lián)的源節(jié)點和目的節(jié)點;包括步驟1)將網(wǎng)絡接口卡上的存儲器區(qū)域映射到用戶進程的虛地址空間;2)源節(jié)點的用戶進程直接訪問其網(wǎng)絡接口卡,產(chǎn)生并向目的節(jié)點的網(wǎng)絡接口卡發(fā)送遠程取頁請求消息;3)目的節(jié)點的網(wǎng)絡接口卡接收來自源節(jié)點的遠程取頁請求消息;4)目的節(jié)點的網(wǎng)絡接口卡直接讀取目的節(jié)點中的所需頁;5)目的節(jié)點的網(wǎng)絡接口卡向源節(jié)點的網(wǎng)絡接口卡返回遠程取頁應答消息,該消息中包含步驟4)中讀取的頁;6)源節(jié)點的網(wǎng)絡接口卡接收所述遠程取頁應答消息;7)源節(jié)點的網(wǎng)絡接口卡直接將所述頁寫到源節(jié)點的內(nèi)存區(qū)域。
2.根據(jù)權利要求1所述的用于虛擬共享存儲系統(tǒng)的遠程取頁方法,其特征在于,所述遠程取頁請求消息包括一個消息類型標志,所述目的節(jié)點的網(wǎng)絡接口卡在接收到該遠程取頁請求消息后對該類型標志進行判斷;所述遠程取頁應答消息包括一個消息類型標志,所述源節(jié)點的網(wǎng)絡接口卡在接收到該遠程取頁應答消息后對該類型標志進行判斷。
3.根據(jù)權利要求1所述的用于虛擬共享存儲系統(tǒng)的遠程取頁方法,其特征在于,所述遠程取頁請求消息中包含要讀取頁在目的節(jié)點上的虛擬地址、數(shù)據(jù)長度和該頁返回源節(jié)點的虛擬地址。
4.根據(jù)權利要求4所述的用于虛擬共享存儲系統(tǒng)的遠程取頁方法,其特征在于,在步驟4)中網(wǎng)絡接口卡讀取所需頁時,還要進行虛實地址轉換,以便將虛擬地址轉換為物理地址;然后目的節(jié)點的網(wǎng)絡接口卡將獲得的物理地址所指向的頁以DMA方式讀取到該網(wǎng)絡接口卡。
5.根據(jù)權利要求1所述的用于虛擬共享存儲系統(tǒng)的遠程取頁方法,其特征在于,所述遠程取頁應答消息中還包含要讀取的頁返回源節(jié)點的虛擬地址。
6.根據(jù)權利要求5所述的用于虛擬共享存儲系統(tǒng)的遠程取頁方法,其特征在于,在步驟7)中網(wǎng)絡接口卡向所述內(nèi)存區(qū)域寫頁時,還要進行虛實地址轉換,以便將虛擬地址轉換為物理地址;網(wǎng)絡接口卡根據(jù)該物理地址向所述內(nèi)存區(qū)域寫頁。
7.根據(jù)權利要求6所述的用于虛擬共享存儲系統(tǒng)的遠程取頁方法,其特征在于,在源節(jié)點的網(wǎng)絡接口卡向所述內(nèi)存區(qū)域寫頁時,將源節(jié)點用戶進程的虛頁面鎖定在其物理內(nèi)存中。
8.根據(jù)權利要求4或6所述的用于虛擬共享存儲系統(tǒng)的遠程取頁方法,其特征在于,所述虛實地址轉換由在網(wǎng)絡接口卡上提供的虛實地址轉換緩沖器完成,所述虛實地址轉換緩沖器提供了虛擬地址與物理地址的匹配表項。
9.根據(jù)權利要求8所述的用于虛擬共享存儲系統(tǒng)的遠程取頁方法,其特征在于,在進行虛實地址轉換時,如果在虛實地址轉換緩沖器沒有找到與虛擬地址匹配的物理地址,則產(chǎn)生中斷,由節(jié)點主機的網(wǎng)卡驅動程序進行虛實地址轉換;網(wǎng)卡驅動程序完成虛實地址轉換后將獲得的物理地址寫入網(wǎng)絡接口卡,并更新虛實地址轉換緩沖器內(nèi)的匹配表項,同時返回物理地址。
10.一種實施權利要求1所述方法的網(wǎng)絡接口卡,包括PCI接口控制器、消息傳遞操作邏輯、寄存器控制邏輯、發(fā)送FIFO和接收FIFO,與發(fā)送FIFO連接的發(fā)送邏輯和發(fā)送驅動,與接收FIFO連接的接收邏輯和接收驅動;其特征在于,還包括幀頭分析邏輯,用于分析遠程取頁請求消息和遠程取頁應答消息的幀頭;RDMA操作邏輯,用于控制對內(nèi)存讀寫操作,以便將頁面從內(nèi)存中直接讀取或著寫入;虛實地址轉換邏輯,用于虛擬地址和物理地址的轉換。
全文摘要
本發(fā)明公開了一種用于虛擬共享存儲系統(tǒng)的遠程取頁方法及網(wǎng)絡接口卡。該方法將網(wǎng)絡接口卡上的存儲器區(qū)域映射到用戶進程的虛地址空間;源節(jié)點的用戶進程直接訪問其網(wǎng)絡接口卡,產(chǎn)生并向目的節(jié)點的網(wǎng)絡接口卡發(fā)送遠程取頁請求消息;目的節(jié)點的網(wǎng)絡接口卡直接讀取目的節(jié)點中的所需頁;目的節(jié)點的網(wǎng)絡接口卡向源節(jié)點的網(wǎng)絡接口卡返回遠程取頁應答消息;源節(jié)點的網(wǎng)絡接口卡直接將所述頁寫到源節(jié)點的內(nèi)存區(qū)域。該網(wǎng)絡接口卡增加了幀頭分析邏輯、RDMA操作邏輯和虛實地址轉換邏輯。在本發(fā)明中,用網(wǎng)絡接口卡上的硬件處理大部分的協(xié)議開銷,用戶進程和網(wǎng)絡接口卡可以雙向直接訪問,可以在不打斷遠程節(jié)點CPU的當前工作的情況下實現(xiàn)遠程取頁操作。
文檔編號H04L12/00GK1705269SQ20041004274
公開日2005年12月7日 申請日期2004年5月25日 優(yōu)先權日2004年5月25日
發(fā)明者史崗, 胡明昌, 尹宏達, 胡偉武, 唐志敏 申請人:中國科學院計算技術研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
库伦旗| 大埔区| 龙海市| 双牌县| 如东县| 莱阳市| 平度市| 图木舒克市| 阿荣旗| 吉首市| 客服| 启东市| 朔州市| 饶平县| 通州区| 万荣县| 内江市| 昭平县| 乌鲁木齐县| 女性| 长宁区| 安平县| 三河市| 曲阜市| 昭苏县| 荥经县| 华宁县| 景宁| 新建县| 茂名市| 祁连县| 清远市| 开原市| 成安县| 扎鲁特旗| 邹城市| 萨迦县| 犍为县| 丰镇市| 皮山县| 电白县|