一种内存访问方法及相关设备与流程

文档序号:36317924发布日期:2023-12-08 10:06阅读:37来源:国知局
一种内存访问方法及相关设备与流程

本技术实施例涉及通信领域,尤其涉及一种内存访问方法及相关设备。


背景技术:

1、在数据中心网络中,服务器之间可以进行远程内存访问,即通过服务器的网卡实现内存数据的远程交互。

2、在现有的远程内存访问技术中,例如远程直接内存访问(remote direct memoryaccess,rdma),是服务器先在其内存中分配出一个内存区域,然后将虚拟地址对应的内存数据注册到该内存区域,该内存区域中的内存数据为物理地址,相当于实现了内存数据的虚拟地址和物理地址映射关系的绑定(简称绑定内存),从而网卡可以通过虚拟地址映射得到的对应的物理地址直接访问内存。

3、但是过多的内存数据注册到内存区域需要大量时间,会导致服务器的应用程序初始化慢,且注册好的内存数据可能在后续访问过程中没有被使用,导致内存空间被闲置的内存数据占用。


技术实现思路

1、本技术实施例提供一种内存访问方法及相关设备,用于内存访问时避免应用程序初始化慢以及内存空间被闲置的内存数据占用。本技术实施例还提供了相应的服务器、计算机可读存储介质及芯片系统等。

2、本技术第一方面提供一种内存访问方法,该方法包括:接收端接收来自发送端的内存访问消息,内存访问消息包括发送端虚拟地址和接收端虚拟地址,发送端虚拟地址和对应的发送端物理地址的映射关系确定;接收端确定接收端虚拟地址和对应的接收端物理地址的映射关系;接收端基于发送端物理地址和接收端物理地址对发送端的内存进行访问。

3、该第一方面,接收端预先接收到来自发送端的内存访问消息,确定出需要进行内存访问的虚拟地址,并确定好该虚拟地址和对应的物理地址的映射关系,即只将需要进行内存访问的虚拟地址注册到内存区域,接收端就可以实现对发送端的内存进行访问,避免接收端需要将全部的虚拟地址都注册到内存区域,加快了服务器的应用程序初始化速度,并避免内存空间被闲置的内存数据占用。

4、在第一方面的一种可能的实现方式中,上述步骤:接收端基于发送端物理地址和接收端物理地址对发送端的内存进行访问包括:接收端基于发送端物理地址和接收端物理地址将与发送端虚拟地址对应的访问数据读取至接收端虚拟地址。

5、该种可能的实现方式中,当访问类型为写操作或发送操作时,接收端具体将与发送端虚拟地址对应的访问数据读取至接收端虚拟地址,提升了方案的可实现性。

6、在第一方面的一种可能的实现方式中,上述步骤:接收端接收发送端发送的内存访问消息之后,该方法还包括:当接收端虚拟地址为缺页状态、且访问数据为整个页面时,接收端在内存中分配出新的页面以供访问数据的写入。

7、该种可能的实现方式中,当接收端虚拟地址为缺页状态(此时的缺页指页面被换出,需要换入)、且访问数据为整个页面时,接收端处理缺页时,会分配出新的页面以供访问数据的写入,并直接将接收端的慢速存储介质中需要换入的页面丢弃,避免换入的开销。

8、在第一方面的一种可能的实现方式中,上述步骤:接收端基于发送端物理地址和接收端物理地址对发送端的内存进行访问包括:接收端基于发送端物理地址和接收端物理地址将与接收端虚拟地址对应的访问数据写入至发送端虚拟地址。

9、该种可能的实现方式中,当访问类型为读操作,接收端具体将与接收端虚拟地址对应的访问数据写入至发送端虚拟地址,提升了方案的可实现性。

10、在第一方面的一种可能的实现方式中,上述步骤:接收端基于发送端物理地址和接收端物理地址对发送端的内存进行访问之后,该方法还包括:接收端将接收端虚拟地址和对应的接收端物理地址的映射关系进行解绑,并向发送端发送访问完成消息,以使发送端将发送端虚拟地址和对应的发送端物理地址的映射关系进行解绑。

11、该种可能的实现方式中,当此次内存访问完成后,因发送端和接收端都是临时绑定内存,下次内存访问时不一定还是继续使用发送端虚拟地址和接收端虚拟地址,因此接收端还需要将将接收端虚拟地址和对应的接收端物理地址进行解绑,并向发送端发送访问完成消息,通知发送端此次内存访问完成,发送端接收到该访问完成消息后,根据该访问完成消息将发送端虚拟地址和对应的发送端物理地址进行解绑,提升了方案的可实现性。

12、在第一方面的一种可能的实现方式中,与发送端虚拟地址或与接收端虚拟地址对应的访问数据的数据大小大于预设阈值。

13、该种可能的实现方式中,访问数据的数据大小大于预设阈值,此时访问数据更适用于该方案,可以避免拷贝开销,提升了方案的可实现性。

14、本技术第二方面提供一种内存访问方法,该方法包括:发送端获取内存访问消息,内存访问消息包括发送端虚拟地址和接收端虚拟地址;发送端确定发送端虚拟地址和对应的发送端物理地址的映射关系;发送端向接收端发送内存访问消息,以使接收端确定接收端虚拟地址和对应的接收端物理地址的映射关系,并基于发送端物理地址和接收端物理地址对发送端的内存进行访问。

15、在第二方面的一种可能的实现方式中,接收端具体用于将与发送端虚拟地址对应的访问数据读取至接收端虚拟地址。

16、在第二方面的一种可能的实现方式中,当接收端虚拟地址为缺页状态、且访问数据为整个页面时,接收端还用于在内存中分配出新的页面以供访问数据的写入。

17、在第二方面的一种可能的实现方式中,接收端具体用于将与接收端虚拟地址对应的访问数据写入至发送端虚拟地址。

18、在第二方面的一种可能的实现方式中,上述步骤:发送端向接收端发送内存访问消息之后,方法还包括:发送端接收接收端发送的访问完成消息;发送端根据访问完成消息将发送端虚拟地址和对应的发送端物理地址的映射关系进行解绑。

19、在第二方面的一种可能的实现方式中,上述步骤:发送端确定发送端虚拟地址和对应的发送端物理地址的映射关系包括:发送端判断与发送端虚拟地址或与接收端虚拟地址对应的访问数据的数据大小是否大于预设阈值;若是,发送端确定发送端虚拟地址和对应的发送端物理地址的映射关系。

20、本技术第二方面或第二方面的任意可能的实现方式与本技术第一方面或第一方面的任意可能的实现方式对应,其具体实现方式为基于第一方面或第一方面的任意可能的实现方式的对端的描述,具体相同的有益效果。

21、本技术第三方面提供一种内存访问方法,该方法包括:接收端通过接收缓冲区接收发送端通过发送缓冲区发送的内存访问消息,内存访问消息包括接收端虚拟地址和访问数据,访问数据为发送端将与发送端虚拟地址对应的数据拷贝至发送缓冲区得到的,发送缓冲区的虚拟地址和对应的物理地址的映射关系确定,接收缓冲区的虚拟地址和对应的物理地址的映射关系确定,发送缓冲区和接收缓冲区基于物理地址进行通信;接收端将接收缓存区中的访问数据拷贝至接收端虚拟地址。

22、该第三方面,发送端发起内存访问请求时,只需要将访问数据拷贝至绑定内存的发送缓存区,并直接发送给接收端中绑定内存的接收缓存区,保证了网卡使用的物理地址都是绑定好的,无需反向通信,接收端可以实现对发送端的内存进行访问,遇到缺页时不会阻塞后续的内存访问请求,并减少了反向通信的开销。

23、在第三方面的一种可能的实现方式中,与发送端虚拟地址对应的访问数据的数据大小小于预设阈值。

24、该种可能的实现方式中,访问数据的数据大小小于预设阈值,此时访问数据更适用于该方案,数据大小较小的访问数据绑定内存不会占用过多的内存空间,避免应用程序初始化慢和内存空间被闲置的内存数据占用的问题,提升了方案的可实现性。

25、本技术第四方面提供一种内存访问方法,该方法包括:发送端生成内存访问请求,内存访问请求包括发送端虚拟地址和接收端虚拟地址;发送端将与发送端虚拟地址对应的访问数据拷贝至发送端的发送缓冲区,发送缓冲区的虚拟地址和对应的物理地址的映射关系确定;发送端通过发送缓冲区发送内存访问消息给接收端的接收缓冲区,以使接收端将接收缓冲区中的访问数据拷贝至接收端虚拟地址,内存访问消息包括接收端虚拟地址和访问数据,接收缓冲区的虚拟地址和对应的物理地址的映射关系确定,发送缓冲区和接收缓冲区基于物理地址进行通信。

26、在第四方面的一种可能的实现方式中,上述步骤:发送端将与发送端虚拟地址对应的访问数据拷贝至发送端的发送缓冲区包括:发送端判断与发送端虚拟地址对应的访问数据的数据大小是否大于预设阈值;若否,发送端将与发送端虚拟地址对应的访问数据拷贝至发送端的发送缓冲区。

27、本技术第四方面或第四方面的任意可能的实现方式与本技术第三方面或第三方面的任意可能的实现方式对应,其具体实现方式为基于第三方面或第三方面的任意可能的实现方式的对端的描述,具体相同的有益效果。

28、本技术第五方面提供一种内存访问方法,该方法包括:接收端接收来自发送端的内存访问请求,内存访问请求包括发送端虚拟地址和接收端虚拟地址;接收端将与接收端虚拟地址对应的访问数据拷贝至接收端的发送缓冲区,发送缓冲区的虚拟地址和对应的物理地址的映射关系确定;接收端通过发送缓冲区发送内存访问消息给发送端的接收缓冲区,以使发送端将接收缓冲区中的访问数据拷贝至发送端虚拟地址,内存访问消息包括发送端虚拟地址和访问数据,接收缓冲区的虚拟地址和对应的物理地址的映射关系确定,发送缓冲区和接收缓冲区基于物理地址进行通信。

29、该第五方面,发送端发起内存访问请求时,只需要将内存访问请转发给接收端,并通过绑定内存的接收缓存区接收接收端中绑定内存的发送缓存区发送的访问数据,无需反向通信,接收端可以实现对发送端的内存进行访问,遇到缺页时不会阻塞后续的内存访问请求,并减少了反向通信的开销。

30、在第五方面的一种可能的实现方式中,与接收端虚拟地址对应的访问数据的数据大小小于预设阈值。

31、该种可能的实现方式中,访问数据的数据大小小于预设阈值,此时访问数据更适用于该方案,数据大小较小的访问数据绑定内存不会占用过多的内存空间,避免应用程序初始化慢和内存空间被闲置的内存数据占用的问题,提升了方案的可实现性。

32、本技术第六方面提供一种内存访问方法,该方法包括:发送端生成内存访问请求,内存访问请求包括发送端虚拟地址和接收端虚拟地址;发送端将内存访问请求发送给接收端,以使接收端将与接收端虚拟地址对应的访问数据拷贝至接收端的发送缓冲区,发送缓冲区的虚拟地址和对应的物理地址的映射关系确定;发送端通过接收缓冲区接收接收端通过发送缓冲区发送的内存访问消息,内存访问消息包括发送端虚拟地址和访问数据,接收缓冲区的虚拟地址和对应的物理地址的映射关系确定,发送缓冲区和接收缓冲区基于物理地址进行通信;发送端将接收缓冲区中的访问数据拷贝至发送端虚拟地址。

33、在第六方面的一种可能的实现方式中,上述步骤:起端设备将内存访问请求发送给接收端包括:发送端判断与接收端虚拟地址对应的访问数据的数据大小是否大于预设阈值;若否,发送端将内存访问请求发送给接收端。

34、本技术第六方面或第六方面的任意可能的实现方式与本技术第五方面或第五方面的任意可能的实现方式对应,其具体实现方式为基于第五方面或第五方面的任意可能的实现方式的对端的描述,具体相同的有益效果。

35、本技术第七方面,提供了一种服务器,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该计算机设备包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的模块或单元,如:接收单元、绑定单元和访问单元等。

36、本技术第八方面,提供了一种服务器,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该计算机设备包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的模块或单元,如:获取单元、绑定单元和发送单元等。

37、本技术第九方面,提供了一种服务器,用于执行上述第三方面或第三方面的任意可能的实现方式中的方法。具体地,该计算机设备包括用于执行上述第三方面或第三方面的任意可能的实现方式中的方法的模块或单元,如:接收单元和拷贝单元等。

38、本技术第十方面,提供了一种服务器,用于执行上述第四方面或第四方面的任意可能的实现方式中的方法。具体地,该计算机设备包括用于执行上述第四方面或第四方面的任意可能的实现方式中的方法的模块或单元,如:获取单元、拷贝单元和发送单元等。

39、本技术第十一方面,提供了一种服务器,用于执行上述第五方面或第五方面的任意可能的实现方式中的方法。具体地,该计算机设备包括用于执行上述第五方面或第五方面的任意可能的实现方式中的方法的模块或单元,如:接收单元、拷贝单元和发送单元等。

40、本技术第十二方面,提供了一种服务器,用于执行上述第六方面或第六方面的任意可能的实现方式中的方法。具体地,该计算机设备包括用于执行上述第六方面或第六方面的任意可能的实现方式中的方法的模块或单元,如:获取单元、发送单元、接收单元和拷贝单元等。

41、本技术第十三方面提供一种计算机设备,该计算机设备包括处理器、通信接口和存储器,存储器用于存储程序代码,处理器用于调用存储器中的程序代码以使得处理器执行第一方面或第一方面的任意可能的实现方式、第二方面或第二方面的任意可能的实现方式、第三方面或第三方面的任意可能的实现方式、第四方面或第四方面的任意可能的实现方式、第五方面或第五方面的任意可能的实现方式以及第六方面或第六方面的任意可能的实现方式中的方法。

42、本技术第十四方面提供一种通信系统,该通信系统包括第一服务器和第二服务器,第一服务器用于对第二服务器进行内存访问,第一服务器用于执行第一方面或第一方面的任意可能的实现方式、第三方面或第三方面的任意可能的实现方式以及第五方面或第五方面的任意可能的实现方式中的方法,第二服务器用于执行第二方面或第二方面的任意可能的实现方式、第四方面或第四方面的任意可能的实现方式以及第六方面或第六方面的任意可能的实现方式中的方法。

43、本技术第十五方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行第一方面或第一方面的任意可能的实现方式、第二方面或第二方面的任意可能的实现方式、第三方面或第三方面的任意可能的实现方式、第四方面或第四方面的任意可能的实现方式、第五方面或第五方面的任意可能的实现方式以及第六方面或第六方面的任意可能的实现方式中的方法。

44、本技术第十六方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行第一方面或第一方面的任意可能的实现方式、第二方面或第二方面的任意可能的实现方式、第三方面或第三方面的任意可能的实现方式、第四方面或第四方面的任意可能的实现方式、第五方面或第五方面的任意可能的实现方式以及第六方面或第六方面的任意可能的实现方式中的方法。

45、本技术第十七方面提供了一种芯片系统,该芯片系统包括至少一个处理器和接口,该接口用于接收数据和/或信号,至少一个处理器用于支持计算机设备实现第一方面或第一方面的任意可能的实现方式、第二方面或第二方面的任意可能的实现方式、第三方面或第三方面的任意可能的实现方式、第四方面或第四方面的任意可能的实现方式、第五方面或第五方面的任意可能的实现方式以及第六方面或第六方面的任意可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

46、从以上技术方案可以看出,本技术实施例具有以下优点:

47、发送端发起内存访问请求时,只将需要进行访问的虚拟地址绑定内存,当接收端接收到内存访问消息后,也只将需要进行访问的虚拟地址绑定内存,从而只将需要进行访问的虚拟地址对应的内存数据注册到内存区域,接收端就可以实现对发送端的内存进行访问,避免应用程序初始化慢和内存空间被闲置的内存数据占用的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1