内存页的处理方法、设备、装置以及存储介质与流程

文档序号:40407859发布日期:2024-12-24 14:40阅读:10来源:国知局
内存页的处理方法、设备、装置以及存储介质与流程

本技术涉及通信,特别涉及一种内存页的处理方法、设备、装置以及存储介质。


背景技术:

1、为了缓解内存墙导致的性能瓶颈,在相关技术中,尝试从微架构层面的优化来弥补中央处理器(central processing unit,cpu)与内存之间的性能差距,例如,芯片微架构的设计尝试通过频繁模式压缩(frequent pattern compression,fpc)等缓存压缩技术,来减少片外通信的数据量,具体地,当cpu的缓存中的数据从缓存行(cache line)被淘汰到内存时,内存管理单元(memory management unit,mmu)按照缓存行中的数据所匹配的缓存压缩模式,对缓存行中的数据进行压缩,得到压缩数据,将压缩数据存储到内存,以实现将缓存行的数据淘汰到内存。

2、但是,缓存行中除了应用程序写入的数据以外还可能存在一些随机数值,导致缓存行中的数据不能很好的匹配数据压缩模式,没有匹配到数据压缩模式的数据在被淘汰出缓存行时无法以压缩的方式存储在内存的,降低了缓存向内存淘汰数据时缓存数据的压缩率。


技术实现思路

1、本技术实施例提供了一种内存页的处理方法、设备、装置以及存储介质,能够提高缓存数据的压缩率。该技术方案如下:

2、第一方面,提供了一种内存页的处理方法,该方法包括如下步骤:在应用程序所访问的虚拟地址(称为第一地址虚拟)引发缺页中断的情况下,为第一虚拟地址分配内存页(称为第一内存页);之后,在第一内存页填充:缓存压缩模式对应数据序列中的数据(称为第一数据),其中,缓存压缩模式是将缓存中应用程序写入的数据迁移至内存页时所使用的数据压缩模式;然后,再基于第一虚拟地址,对填充后的第一内存页进行访问。

3、本方法通过在为引发缺页中断的虚拟地址分配完内存页后,预先在分配的内存页中填充第一数据,之后,再对填充第一数据的内存页进行访问,后续如果将内存页中的数据迁移到缓存,内存页中填充的第一数据也会迁移到缓存,如果在缓存中该内存页的数据淘汰到内存,淘汰的缓存数据也可能包括第一数据,由于第一数据为缓存压缩模式对应数据序列中的数据,当包括第一数据的缓存数据淘汰回内存时,能够增加缓存数据匹配缓存压缩模式的概率,进而能够提高缓存数据的压缩率。

4、在一种可能的实现方式中,上述在第一内存页填充第一数据的过程可以是:在应用程序开启内存预填充功能的情况下,在第一内存页填充第一数据,其中,内存预填充功能指示在应用程序访问空内存页之前在空内存页填充第一数据。

5、基于上述可能的实现方式,在应用程序开启内存预填充功能的情况下,才会为应用程序所分配到的内存页预填充第一数据,无需为运行的各个应用程序分配的内存页都预填充第一数据,减少了填充第一数据的工作量。

6、在一种可能的实现方式中,在应用程序开启内存预填充功能的情况下,在第一内存页填充第一数据之前,该方法还包括如下步骤:基于应用程序的运行情况,为应用程序周期性开启内存预填充功能。

7、在一种可能的实现方式中,在应用程序开启内存预填充功能的情况下,在第一内存页填充第一数据之前,该方法还包括如下步骤:在应用程序的类型是目标类型情况下,为应用程序开启内存预填充功能,目标类型的应用程序适用缓存压缩模式。

8、基于上述可能的实现方式,在应用程序适用该缓存压缩模式的情况下,才会为该应用程序开启内存预填充功能,以便在该应用程序运行过程中,通过为该应用程序的内存页预填充第一数据,来提高该应用程序的数据从缓存迁移至内存时的压缩效率,且还能避免对不适用该缓存压缩模式的应用程序的内存页填充第一数据,减少了填充第一数据的工作量。

9、在一种可能的实现方式中,上述基于第一虚拟地址,对填充后的第一内存页进行访问包括如下步骤:先接收应用程序的第一写请求,第一写请求指示向第一虚拟地址写入第二数据,再将第一内存页中第一虚拟地址对应位置处的第一数据更新为第二数据。

10、基于上述可能的实现方式,第一数据为应用程序向内存页之前所填充的数据,后续应用程序在向内存页写入数据时,将第一数据更新为待写入数据即可,从而在不影响应用程序正常写入数据的情况下,通过预填充第一数据,来提高缓存压缩率。

11、在一种可能的实现方式中,多个第二内存页均用于存储应用程序的同一计算任务的任务数据,多个第二内存页均填充第一数据,该方法还包括如下步骤:接收应用程序的第二写请求,第二写请求指示向第二虚拟地址写入任务数据;将多个第二内存页中第二虚拟地址对应位置处的第一数据更新为任务数据。

12、基于上述可能的实现方式,对应同一计算任务的多个内存页均已填充第一数据,在向任一内存页写入任务数据时,可以将任一内存页中的第一数据更新为任务数据,即使该多个内存页中的任个内存页没有写入任务数据,因为第一数据的存在,也不会向该内存页写入随机数值,从而能够避免随机数值影响该内存页的缓存数据的压缩,从而能够提高缓存压缩率。

13、在一种可能的实现方式中,第一数据是该数据序列中的各个数据;或者,第一数据是该数据序列中出现频率最高的s个数据,s大于0;或者,第一数据是数据序列中连续的r个数据,r大于0。

14、基于上述可能的实现方式,在第一内存页填充该数据序列中的第一数据,后续如果将第一内存页的数据迁移到缓存,在从缓存将内存迁移第一内存页的缓存数据时,该缓存数据中仍可能有部分第一数据保留在缓存,以便缓存数据更容易与数据压缩模式匹配,以进一步提高缓存数据的压缩率。

15、在一种可能的实现方式中,第一数据是多个数据序列中出现频率最高的s个数据,该多个数据序列对应不同的缓存压缩模式,s大于0;或者,第一数据是该多个数据序列共有的数据。

16、基于上述可能的实现方式,在第一内存页填充多个数据序列中的第一数据,后续如果将第一内存页的数据迁移到缓存,在从缓存将内存迁移第一内存页的缓存数据时,该缓存数据中仍可能有部分第一数据保留在缓存,以便缓存数据更容易与这多个数据压缩模式匹配,增加了该缓存数据与数据压缩模式匹配到的概率,以进一步提高缓存数据的压缩率。

17、第二方面,提供了一种内存页的处理方法,该方法包括如下步骤:在获取到分配通告消息后,在第一内存页填充第一数据,其中,分配通告消息用于通告针对应用程序访问第一虚拟地址所引发的缺页中断,已为第一虚拟地址分配第一内存页,第一数据是缓存压缩模式对应数据序列中的数据,缓存压缩模式是将缓存中应用程序写入的数据迁移至内存页时所使用的数据压缩模式。

18、在一种可能的实现方式中,在第一内存页填充第一数据包括如下步骤:在应用程序开启内存预填充功能的情况下,在第一内存页填充第一数据,内存预填充功能指示在应用程序访问空内存页之前在空内存页填充第一数据。

19、在一种可能的实现方式中,在应用程序开启内存预填充功能的情况下,在第一内存页填充第一数据之前,该方法还包括如下步骤:基于应用程序的运行情况,为应用程序周期性开启内存预填充功能。

20、在一种可能的实现方式中,在应用程序开启内存预填充功能的情况下,在第一内存页填充第一数据之前,该方法还包括如下步骤:在应用程序的类型是目标类型情况下,为应用程序开启内存预填充功能,目标类型的应用程序适用缓存压缩模式。

21、在一种可能的实现方式中,第一数据是该数据序列中的各个数据;或者,第一数据是该数据序列中出现频率最高的s个数据,s大于0;或者,第一数据是数据序列中连续的r个数据,r大于0。

22、在一种可能的实现方式中,第一数据是多个数据序列中出现频率最高的s个数据,该多个数据序列对应不同的缓存压缩模式,s大于0;或者,第一数据是该多个数据序列共有的数据。

23、第三方面,提供了一种内存页的处理设备,该内存页的处理设备包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的内存页的处理方法的功能模块。

24、第四方面,提供了一种内存填充装置,该内存填充装置包括用于执行上述第二方面或上述第二方面的任一种可选方式提供的内存页的处理方法的功能模块。

25、第五方面,提供一种电子设备,该电子设备包括处理器,所述处理器用于执行程序代码,使得电子设备执行以实现如上述第一方面或上述第一方面的任一种可选方式提供的内存页的处理方法所执行的操作。

26、第六方面,提供一种内存填充装置,该内存填充装置包括处理器,所述处理器用于执行程序代码,使得内存填充装置执行以实现如上述第二方面或上述第二方面的任一种可选方式提供的内存页的处理方法所执行的操作。

27、第七方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该程序代码由处理器读取以使电子设备执行如上述第一方面或上述第一方面的任一种可选方式提供的内存页的处理方法所执行的操作。

28、第八方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该程序代码由处理器读取以使内存填充装置执行如上述第二方面或上述第二方面的任一种可选方式提供的内存页的处理方法所执行的操作。

29、第九方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,电子设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该电子设备执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。

30、第十方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,内存填充装置的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该内存填充装置执行上述第二方面或者第二方面的各种可选实现方式中提供的方法。

31、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

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