本申请涉及信息技术,具体涉及一种用于访问内存页的方法及装置。
背景技术:
1、在计算机系统中内存分配是指为程序或数据分配内存空间的过程,内存清零是指在分配内存时,将分配的内存空间的内容设置为零,这样可以确保新分配的内存不包含旧数据,从而提高系统的安全性和可靠性。目前,在许多编程语言和操作系统中,都有内置的内存分配和自动清零功能。例如,在用户态,使用c语言进行程序的编写时,可以使用calloc函数来分配内存并将分配的内存空间中的内容进行清零,calloc函数会根据传入的参数计算所需的内存大小,并为其分配内存,分配的内存空间将自动清零,然后返回指向该内存空间的指针。
2、在操作系统层面,例如linux,内核在分配内存页时,通常也会进行自动清零操作,可以通过内存管理单元(memory management unit,mmu)和页表来实现,当一个新的内存页被分配给一个进程时,mmu会将该页映射到一个特殊的零页,该零页的内容全为零,当进程首次访问这个内存页时,mmu会捕获到这个内存页的访问,随即会为进程分配一个新的物理内存页,同时将零页的内容复制到新分配的内存页,这样,进程就可以使用一个已经清零的内存页。然而,由于mmu位于中央处理器(central processing unit,cpu)内,因此,上述的内存分配清零都是通过cpu执行固定的代码完成清零的,需要占用cpu的资源。
技术实现思路
1、本申请实施例致力于提供一种用于访问内存页的方法及装置,下文从以下几个方面进行介绍。
2、第一方面,提供了一种用于访问内存页的方法,包括:响应于接收第一访存命令,处理器进入缺页异常处理,所述第一访存命令用于访问目标虚拟内存页;在所述缺页异常处理过程中,所述处理器建立所述目标虚拟内存页与目标物理内存页之间的映射关系;所述处理器向内存控制器发送第一控制命令,所述第一控制命令用于控制所述内存控制单元(memory control unit,mcu)将所述目标物理内存页置零。
3、在一些实现方式中,所述mcu设置有用于清除所述目标物理页的控制命令接口,所述第一控制命令调用所述控制命令接口来将所述目标物理内存页置零,其中,所述控制命令接口用于指示以下一种或多种:所述第一控制命令关联的所述目标物理内存页的数量;所述第一控制命令关联的所述目标物理内存页中每页物理内存页的大小;所述第一控制命令关联的所述目标物理内存页的物理地址。
4、在一些实现方式中,所述方法还包括:响应于所述处理器向所述内存控制器发送所述第一控制命令,所述处理器返回用户态,执行所述第一访存命令对应的操作。
5、第二方面,提供了一种用于访问内存页的方法,包括:在处理器进入缺页异常操作时,内存控制单元mcu接收所述处理器发送的第一控制命令,所述第一控制命令用于控制所述mcu将目标物理内存页置零;响应于第一控制命令,所述mcu对所述目标物理内存页执行置零操作。
6、在一些实现方式中,所述处理器包括mmu,所述目标物理内存页对应目标虚拟内存页,所述缺页异常操作是所述处理器访问所述目标虚拟内存页触发的。
7、在一些实现方式中,所述mcu设置有用于清除所述目标物理页的控制命令接口,所述第一控制命令调用所述控制命令接口来将所述目标物理内存页置零,其中,所述控制命令接口用于指示以下一种或多种:所述第一控制命令关联的所述目标物理内存页的数量;所述第一控制命令关联的所述目标物理内存页中每页物理内存页的大小;所述第一控制命令关联的所述目标物理内存页的物理地址。
8、第三方面,提供了一种用于访问内存页的装置,包括:处理单元,用于响应于接收第一访存命令,进入缺页异常处理,所述第一访存命令用于访问目标虚拟内存页;所述处理单元510,在所述缺页异常处理过程中,建立所述目标虚拟内存页与目标物理内存页之间的映射关系;发送单元,用于向内存控制器发送第一控制命令,所述第一控制命令用于控制所述mcu将所述目标物理内存页置零。
9、在一些实现方式中,所述mcu设置有用于清除所述目标物理页的控制命令接口,所述第一控制命令调用所述控制命令接口来将所述目标物理内存页置零,其中,所述控制命令接口用于指示以下一种或多种:所述第一控制命令关联的所述目标物理内存页的数量;所述第一控制命令关联的所述目标物理内存页中每页物理内存页的大小;所述第一控制命令关联的所述目标物理内存页的物理地址。
10、在一些实现方式中,所述方法还包括:响应于所述处理器向所述内存控制器发送所述第一控制命令,所述处理器返回用户态,执行所述第一访存命令对应的操作。
11、第四方面,提供了一种用于访问内存页的装置,包括:接收单元,用于在处理器进入缺页异常操作时,接收所述处理器发送的第一控制命令,所述第一控制命令用于控制所述mcu将目标物理内存页置零;处理单元,用于响应于第一控制命令,所述mcu对所述目标物理内存页执行置零操作。
12、在一些实现方式中,所述处理器包括mmu,所述目标物理内存页对应目标虚拟内存页,所述缺页异常操作是所述处理器访问所述目标虚拟内存页触发的。
13、在一些实现方式中,所述mcu设置有用于清除所述目标物理页的控制命令接口,所述第一控制命令调用所述控制命令接口来将所述目标物理内存页置零,其中,所述控制命令接口用于指示以下一种或多种:所述第一控制命令关联的所述目标物理内存页的数量;所述第一控制命令关联的所述目标物理内存页中每页物理内存页的大小;所述第一控制命令关联的所述目标物理内存页的物理地址。
14、第五方面,提供了一种计算设备,包括mcu、处理器和存储器。该处理器用于控制收发器收发信号,该存储器用于存储计算机程序,该处理器与mcu用于从存储器中调用并运行该计算机程序,使得该计算设备执行上述各方面中的方法。
15、第六方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
16、第七方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
17、第八方面,提供了一种芯片系统,该芯片系统包括处理器,用于终端设备实现上述方面中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
18、在本申请实施例中,可以利用与处理器相互独立的内存控制单元对物理内存页进行置零操作,相比于传统方案中,利用cpu对虚拟内存页进行置零操作,有助于减少执行置零操作所占用的cpu的资源。
1.一种用于访问内存页的方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述内存控制单元设置有用于清除所述目标物理页的控制命令接口,所述第一控制命令调用所述控制命令接口来将所述目标物理内存页置零,其中,所述控制命令接口用于指示以下一种或多种:
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
4.一种用于访问内存页的方法,其特征在于,包括:
5.如权利要求4所述的方法,其特征在于,所述处理器包括内存管理单元,所述目标物理内存页对应目标虚拟内存页,所述缺页异常操作是所述处理器访问所述目标虚拟内存页触发的。
6.如权利要求4所述的方法,其特征在于,所述内存控制单元设置有用于清除所述目标物理页的控制命令接口,所述第一控制命令调用所述控制命令接口来将所述目标物理内存页置零,其中,所述控制命令接口用于指示以下一种或多种:
7.一种处理器,其特征在于,所述处理器用于从存储器中调用并运行计算机程序,以执行如权利要求1-3中任一项所述的方法。
8.一种内存控制器,其特征在于,所述内存控制器用于从存储器中调用并运行计算机程序,以执行如权利要求4-6中任一项所述的方法。
9.一种计算设备,其特征在于,所述计算设备包括处理器以及内存控制器,其中,处理器器用于执行权利要求1-3中任一项的方法,所述内存控制器执行如权利要求4-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,当所述程序代码在计算机上运行时,使得计算机执行权利要求1-6中任一项的方法。