本技术实施例涉及计算设备,尤其涉及一种共享内存空间的访问方法及计算设备。
背景技术:
1、相关技术中,为了实现多个计算设备之间的数据共享,计算设备可以基于远程直接内存访问(remote direct memory access,简称drma)协议,读取其他计算设备的内存中的目标数据,并将读取的目标数据,存储至计算设备的本地内存中。
2、也就是说,相关技术中,需要在多个计算设备的本地内存中,皆存储目标数据,从而导致相关技术中的方法,存在浪费内存空间的问题。
技术实现思路
1、本技术实施例提供一种共享内存空间的访问方法及计算设备,减小内存空间占用量,解决了相关技术中的方法,存在的浪费内存空间的问题。
2、第一方面,本技术实施例提供一种共享内存空间的访问方法,方法包括:
3、确定待访问的共享内存空间的标识;共享内存空间包括待访问数据,共享内存空间为计算快速链路cxl内存设备中的内存空间,共享内存空间的使用类型为共享类型、访问权限类型为只读类型;
4、根据共享内存空间的标识,获取共享内存空间对应的映射关系;映射关系中包括映射方式及目标物理地址,映射方式为私有映射或者只读映射,目标物理地址为待访问数据的物理地址;
5、根据映射方式、以及目标物理地址,访问共享内存空间中的待访问数据。
6、该方案中,计算设备可以根据共享内存空间的标识,获取共享内存空间的映射关系。其中,映射关系中包括映射方式及目标物理地址,映射方式为私有映射或者只读映射,目标物理地址为待访问数据的物理地址。计算设备可以根据目标物理地址和映射关系中的映射方式,访问共享内存空间中的待访问数据。共享内存空间的访问权限类型为只读类型、使用类型为共享类型。本技术实施例中,计算设备无需浪费内存空间,在本地内存中存储数据,计算设备可以直接基于映射方式和目标物理地址,访问cxl内存设备中,使用类型为共享类型的内存空间中所存储的数据。通过上述方式,减小了数据对内存空间的占用量。另外,在共享内存空间的访问权限类型为只读类型的情况下,可以使得一个计算设备对该内存空间中的数据的访问,不会影响到其他计算设备访问该内存空间中的数据,保证了数据的一致性和安全性。
7、在一种实现方式中,根据映射方式、以及目标物理地址,访问共享内存空间中的待访问数据,包括:
8、当映射方式为私有映射时,根据目标物理地址,将待访问数据,从cxl内存设备复制至计算设备的内存中;
9、对待访问数据进行修改处理,得到修改数据。
10、该方案中,在映射方式为私有映射时,计算设备可以根据目标物理地址,将待访问数据,从cxl内存设备复制至本地内存中。计算设备可以直接对本地内存中的待访问数据进行修改处理,得到修改数据。通过上述方式,使得在计算设备对待访问数据进行修改时,计算设备的本地内存中存储待访问数据,无需存储共享内存空间的全部数据,降低了内存空间的占用量,避免了内存空间浪费的情况。
11、在一种实现方式中,方法还包括:
12、根据内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,在cxl内存设备中创建新的共享内存空间。
13、该方案中,计算设备可以根据本地内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,在cxl内存设备中创建新的共享内存空间。通过上述方式对修改数据进行共享的方式,使得其他计算设备可以访问新的共享内存空间中的修改数据。
14、在一种实现方式中,根据内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,在cxl内存设备中创建新的共享内存空间,包括:
15、根据内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,在cxl内存设备中,创建第一私有内存空间;第一私有内存空间的使用类型为私有类型、访问权限类型为读写类型;
16、向管理设备发送第一更新请求;第一更新请求用于供管理设备将第一私有内存空间的使用类型更新为共享类型,并将第一私有内存空间的访问权限类型更新为只读类型,以将第一私有内存空间更新为新的共享内存空间。
17、该方案中,计算设备可以先在cxl内存设备中,创建使用类型为私有类型、访问权限类型为读写类型的第一私有内存空间。计算设备可以在需要将第一私有内存空间发布为共享内存空间,以使其他计算设备可以访问该共享内存空间时,向管理设备发送第二更新请求。
18、在一种实现方式中,根据内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,在cxl内存设备中,创建第一私有内存空间,包括:
19、向管理设备发送第一申请请求;第一申请请求包括使用类型为私有类型、访问权限类型为读写类型、以及内存大小;
20、获取管理设备发送的第一私有内存空间的分配信息;第一私有内存空间的分配信息为管理设备根据第一申请请求,确定的;
21、根据第一私有内存空间的分配信息,确定第一私有内存空间的物理地址;
22、根据第一私有内存空间的物理地址,将内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,存储至第一私有内存空间。
23、该方案中,计算设备可以向管理设备发送第一申请请求,以向管理设备申请一块独占、可修改的内存空间(第一私有内存空间),计算设备可以将内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,存储至第一私有内存空间。
24、在一种实现方式中,根据映射方式、以及目标物理地址,访问共享内存空间中的待访问数据,包括:
25、当映射方式为只读映射时,根据目标物理地址,对cxl内存设备中的待访问数据进行读取处理。
26、该方案中,在映射方式为只读映射的情况下,计算设备可以根据待访问数据的所对应的目标物理地址,直接对cxl内存设备中的待访问数据进行读取处理。通过上述方式,使得在计算设备对待访问数据进行只读处理时,计算设备的本地内存中无需存储共享内存空间的任何数据,降低了内存空间的占用量,避免了内存空间浪费的情况。
27、在一种实现方式中,方法还包括:
28、向管理设备发送获取请求;获取请求包括共享内存空间的标识;
29、获取管理设备发送的共享内存空间的分配信息;共享内存空间的分配信息为管理设备根据获取请求确定的;
30、根据共享内存空间的分配信息,确定共享内存空间的多个物理地址;
31、根据对共享内存空间进行访问的访问需求,确定映射关系的映射方式;
32、根据映射方式,将共享内存空间的每个物理地址映射至一个虚拟地址,得到映射关系。
33、该方案中,计算设备可以向管理设备发送共享内存空间的标识,以基于管理设备发送的共享内存空间的分配信息、计算设备对共享内存空间进行访问的访问需求,建立映射关系。
34、第二方面,本技术实施例提供一种共享内存空间的访问方法,方法包括:
35、获取计算设备发送的共享内存空间的标识;共享内存空间包括待访问数据,共享内存空间为计算快速链路cxl内存设备中的内存空间,共享内存空间的使用类型为共享类型、访问权限类型为只读类型;
36、根据共享内存空间的标识,确定共享内存空间的分配信息;
37、向计算设备发送分配信息,以使计算设备根据分配信息以及访问需求,建立映射关系,并基于映射关系访问共享内存空间中的待访问数据;映射关系中包括映射方式及目标物理地址,映射方式为私有映射或者只读映射,目标物理地址为待访问数据的物理地址。
38、该方案中,管理设备可以根据计算设备发送的共享内存空间的标识,确定共享内存空间的分配信息,并向计算设备发送共享内存空间的分配信息,以供计算设备构建映射关系,并基于映射关系访问共享内存空间中的待访问数据。
39、在一种实现方式中,方法还包括:
40、对共享内存空间的引用次数进行加1处理。
41、该方案中,管理设备可以在确定共享内存空间的分配信息,并向计算设备发送分配信息时,对该共享内存空间的引用次数进行加1处理。通过上述方式,可以使得引用次数可以反映共享内存空间被计算设备引用(获取)的情况,进而使得管理设备可以在基于共享内存空间的引用次数、以及使用时长(基于当前时刻和创建时刻确定的),确定该共享内存空间满足预设删除条件时,对该共享内存空间进行删除处理,从而提高共享内存空间的使用率。
42、第三方面,本技术实施例提供一种共享内存空间的访问方法,应用于计算设备,方法包括:
43、根据目标数据,在cxl内存设备中,创建第二私有内存空间;第二私有内存空间的使用类型为私有类型、访问权限类型为读写类型;
44、向管理设备发送第二更新请求;第二更新请求用于供管理设备将第二私有内存空间的使用类型更新为共享类型,并将第二私有内存空间的访问权限类型更新为只读类型,以将第二私有内存空间更新为共享内存空间。
45、该方案中,计算设备可以将目标数据存储到该计算设备独占的第二私有内存空间。计算设备可以将该第二私有内存空间发布为共享内存空间,以使其他计算设备可以访问共享内存空间中的数据。
46、在一种实现方式中,根据目标数据,在cxl内存设备中,创建第二私有内存空间,包括:
47、向管理设备发送第二申请请求;第一申请请求包括使用类型为私有类型、访问权限类型为读写类型、以及内存大小;
48、获取管理设备发送的第二私有内存空间的分配信息;第二私有内存空间的分配信息为管理设备根据第二申请请求,确定的;
49、根据第二私有内存空间的分配信息,确定第二私有内存空间的物理地址;
50、根据第二私有内存空间的物理地址,将目标数据存储至第二私有内存空间。
51、该方案中,计算设备可以在需要将数据存储到一块独占的内存空间时,可以向管理设备发送第二申请请求,并基于管理设备发送的第二私有内存空间的分配信息,确定第二私有内存空间的物理地址,并基于第二私有内存空间的物理地址,将目标数据存储到第二私有内存空间。
52、第四方面,本技术实施例提供一种计算设备,包括:
53、获取模块,用于确定待访问的共享内存空间的标识;共享内存空间包括待访问数据,共享内存空间为计算快速链路cxl内存设备中的内存空间,共享内存空间的使用类型为共享类型、访问权限类型为只读类型;
54、处理模块,用于根据共享内存空间的标识,获取共享内存空间对应的映射关系;映射关系中包括映射方式及目标物理地址,映射方式为私有映射或者只读映射,目标物理地址为待访问数据的物理地址;
55、处理模块,还用于根据映射方式、以及目标物理地址,访问共享内存空间中的待访问数据。
56、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
57、在一种实现方式中,处理模块,具体用于:
58、当映射方式为私有映射时,根据目标物理地址,将待访问数据,从cxl内存设备复制至计算设备的内存中;
59、对待访问数据进行修改处理,得到修改数据。
60、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
61、在一种实现方式中,处理模块,还用于:
62、根据内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,在cxl内存设备中创建新的共享内存空间。
63、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
64、在一种实现方式中,处理模块,具体用于:
65、根据内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,在cxl内存设备中,创建第一私有内存空间;第一私有内存空间的使用类型为私有类型、访问权限类型为读写类型;
66、向管理设备发送第一更新请求;第一更新请求用于供管理设备将第一私有内存空间的使用类型更新为共享类型,并将第一私有内存空间的访问权限类型更新为只读类型,以将第一私有内存空间更新为新的共享内存空间。
67、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
68、在一种实现方式中,处理模块,具体用于:
69、向管理设备发送第一申请请求;第一申请请求包括使用类型为私有类型、访问权限类型为读写类型、以及内存大小;
70、获取管理设备发送的第一私有内存空间的分配信息;第一私有内存空间的分配信息为管理设备根据第一申请请求,确定的;
71、根据第一私有内存空间的分配信息,确定第一私有内存空间的物理地址;
72、根据第一私有内存空间的物理地址,将内存中的修改数据、以及共享内存空间中的全部数据中除待访问数据以外的其他数据,存储至第一私有内存空间。
73、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
74、在一种实现方式中,处理模块,具体用于:
75、当映射方式为只读映射时,根据目标物理地址,对cxl内存设备中的待访问数据进行读取处理。
76、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
77、在一种实现方式中,处理模块,还用于:
78、向管理设备发送获取请求;获取请求包括共享内存空间的标识;
79、获取管理设备发送的共享内存空间的分配信息;共享内存空间的分配信息为管理设备根据获取请求确定的;
80、根据共享内存空间的分配信息,确定共享内存空间的多个物理地址;
81、根据对共享内存空间进行访问的访问需求,确定映射关系的映射方式;
82、根据映射方式,将共享内存空间的每个物理地址映射至一个虚拟地址,得到映射关系。
83、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
84、第五方面,本技术实施例提供一种管理设备,包括:
85、获取模块,用于获取计算设备发送的共享内存空间的标识;共享内存空间包括待访问数据,共享内存空间为计算快速链路cxl内存设备中的内存空间,共享内存空间的使用类型为共享类型、访问权限类型为只读类型;
86、处理模块,用于根据共享内存空间的标识,确定共享内存空间的分配信息;
87、发送模块,用于向计算设备发送分配信息,以使计算设备根据分配信息以及访问需求,建立映射关系,并基于映射关系访问共享内存空间中的待访问数据;映射关系中包括映射方式及目标物理地址,映射方式为私有映射或者只读映射,目标物理地址为待访问数据的物理地址。
88、本技术实施例提供的管理设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
89、在一种实现方式中,处理模块,还用于:
90、对共享内存空间的引用次数进行加1处理。
91、本技术实施例提供的管理设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
92、第六方面,本技术实施例提供一种计算设备,包括:
93、处理模块,用于根据目标数据,在cxl内存设备中,创建第二私有内存空间;第二私有内存空间的使用类型为私有类型、访问权限类型为读写类型;
94、发送模块,用于向管理设备发送第二更新请求;第二更新请求用于供管理设备将第二私有内存空间的使用类型更新为共享类型,并将第二私有内存空间的访问权限类型更新为只读类型,以将第二私有内存空间更新为共享内存空间。
95、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
96、在一种实现方式中,处理模块,具体用于:
97、向管理设备发送第二申请请求;第一申请请求包括使用类型为私有类型、访问权限类型为读写类型、以及内存大小;
98、获取管理设备发送的第二私有内存空间的分配信息;第二私有内存空间的分配信息为管理设备根据第二申请请求,确定的;
99、根据第二私有内存空间的分配信息,确定第二私有内存空间的物理地址;
100、根据第二私有内存空间的物理地址,将目标数据存储至第二私有内存空间。
101、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
102、第七方面,本技术实施例提供一种计算设备,计算设备包括存储器和处理器;
103、存储器与处理器耦合;
104、存储器用于存储计算机指令;
105、处理器用于执行计算机指令,以使计算设备实现第一方面、第二方面或者第三方面的方法。
106、本技术实施例提供的计算设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
107、第八方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现第一方面、第二方面或者第三方面的方法。
108、本实现方式提供的计算机可读存储介质中的计算机执行指令被处理器执行时,可以实现上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
109、第九方面,本技术实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时用于实现第一方面、第二方面或者第三方面的方法。
110、本实现方式提供的计算机程序产品中的计算机程序被处理器执行时,可以实现上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
1.一种共享内存空间的访问方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述映射方式、以及所述目标物理地址,访问所述共享内存空间中的所述待访问数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述内存中的所述修改数据、以及所述共享内存空间中的全部数据中除所述待访问数据以外的其他数据,在所述cxl内存设备中创建新的共享内存空间,包括:
5.根据权利要求4所述的方法,其特征在于,所述根据所述内存中的所述修改数据、以及所述共享内存空间中的全部数据中除所述待访问数据以外的其他数据,在所述cxl内存设备中,创建第一私有内存空间,包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述映射方式、以及所述目标物理地址,访问所述共享内存空间中的所述待访问数据,包括:
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
8.一种共享内存空间的访问方法,其特征在于,所述方法包括:
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
10.一种计算设备,其特征在于,所述计算设备包括存储器和处理器;