本公開涉及一種用于計算系統(tǒng)的系統(tǒng)和方法。本公開尤其涉及用于對計算系統(tǒng)執(zhí)行直接內(nèi)存訪問操作的系統(tǒng)和方法。
背景技術(shù):
1、直接內(nèi)存訪問(direct?memory?access,dma)使計算系統(tǒng)中的設(shè)備或子系統(tǒng)可以直接從計算系統(tǒng)中讀取、向其寫入數(shù)據(jù)。dma可以通過諸如圖形處理單元或聲卡之類的設(shè)備或多核系統(tǒng)中的其他處理器核在計算系統(tǒng)中實現(xiàn)。dma釋放了計算系統(tǒng)中的計算資源。特別地,當(dāng)程序在主處理器上運行時,可以同時執(zhí)行dma操作。
2、遠程直接內(nèi)存訪問(remote?direct?memory?access,rdma)使計算系統(tǒng)可以通過網(wǎng)絡(luò)從另一計算系統(tǒng)的內(nèi)存讀取數(shù)據(jù)或向其寫入數(shù)據(jù)。rdma可以提高網(wǎng)絡(luò)性能,從而可以在未實現(xiàn)rdma的系統(tǒng)上實現(xiàn)更高的吞吐量及更低的網(wǎng)絡(luò)延遲。
技術(shù)實現(xiàn)思路
1、本公開旨在提供一種用于計算系統(tǒng)的方法,諸如可以用于對計算系統(tǒng)執(zhí)行直接內(nèi)存訪問操作。
2、上述目的及其它目的通過獨立權(quán)利要求的特征來實現(xiàn)。根據(jù)從屬權(quán)利要求、說明書和附圖,可以明顯看出進一步的實現(xiàn)形式。
3、根據(jù)第一方面,提供了一種用于計算系統(tǒng)的方法。所述方法包括接收數(shù)據(jù)包及地址數(shù)據(jù),所述數(shù)據(jù)包包括要寫入計算系統(tǒng)的數(shù)據(jù),所述地址數(shù)據(jù)包括所述計算系統(tǒng)第一地址空間的地址集合中的地址;確定由所述數(shù)據(jù)包的地址標(biāo)識的所述計算系統(tǒng)第二地址空間的地址;根據(jù)所述確定將所述數(shù)據(jù)寫入所述計算系統(tǒng)。所述集合的第一子集由所述第二地址空間的第一地址子集標(biāo)識,所述集合的第二子集由所述第二地址空間的第二地址子集標(biāo)識,所述第二地址空間的所述第一地址子集與所述計算系統(tǒng)的內(nèi)存區(qū)域關(guān)聯(lián),所述第二地址空間的所述第二地址子集與數(shù)據(jù)存儲區(qū)區(qū)域關(guān)聯(lián)。
4、根據(jù)第一方面的方法提供了一種方法,根據(jù)從第一地址空間中的地址確定計算系統(tǒng)第二地址空間中的地址來將數(shù)據(jù)寫入計算系統(tǒng)。第二地址空間被劃分為子集,該子集包括與內(nèi)存關(guān)聯(lián)的地址子集以及與數(shù)據(jù)存儲區(qū)區(qū)域關(guān)聯(lián)的子集。若確定的地址位于這些子集中的一個,則將數(shù)據(jù)寫入內(nèi)存或數(shù)據(jù)存儲區(qū)區(qū)域。
5、根據(jù)第二方面,提供了一種用于計算系統(tǒng)的裝置。所述裝置被布置為:在數(shù)據(jù)包及地址數(shù)據(jù)中標(biāo)識計算系統(tǒng)第一地址空間地址集合中的地址,所述數(shù)據(jù)包包括要寫入計算系統(tǒng)的數(shù)據(jù),所述地址數(shù)據(jù)包括所述地址,確定由所述數(shù)據(jù)包的地址標(biāo)識的所述計算系統(tǒng)的第二地址空間的地址,并根據(jù)所述確定將所述數(shù)據(jù)寫入所述計算系統(tǒng)。所述集合的第一子集由所述第二地址空間的第一地址子集標(biāo)識,所述集合的第二子集由所述第二地址空間的第二地址子集標(biāo)識,所述第二地址空間的所述第一地址子集與所述計算系統(tǒng)的內(nèi)存區(qū)域關(guān)聯(lián),所述第二地址空間的所述第二地址子集與數(shù)據(jù)存儲區(qū)區(qū)域關(guān)聯(lián)。
6、在一實現(xiàn)方式中,確定所述第二地址空間的地址包括訪問地址轉(zhuǎn)換表并根據(jù)所述地址轉(zhuǎn)換表確定所述地址。
7、在另一實現(xiàn)方式中,所述方法包括:當(dāng)所述數(shù)據(jù)包的地址不由所述第二地址空間的第一或第二子集的地址標(biāo)識時,從與所述數(shù)據(jù)存儲區(qū)區(qū)域關(guān)聯(lián)的所述第二地址空間中所述第三地址子集確定地址,將所述數(shù)據(jù)寫入與所述確定地址關(guān)聯(lián)的所述數(shù)據(jù)存儲區(qū)區(qū)域。
8、所述方法的實現(xiàn)方式提供了一種方法,用于從數(shù)據(jù)存儲區(qū)區(qū)域的地址池中選擇地址以映射第一地址空間中未映射的地址。
9、在另一實現(xiàn)方式中,所述方法包括更新所述地址轉(zhuǎn)換表,以根據(jù)所述第三子集中確定的地址標(biāo)識所述數(shù)據(jù)包中的地址。
10、該實現(xiàn)方式提供了一種方法,用于以無中斷的方式在在先未映射的地址對第三子集中的地址執(zhí)行直接內(nèi)存訪問。
11、另一實現(xiàn)方式中,所述第二地址空間為所述計算系統(tǒng)的物理地址空間。
12、另一實現(xiàn)方式中,所述第一地址空間為虛擬地址空間。
13、另一實現(xiàn)方式中,確定所述第二地址空間第三子集中的地址,包括訪問存儲的地址數(shù)據(jù)以獲取所述第三子集中的至少一個地址,從所述存儲的地址數(shù)據(jù)中確定所述第三子集中的地址。
14、該實現(xiàn)方式提供了一種方法,用于從地址池中選擇地址以將第一地址空間中未映射的地址映射到該地址中。
15、所述方法的另一實現(xiàn)方式中,確定所述第二地址空間第三子集中的地址,包括向所述計算系統(tǒng)發(fā)送請求以標(biāo)識所述第三子集的地址,從所述計算系統(tǒng)接收響應(yīng),所述響應(yīng)包括所述第三地址子集數(shù)據(jù)的地址。
16、該實現(xiàn)方式提供了一種替代方法,用于從可用地址池中確定地址以將未映射地址映射到該地址中。
17、在一實現(xiàn)方式中,所述方法包括將所述確定的地址從所述第三子集中移除。
18、根據(jù)該實現(xiàn)方式的方法提供了一種方法,以移除池中已經(jīng)分配給第一地址空間中的在先未映射的地址。
19、在另一實現(xiàn)方式中,所述方法包括確定所述第三子集中所述第二地址空間的地址數(shù),當(dāng)所述地址數(shù)低于閾值數(shù)時,補充所述第三子集。
20、該實現(xiàn)方式補充了地址池,以確保有足夠的地址來承受來自未映射地址的大量請求。
21、在另一實現(xiàn)方式中,補充所述第三子集,包括根據(jù)標(biāo)準(zhǔn)確定所述第二地址空間中地址的可用性,根據(jù)所述確定將所述地址包括在所述第三子集中。
22、在另一實現(xiàn)方式中,所述標(biāo)準(zhǔn)包括所述計算系統(tǒng)使用所述地址的標(biāo)準(zhǔn)。
23、該實現(xiàn)方式基于地址的使用情況提供了一種標(biāo)準(zhǔn),用于確定地址的可用性以補充地址池。所述方法的這一實現(xiàn)方式確保計算系統(tǒng)未充分使用的地址被回收并在可用地址池中用于映射未映射的地址。
24、在另一實現(xiàn)方式中,所述數(shù)據(jù)包的地址為直接內(nèi)存訪問(direct?memory?access,dma)請求的目的地址。
25、在另一實現(xiàn)方式中,所述數(shù)據(jù)包的地址為遠程直接內(nèi)存訪問(remote?directmemory?access,rdma)請求的目的地址。
26、在另一實現(xiàn)方式中,所述方法包括訪問至少一個其他地址轉(zhuǎn)換表,每個表包括所述集合中每個地址的條目,更新與所述數(shù)據(jù)包地址對應(yīng)的所述至少一個其他地址轉(zhuǎn)換表的條目,以使用所述確定的地址來標(biāo)識所述數(shù)據(jù)包的地址。
27、在另一實現(xiàn)方式中,所述地址轉(zhuǎn)換表存儲在所述計算系統(tǒng)中。
28、在另一實現(xiàn)方式中,所述地址轉(zhuǎn)化表存儲在設(shè)備中,所述設(shè)備對所述計算系統(tǒng)執(zhí)行直接內(nèi)存訪問或遠程直接內(nèi)存訪問請求。
29、根據(jù)下文所述的實施例,本申請的以上各個方面以及其他方面是顯而易見的。
1.一種內(nèi)存訪問的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,確定所述第二地址空間的地址包括訪問地址轉(zhuǎn)換表并根據(jù)所述地址轉(zhuǎn)換表確定所述地址。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括更新所述地址轉(zhuǎn)換表,以使用所述確定地址標(biāo)識所述數(shù)據(jù)包中的地址。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第二地址空間為物理地址空間。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一地址空間為虛擬地址空間。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,確定所述第三地址子集中的地址,包括:
8.根據(jù)權(quán)利要求3所述的方法,其特征在于,確定所述第三地址子集中的地址,包括:
9.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括將所述確定的地址從所述第三子集中移除。
10.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括:
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,補充所述第三子集,包括:
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述標(biāo)準(zhǔn)包括所述計算系統(tǒng)使用所述地址的標(biāo)準(zhǔn)。
13.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)包的地址為直接內(nèi)存訪問(dma)請求的目的地址。
14.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)包的地址為遠程直接內(nèi)存訪問(rdma)請求的目的地址。
15.根據(jù)權(quán)利要求2所述的方法,其特征在于,包括:
16.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述地址轉(zhuǎn)換表存儲在所述計算系統(tǒng)中。
17.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述地址轉(zhuǎn)化表存儲在設(shè)備中,所述設(shè)備對所述計算系統(tǒng)執(zhí)行直接內(nèi)存訪問或遠程直接內(nèi)存訪問請求。
18.一種用于計算系統(tǒng)的裝置,其特征在于,所述裝置用于:
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,為確定所述第二地址空間的地址,所述裝置被布置為訪問地址轉(zhuǎn)換表并根據(jù)所述地址轉(zhuǎn)換表確定所述地址。
20.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述裝置用于:
21.根據(jù)權(quán)利要求20所述的裝置,其特征在于,所述裝置被布置為:
22.根據(jù)權(quán)利要求19所述的裝置,其特征在于,所述裝置被布置為: