服务器的物理内存扩展架构、服务器、方法、设备及介质与流程

文档序号:37642235发布日期:2024-04-18 18:05阅读:8来源:国知局
服务器的物理内存扩展架构、服务器、方法、设备及介质与流程

本技术涉及内存管理领域,特别涉及一种服务器的物理内存扩展架构、服务器、方法、设备及介质。


背景技术:

1、早期的计算机设备,程序是直接运行在物理内存上的,具体是指程序在运行时所访问的地址都是物理地址;这种方式实现简单,但是并不适应于复杂的系统,尤其是拥有多任务的操作系统。

2、以上这种使用物理内存运行程序时,物理内存不足是一个很大的问题。如果一个程序需要使用64k的内存,而机器上只有32k的物理内存,就会导致程序无法运行。其次,程序运行的物理地址不确定,同一个程序,每次被装载到物理内存的物理地址可能不一样,这使得程序难以调试和优化。此外,物理内存使用率低也是一个问题,需要运行某个程序,就需要将整个程序全部装入物理内存才能够运行,而实际运行时可能只需要用到部分程序。最后,在多任务os中,进程间地址空间不隔离的问题也十分严重,这样一个任务失败了,可能会影响其他任务,进而导致整个系统崩溃。

3、为了解决这些问题,引入了虚拟内存管理技术。虚拟内存管理技术可以将物理内存和磁盘上的存储空间组合成一个统一的地址空间,程序可以像直接运行在物理内存上一样访问内存,但实际上它们访问的是虚拟地址。操作系统通过虚拟内存管理单元(mmu,memory management unit)将虚拟地址转换为物理地址,从而实现了内存的管理和保护。虚拟内存管理技术解决了直接在物理内存上运行程序的很多缺陷,但也引入了一些新问题。如现有的cpu(central processing unit,中央处理器)一般是64位的,意味着虚拟地址的范围为0—0xffffffffffffffff,但物理地址的范围受到具体硬件的限制,单个服务器的物理地址一般在几十gb到几tb之间,远远小于虚拟地址空间。这就意味着,单个服务器无法高效地运行超大型应用程序(例如需要几十/几百tb内存的应用程序),开发人员不得不更改程序的架构,将其分布式部署在多台服务器上,从而导致程序框架变得更加复杂。


技术实现思路

1、本技术的目的是提供一种服务器的物理内存扩展架构、服务器、方法、设备及介质,通过连接多个扩展设备来扩展服务器的物理内存空间,这样一来,即使单个服务器的物理地址空间受限,但通过连接多个扩展设备,可以实现更大范围的物理内存空间,应用程序可以在更大范围的物理内存空间中运行,而无需更改应用程序架构或分布式部署在多台服务器上,从而解决了单个服务器无法高效运行超大型应用程序的问题。

2、为解决上述技术问题,本技术提供了一种服务器的物理内存扩展架构,包括设于所述服务器中的本地物理内存和与所述本地物理内存连接的中央处理器,所述中央处理器包括扩展端口,所述物理内存扩展架构包括:

3、与所述中央处理器的扩展端口连接的第一扩展设备,所述第一扩展设备包括第一物理内存,且所述第一物理内存配置有第一物理地址;

4、至少一级第i扩展设备,所述第i扩展设备与第i-1扩展设备连接,所述第i扩展设备包括第i物理内存,且所述第i物理内存配置有第i物理地址,i≥2且i为整数;

5、所述中央处理器,用于在接收到目标虚拟地址的数据处理指令时,根据所述目标虚拟地址确定目标物理地址,并对所述目标物理地址中的数据执行目标操作,所述目标物理地址为所述本地物理地址、所述第一物理地址至所述第i物理地址中的任意地址。

6、在一种实施例中,所述第一扩展设备还包括至少两个设备端口,其中第一设备端口与自身对应的所述第一物理内存连接,第二设备端口与第二扩展设备连接。

7、在一种实施例中,所述第一扩展设备还包括第一网络模块,所述第i扩展设备还包括第i网络模块;

8、所述第一网络模块与所述第二设备端口连接,所述第i网络模块的一端与所述第i物理内存连接,所述第i网络模块的另一端与一个第i-1网络模块或至少一个第i+1网络模块连接。

9、在一种实施例中,所述第一网络模块和/或所述第i网络模块为远程直接地址访问网络模块。

10、在一种实施例中,所述中央处理器中还包括控制器,所述控制器通过所述扩展端口与所述第一扩展设备连接;

11、所述控制器,用于实时获取所述目标物理地址,在所述目标物理地址为所述第一物理地址或所述第i物理地址中的地址时,拦截所述数据处理指令,并将所述数据处理指令通过所述扩展端口转发至所述第一扩展设备。

12、在一种实施例中,所述第一扩展设备,用于在接收到所述数据处理指令之后,若所述目标物理地址为所述第一物理地址中的地址,则对所述目标物理地址中的数据执行目标操作;若所述目标物理地址不是所述第一物理地址中的地址,则将所述数据处理指令转发至第二扩展设备。

13、为解决上述技术问题,本技术还提供了一种服务器,包括设于所述服务器中的本地物理内存和与所述本地物理内存连接的中央处理器,所述中央处理器包括扩展端口,还包括上述所述的服务器的物理内存扩展架构,所述物理内存扩展架构与所述扩展端口连接。

14、为解决上述技术问题,本技术还提供了一种服务器的物理内存扩展方法,应用于上述所述的服务器的物理内存扩展架构,所述物理内存扩展方法包括:

15、在所述服务器的操作系统启动后,获取第一扩展设备的第一物理内存及所述第i扩展设备的第i物理内存;

16、根据所述第一物理内存及所述第i物理内存为所述第一扩展设备分配第一物理地址以及为所述第i扩展设备分配第i物理地址;

17、在接收到目标虚拟地址的数据处理指令时,根据所述目标虚拟地址确定目标物理地址,并对所述目标物理地址中的数据执行目标操作,所述目标物理地址为所述本地物理地址、所述第一物理地址至所述第i物理地址中的任意地址。

18、在一种实施例中,在接收到目标虚拟地址的数据处理指令时,根据所述目标虚拟地址确定目标物理地址,并对所述目标物理地址中的数据执行目标操作,包括:

19、接收到目标虚拟地址的数据处理指令时,根据所述目标虚拟地址确定目标物理地址;

20、判断所述目标物理地址是否为本地物理地址;

21、若是所述本地物理地址,则直接对所述目标物理地址中的数据执行所述目标操作;

22、若不是所述本地物理地址,则将所述数据处理指令通过所述扩展端口转发至所述第一扩展设备,以触发所述第一扩展设备根据所述数据处理指令对所述目标物理地址中的数据执行所述目标操作。

23、在一种实施例中,所述中央处理器中还包括控制器,所述控制器通过所述扩展端口与所述第一扩展设备连接;根据所述第一物理内存及所述第i物理内存为所述第一扩展设备分配第一物理地址以及为所述第i扩展设备分配第i物理地址之后,所述物理内存扩展方法还包括:

24、配置所述控制器,以使所述控制器实时获取所述目标物理地址,在所述目标物理地址为所述第一物理地址或所述第i物理地址中的地址时,拦截所述数据处理指令,并将所述数据处理指令通过所述扩展端口转发至所述第一扩展设备;

25、将所述数据处理指令通过所述扩展端口转发至所述第一扩展设备,以触发所述第一扩展设备根据所述数据处理指令对所述目标物理地址中的数据执行所述目标操作,包括:

26、所述控制器在判定所述目标物理地址为所述第一物理地址或所述第i物理地址中的地址时,拦截所述数据处理指令,并将所述数据处理指令通过所述扩展端口转发至所述第一扩展设备,以触发所述第一扩展设备根据所述数据处理指令对所述目标物理地址中的数据执行所述目标操作。

27、在一种实施例中,所述第一扩展设备还包括至少两个设备端口,其中第一设备端口与自身对应的所述第一物理内存连接,第二设备端口与第二扩展设备连接,所述物理内存扩展方法还包括:

28、生成物理地址和所述设备端口的第一对应关系,并将所述第一对应关系写入至所述第一扩展设备内,所述第一对应关系中包括所述服务器的物理地址和各所述设备端口连接的物理内存的物理地址的对应关系。

29、在一种实施例中,触发所述第一扩展设备根据所述数据处理指令对所述目标物理地址中的数据执行所述目标操作,包括:

30、触发所述第一扩展设备根据所述数据处理指令确定目标物理地址;

31、根据所述目标物理地址及所述第一对应关系确定与所述目标物理地址对应的目标设备端口及所述目标设备端口连接的物理内存中的实际目标物理地址;

32、将所述数据处理指令通过所述目标设备端口发出,以对所述实际目标物理地址中的数据执行所述目标操作。

33、在一种实施例中,将所述数据处理指令通过所述目标设备端口发出,以对所述实际目标物理地址中的数据执行所述目标操作,包括:

34、在所述目标设备端口为所述第一设备端口时,则将所述数据处理指令通过所述第一设备端口发出,直接对所述实际目标物理地址中的数据执行所述目标操作;

35、在所述目标设备端口为所述第二设备端口时,则将所述数据处理指令通过所述第二设备端口发出,触发所述第二扩展设备根据所述数据处理指令对所述实际目标物理地址中的数据执行所述目标操作。

36、在一种实施例中,所述第一扩展设备还包括第一网络模块,所述第i扩展设备还包括第i网络模块;所述第一网络模块与所述第二设备端口连接,所述第i网络模块的一端与所述第i物理内存连接,所述第i网络模块的另一端与一个第i-1网络模块或至少一个第i+1网络模块连接;

37、生成所述设备端口和至少一个所述第二扩展设备的第二对应关系,并将所述第二对应关系写入至所述第一扩展设备内,所述第二对应关系中包括所述设备端口连接的物理内存的物理地址、各个所述第二扩展设备对应的第二物理地址及各个所述第二扩展设备对应的第二网络模块的网络地址的对应关系。

38、在一种实施例中,在判定所述目标设备端口为所述第二设备端口时,则将所述数据处理指令通过所述第二设备端口发出,触发所述第二扩展设备根据所述数据处理指令对所述实际目标物理地址中的数据执行所述目标操作,包括:

39、在目标设备端口为所述第二设备端口时,根据所述数据处理指令确定目标物理地址;

40、根据所述目标物理地址及所述第二对应关系确定目标的第二网络模块的目标网络地址及与所述目标的第二网络模块连接的第二物理内存中与所述目标物理地址对应的实际目标物理地址;

41、将所述数据处理指令通过所述第二设备端口发送至所述第一网络模块;

42、触发所述第一网络模块根据所述目标网络地址将所述数据处理指令转发至所述目标的第二网络模块,以触发所述第二扩展设备对所述实际目标物理地址中的数据执行目标操作。

43、在一种实施例中,在所述第一网络模块及所述第i网络模块为远程直接地址访问网络模块时,将所述数据处理指令通过所述第二设备端口发送至所述第一网络模块之后,所述物理内存扩展方法还包括:

44、触发所述第一扩展设备根据所述实际目标物理地址及目标网络地址通过所述第一网络模块和所述目标的第二网络模块,对所述实际目标物理地址中的数据执行目标操作。

45、在一种实施例中,根据所述第一物理内存及所述第i物理内存为所述第一扩展设备分配第一物理地址以及为所述第i扩展设备分配第i物理地址之前,还包括:

46、获取所述操作系统中物理地址的占用情况,根据所述占用情况确定未被占用的物理地址;

47、根据所述第一物理内存及所述第i物理内存为所述第一扩展设备分配第一物理地址以及为所述第i扩展设备分配第i物理地址,包括:

48、根据所述第一物理内存及所述第i物理内存从所述未被占用的物理地址中为所述第一扩展设备分配第一物理地址以及为所述第i扩展设备分配第i物理地址。

49、在一种实施例中,获取第一扩展设备的第一物理内存及所述第i扩展设备的第i物理内存,包括:

50、获取第一扩展设备的第一物理内存初始化信息及所述第i扩展设备的第i物理内存初始化信息;

51、在所述服务器启动后,扫描各所述扩展设备以获取第一物理内存实际信息及所述第i物理内存实际信息;

52、根据所述第一物理内存实际信息及所述第一物理内存初始化信息确定所述第一物理内存,根据所述第i物理内存实际信息及所述第i物理内存初始化信息确定所述第i物理内存。

53、为解决上述技术问题,本技术还提供了一种电子设备,包括:

54、存储器,用于存储计算机程序;

55、处理器,用于在执行计算机程序时,实现上述所述的服务器的物理内存扩展方法的步骤。

56、为解决上述技术问题,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的服务器的物理内存扩展方法的步骤。

57、本技术提供了一种服务器的物理内存扩展架构、服务器、方法、设备及介质,涉及内存管理领域,用于解决单个服务器物理地址空间受限进而无法高效运行超大型应用程序的问题。该方案包括与所述中央处理器的扩展端口连接的第一扩展设备以及至少一级的第i扩展设备,各扩展设备均包括物理内存且设有物理地址。本技术通过连接多个扩展设备来扩展服务器的物理内存空间,这样一来,即使单个服务器的物理地址空间受限,但通过连接多个扩展设备,可以实现更大范围的物理内存空间,应用程序可以在更大范围的物理内存空间中运行,而无需更改应用程序架构或分布式部署在多台服务器上,从而解决了单个服务器无法高效运行超大型应用程序的问题。

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