掌桥专利:专业的专利平台
掌桥专利
首页

页面访问次数的确定方法、电子设备及计算设备

文献发布时间:2024-04-18 20:00:50


页面访问次数的确定方法、电子设备及计算设备

技术领域

本申请涉及内存管理技术领域,尤其涉及页面访问次数的确定方法、电子设备及计算设备。

背景技术

随着内存管理技术的不断发展,为了更有效的分配内存资源,提高内存利用率,可以使用分级分页的方式管理内存资源。

当前,针对分级内存的场景,需要统计页面访问次数,从而根据页面访问次数完成页面迁移,保证内存的利用率。对于通过软件进行页面访问次数统计的场景,为了避免统计页面访问次数造成较大的开销,可以将内存进行分段处理,假定地址分段内某些特定页面是该分段内内存页面的典型代表,统计代表页面的访问次数,并且将页面访问次数和地址分段信息存储在一起。

上述相关技术中,导致了对页面的页面访问次数的统计不全面,从而影响后续按照页面访问次数进行页面迁移服务的效果,进而影响内存的利用率。

发明内容

本申请实施例提供了一种页面访问次数的确定方法、电子设备及计算设备,在节省了存储空间的同时,由于页面访问次数存储在页面对应的页表项中,还提高了查询指定页面的页面访问次数的效率,进而可以提高内存的利用率。

第一方面,本申请实施例提供了一种页面访问次数的确定方法,该方法包括:确定目标页表地址,其中,目标页表地址用于指示目标页表在计算设备的内存中的存储地址;基于目标页表地址,确定目标页表;其中,目标页表为待确定访问次数的页表;目标页表包括多个页表项;每个页表项包括物理页号、访问位和忽略位;访问位用于指示物理页号指示的物理页面是否被访问;忽略位是目标页表项中值被第一处理器忽略的一位或多位;确定目标页表项的访问位状态;其中,目标页表项为在目标页表中正在遍历的页表项;在目标页表项的访问位指示目标物理页号对应的物理页面被访问的情况下,更新目标页表项中忽略位存储的目标物理页号对应的访问次数,其中,目标物理页号为目标页表项中的物理页号。

可以理解的是,通过确定目标页表地址,示例性的,可以通过配置信息中的基地址和偏移地址确定目标页表地址,可以根据目标页表地址获取目标页表地址指示的目标页表并且扫描目标页表中的各个页表项,通过获取正在遍历的目标页表项的访问位状态确定目标页表项对应的物理页面是否被访问,若目标页表项的访问位指示目标物理页面被访问,更新目标页表项中的忽略位中存储的目标物理页面的访问次数,从而避免了设置额外的用于存储目标物理页面的访问次数的存储空间,在节省存储空间的同时由于目标物理页面的访问次数存储在目标物理页面对应的目标页表项中,还提高了查询指定物理页面的访问次数的效率,进而可以提高内存的利用率。

在一种可能的实现方式中,更新目标页表项的忽略位中存储的页面访问次数之前,还包括:获取忽略位的掩码数据;基于掩码数据从目标页表项的忽略位中确定目标忽略位;在目标页表项的访问位指示目标物理页号对应的物理页面被访问的情况下,更新目标页表项的忽略位中存储的目标物理页号对应的访问次数,包括:在目标页表项的访问位指示目标物理页号对应的物理页面被访问的情况下,更新目标页表项的目标忽略位中存储的目标物理页号对应的访问次数。

可以理解的是,由于目标页表项中可以包括多个忽略位,虽然忽略位是第一处理器忽略访问的位,但是其他软件可能会访问,为了适应计算设备上其他软件使用忽略位的情况,可以通过获取忽略位的掩码数据,使得目标页表项中指定的目标忽略位用于存储目标物理页面的访问次数。

在一种可能的实现方式中,在目标页表项的访问位指示目标物理页号对应的物理页面被访问的情况下,更新目标页表项的忽略位存储的目标物理页号对应的访问次数,包括:在目标页表项的访问位指示目标物理页号对应的物理页面被访问的情况下,将忽略位中存储的目标物理页号对应的访问次数值加一。

可以理解的是,每一次获取到目标页表项的访问位状态指示被访问过的情况时,可以将对应的忽略位存储的目标物理页号对应的访问次数进行加一,以更新统计到的目标物理页面的访问次数。

在一种可能的实现方式中,在目标页表项的访问位指示目标物理页号对应的物理页面被访问的情况下,方法还包括:在确定目标物理页号对应的物理页面的访问次数为零的情况下,将目标页表项的目标物理页号对应的虚拟页号存储至第一存储区;其中,第一存储区位于内存中。

可以理解的是,在确定目标页表项忽略位指示的目标物理页号对应的物理页面第一次被访问的情况下,可以将该目标物理页号对应的虚拟页号存储在计算设备的内存的第一存储区中,以便后续计算设备通过获取第一存储区中的虚拟页号确定已经访问过的虚拟地址对应的物理页面。

在一种可能的实现方式中,在确定目标页表项忽略位存储的目标物理页号对应的物理页面第一次被访问的情况下,可以将该目标物理页号对应的虚拟页号存储在计算设备的内存的第一存储区中,包括:在确定忽略位中存储的访问次数为零的情况下,将目标物理页号对应的虚拟页号存储至第一缓存区;在第一缓存区中存储的虚拟页号达到预定条件的情况下,将虚拟页号存储至第一存储区;其中,预定条件包括预定存储大小或预定数量。

可以理解的是,在确定目标页表项指示的目标物理页号对应的物理页面第一次被访问的情况下,可以将目标物理页号对应的虚拟页号存储至第一缓存区,直到确定第一缓存区中的虚拟页号达到预定条件时再将虚拟页号存储至第一存储区。以便后续在第一缓存区中的虚拟页号达到预定条件时统一将虚拟页号转存到第一存储区中,从而提高了内存利用率。

在一种可能的实现方式中,预定条件为预定存储大小为直接内存读取DMA的最小长度;方法还包括:获取输出地址;其中,输出地址为第一存储区中的指定存储地址;在第一缓存区中存储的虚拟页号达到DMA的最小长度的情况下,基于输出地址将虚拟页号存储至第一存储区。

可以理解的是,通过获取第一存储区中的指定存储地址,在确定第一缓存区中存储的虚拟页号达到DMA的最小长度的情况下,可以按照指定存储地址,也就是输出地址将虚拟页号存储到第一存储区中,以便在第一缓存区中的虚拟页号达到DMA的最小长度时统一将虚拟页号转存到第一存储区中的指定存储地址中,从而防止多次DMA操作时的数据覆盖。

在一种可能的实现方式中,目标页表为多级页表的最后一级页表;多级页表的第一级页表为页目录;方法还包括:获取页目录的更新信息;基于页目录的更新信息,确定目标页表是否被更新;在目标页表被更新,且已经开始遍历目标页表的情况下,停止遍历目标页表。

可以理解的是,针对多级页表的情况目标页表可以是多级页表的最后一级页表,多级页表的第一级页表可以是页目录,页目录更新时可能影响到目标页表,所以在确定页目录更新后,可以根据页目录的更新信息确定目标页表是否被更新,若确定目标页表被更新,为了不影响遍历目标页表进而更新目标物理页面的访问次数,需要停止对已经开始遍历的目标页表进行遍历。

在一种可能的实现方式中,方法还包括:在目标页表被更新,且未开始遍历目标页表的情况下,遍历更新后的目标页表。

可以理解的是,如果目标页表确定被更新,并且还未开始遍历目标页表,则可以直接遍历更新后的目标页表。

在一种可能的实现方式中,在目标页表项的访问位指示目标物理页号对应的物理页面被访问的情况下,方法还包括:复位目标页表项的访问位。

可以理解的是,在获取访问位的状态之后,在更新目标物理页面的访问次数的过程中,可以同步对目标页表项的访问位的状态进行初始化,也就是复位,以使得后续可以继续通过访问位的状态确定是否再次对目标页表项指示的目标物理页号对应的物理页面进行访问,在清除该页面的访问位的同时,可以完成对目标物理页面的访问次数的更新,或者在清除该页面的访问位后,可以完成对目标物理页号对应的页面的访问次数的更新,或者在对目标物理页号对应的物理页面的访问次数的更新后,清除该页面的访问位。

第二方面,本申请实施例提供了一种页面访问次数的确定装置,该页面访问次数的确定装置用于执行上述第一方面提供的任意一种页面访问次数的确定方法。

在一种可能的实现方式中,本申请可以根据上述第一方面提供的方法,对该页面访问次数的确定装置进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。示例性的,本申请可以按照功能将该页面访问次数的确定装置划分为获取模块、处理模块以及存储模块等。上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第一方面或其相应的可能的实现方式提供的技术方案,此处不再赘述。

第三方面,本申请实施例提供了一种电子设备,电子设备包含第二处理器和存储器,第二处理器与存储器耦合;该存储器用于存储计算机指令,该计算机指令由第二处理器加载并执行以使电子设备实现如上述方面的页面访问次数的确定方法。

第四方面,本申请实施例提供了一种计算设备,计算设备包括第一处理器、内存和如上述方面的电子设备,其中,电子设备分别与第一处理器和内存电连接。

第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序指令,计算机程序指令由第二处理器加载并执行以实现如上述方面的页面访问次数的确定方法。

第六方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的第二处理器从计算机可读存储介质读取该计算机指令,第二处理器执行该计算机指令,使得该电子设备执行上述第一方面的各种可选实现方式中提供的页面访问次数的确定方法。

本申请中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。

本申请的这些方面或其他方面在以下的描述中会更加简明易懂。

附图说明

图1是根据一示例性实施例示出的一种分级页面结构的示意图;

图2是根据一示例性实施例示出的一种计算设备的示意图;

图3是根据一示例性实施例示出的一种页面访问次数的确定方法的流程示意图;

图4是图3所示实施例中涉及的一种页面访问次数统计存储的流程示意图;

图5是图3所示实施例中涉及的一种针对页目录更新场景的页表更新流程示意图;

图6是根据一示例性实施例示出的一种统计页面访问次数的系统结构示意图;

图7是本申请一个示例性实施例提供的页面访问次数的确定装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。

首先,对本申请实施例的应用场景进行示例性介绍。

当前,为了更加有效的管理内存,减少存储错误,可以在物理内存与进程之间设置虚拟内存作为中间层,虚拟内存的虚拟地址空间可以将虚拟内存划分为多个页面(page),相应的物理内存可以被划分为与页面大小相同的物理存储单元,也就是页框或者物理页面。每一个进程对应一个页表,页表可以用于维护每个虚拟地址空间与物理内存空间的映射关系,每个页表包括至少一个页表项,每个页表项可以用于指示一个页面,该页面对应内存中的相应的物理存储单元。

另外,为了内存的高效使用,一般不会将大规模的页表存放在连续的内存上,所以可以通过以页表的地址索引表的形式,如页目录,对页表进行索引。通过提供页目录的形式,使用二维结构进行内存管理,同样的,还可以通过多维的页表结构,如多级页表的形式,进行内存管理。

其中,页目录中的表项,用于确定页表所在的物理内存页面。页目录项可以包括页表地址和其它位;页表的页表项用于描述某个逻辑内存地址页面到物理内存地址页面的对应关系,页表项中可以包括页面对应的物理存储单元的基地址以及若干功能位,该基地址可以用于表征页表在物理内存中的起始存储地址。

比如,页表项中可以包括页号、状态位P、访问字段A、修改位M、忽略位I;

其中,状态位P可以用于指示该页面是否已调入内存,供程序访问时参考;访问字段A可以用于记录是否已经访问过该页面,供选择换出页面时参考;修改位M用于表示该页在调入内存后是否被修改过,供置换页面时参考;硬件忽略位I为处理器页表中设置的处理器会忽略其值的位。

比如,对于ARM处理器而言,其用于登记4K大小页面的页表项中,位2-7,位10-11,位51-58均为硬件忽略位,处理器外的其它实体均可以自由使用这些硬件忽略位而不会对处理器的执行造成影响。

示例性的,图1示出了本申请实施例提供的一种分级页面结构的示意图。如图1所示,寄存器中存储有页目录地址,在根据虚拟地址进行数据访问的过程中,CPU获取到虚拟地址后,CPU中的MMU(内存管理单元)通过从寄存器中获取页目录地址,根据页目录地址确定进程对应的页目录,根据虚拟地址的前10位(31-22位)中的页目录偏移值确定该页目录中的页表i的基地址,结合虚拟地址的21-10位中的页表偏移值,确定页表i中的与该虚拟地址页面对应的页帧号,从而得到该页框对应的物理基地址,基于该页框的物理基地址与虚拟地址中后10位(9-0位)确定物理地址,按照物理地址可以访问物理内存中的对应的数据或者代码指令。

在相关技术中,针对分级内存的场景,需要统计页面访问次数,从而根据页面访问次数完成页面迁移,保证内存的利用率。对于通过软件进行页面访问次数统计的场景,为了避免统计页面访问次数造成较大的开销,可以将内存进行分段处理,假定地址分段内某些特定页面是该分段内内存页面的典型代表,统计代表页面的访问次数,并且将页面访问次数和地址分段信息存储在一起。这就导致了对页面的页面访问次数的统计不全面,从而影响后续按照页面访问次数进行页面迁移服务的效果,进而影响内存的利用率。

而对于通过专门的硬件进行页面访问次数统计时,采取全量统计的方式,并且在专门的硬件中设置有多个寄存器,每个寄存器可以分别对应一个页面,用于存储该页面的页面访问次数。通过上述方式虽然可以全面的统计各个页面的页面访问次数,但是需要在专门的硬件中设置足够大的存储空间用于存储各个页面的页面访问次数,并且由于各个页面的页面访问次数是通过链表数据结构进行存储的,这就导致了在检索指定页面的页面访问次数时需要耗费较长的时间,不利于快速找到页面的访问次数信息,从而影响进行页面迁移服务的效率,进而影响内存的利用率。

有鉴于此,本申请下述实施例提供了一种页面访问次数的确定方法,在按照相关技术进行内存分页管理的基础上,通过专门的页面扫描硬件扫描各个页面,获取目标物理页面的访问次数,并且将访问次数存储在该目标物理页面的页表项的忽略位中,从而避免了设置额外的用于存储访问次数信息的存储空间,在节省存储空间的同时由于目标物理页面的访问次数存储在目标物理页面对应的页表项中,还提高了查询目标物理页面的访问次数的效率,进而可以提高内存的利用率。

其次,对本申请实施例的系统架构进行示例性介绍。

图2示出了本申请实施例提供的一种计算设备的示意图。该计算设备100包括第一实体可以是电子设备106。

计算设备100还可以包括第一处理器102以及内存103。第一处理器102以及内存103分别与电子设备106电连接。

电子设备106中可以包括第二处理器107以及存储器108。第二处理器107以及存储器108电连接。

电子设备106可以用于对物理页面的访问情况进行统计,计算设备100可以用于获取物理页面的访问次数。

其中,该电子设备106可以是页面扫描硬件,该电子设备106可以用于扫描计算设备100通过第一处理器102运行的目标应用程序对应的页表,该页表可以存储在内存103中,并且电子设备106可以遍历页表中的各个页表项,然后针对各个页表项统计各个页表项中的访问字段位A(access)是否被置位。

其中,访问字段位A用于指示页表项对应的物理页面的访问位状态,在初始化状态下,该访问字段位A可以被置位为0,若物理页面被访问,则可以在该物理页面对应的页表项中的访问字段位A(access)由初始化置位0改置为1。

也就是说,在电子设备106确定访问字段A位的置位为1时,可以确定该页面被访问,电子设备106可以在页表项中的忽略位I中存储的物理页面的访问次数或者在页表项中的忽略位I中已存储的物理页面的访问次数的基础上进行更新,从而实现对页表中包含的各个页表项对应页面的物理页面的访问次数进行记录,避免了设置额外的存储空间所导致的资源浪费,同时由于物理页面的访问次数存储在该物理页面对应的页表项中的忽略位I中,便于查询该物理页面的访问次数,提高了物理页面的访问次数获取的效率,从而提高了内存的利用率。

第一处理器102可以是中央处理器(central processing unit,CPU),第一处理器102可以用于控制向电子设备106发送配置信息,该配置信息中可以包括目标应用程序对应的页表地址信息。第一处理器102还可以用于执行页面迁移服务,第一处理器102可以在内存103中配置用于存储密集信息的存储空间,如第一存储区104以及用于存储稀疏信息的存储空间,如第二存储区105。

其中,用于存储密集信息的存储空间,如第一存储区104以及用于存储稀疏信息的存储空间,如第二存储区105均可以是第一处理器102在内存103中配置的存储空间,用于存储密集信息的存储空间,如第一存储区104可以用于存储统计到的访问次数不为零的物理页面对应的虚拟页号;用于存储稀疏信息的存储空间,如第二存储区105可以用于存储进行统计的目标页表。

另外,第一处理器102还可以运行操作系统,针对多级内存的场景,若电子设备106已经对目标应用程序的页表进行扫描,但是操作系统的内核已经删除了对某页表项所在内存页面的映射关系,也就是说,内核已经不再将某页面对应的页表项作为需要遍历的页表项,为了避免电子设备106错误的对内存内容进行修改,内核需要通过回调机制将页表项的修改信息通告给电子设备106,电子设备106在接收到通知后对待扫描的页表项集合进行更新。

在一种可能的实现方式中,第一实体还可以是计算设备100中的软件,该软件由第一处理器102执行。

需要说明的,本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

为了便于理解,以下结合附图对本申请的提供的页面访问次数的确定方法进行示例性介绍,该页面访问次数的确定方法适用于图2所示的计算设备,该页面访问次数的确定方法由电子设备执行,具体而言,该页面访问次数的确定方法由电子设备中的第二处理器执行相应执行实现。

图3示出了本申请一个示例性实施例提供的页面访问次数的确定方法的流程示意图。该页面访问次数的确定方法包括如下步骤:

S101,确定目标页表地址。

在一种可能的实现方式中,为了使得电子设备可以开始扫描目标页表,第一处理器需要预先确定页表地址、偏移地址(偏移地址段,如果不设置,则默认对所有页表进行扫描)以及第一存储区。其中,第一处理器在内存中配置一个存储空间作为第一存储区,第一存储区可以用于存储指示访问次数不为零的物理页面的信息,比如,第一存储区可以用于存储访问次数不为零的物理页面对应的虚拟页号,以供后续第一处理器对已访问过的物理页面进行数据迁移等处理,以提高内存的利用率。

在一种可能的实现方式中,计算设备还可以确定第二存储区,第二存储区同样可以是内存中的存储区,用于存储稀疏信息,第二存储区可以用于存储进行访问次数统计的目标页表,以供后续电子设备按照目标页表地址确定目标页表,从而实现对目标页表指示的各个物理页面的访问次数进行统计。

在本申请实施例中,计算设备中用于进行物理页面的访问次数统计的电子设备可以确定目标页表地址。

其中,目标页表地址可以用于指示目标页表在内存中的存储地址。目标页表可以是目标应用程序使用的页表。目标应用程序可以是所关注访存过程的应用程序。

在一种可能的实现方式中,第一处理器可以设置配置信息,该配置信息中包括页表基地址(页目录地址)和偏移地址,将设置的配置信息发送给电子设备,电子设备可以通过获取到的配置信息,确定目标页表地址。

在一种可能的实现方式中,为了统计目标应用程序对于各个物理页面的访问次数,计算设备可以注册分配一个用于存储密集信息的存储空间,比如第一存储区,同时还可以注册分配一个用于存储稀疏信息的存储空间,比如,第二存储区。计算设备可以将页表地址和偏移地址作为配置信息发送给电子设备,电子设备可以根据页表地址和偏移地址确定目标页表地址。计算设备还可以将第一存储区的位置信息发送给电子设备,以使得电子设备后续可以通知计算设备将统计确定的已访问的物理页面对应的虚拟页号存储在第一存储区中,以便进行页面迁移服务。

在一种可能的实现方式中,基于如图1所示的页表格式,电子设备通过页目录地址(页表地址)获取页目录,基于偏移地址确定目标页表地址。示例性的,当偏移地址为一个地址时,则目标页表为一个页表;当偏移地址为地址段时,则目标页表为多个。而在偏移地址段缺省的情况下,默认对所有的页表进行扫描。

示例性的,若电子设备是页表扫描硬件,则电子设备可以通过通信接口与第一处理器进行数据传输。也就是说,第一处理器可以通过通信接口将配置信息(页表地址信息)传输给电子设备。

另外,由于不同类型的处理器的页表格式不同,电子设备可以设置为支持接收多种页表格式,在电子设备是页表扫描硬件的情况下,第一处理器可以通过设置页表扫描硬件的通信接口声明当前的目标页表的页表格式。页表扫描硬件可以按照目标页表的页表格式,确定扫描该页表格式的页表所使用的页表扫描逻辑,从而对目标页表进行页表扫描。

S102,基于目标页表地址,获取目标页表。

S103,确定目标页表中目标页表项的访问位状态。

在本申请实施例中,电子设备获取到目标页表地址后,按照目标页表地址获取目标页表,然后确定目标页表项的访问位状态。目标页表项可以是在目标页表中正在遍历的页表项。

其中,根据目标页表地址可以从内存中获取目标页表,并且由于目标页表中包括多个页表项,电子设备可以遍历各个页表项,电子设备可以获取正在经历遍历的目标页表项中的访问位状态。访问位的初始化状态是访问位被置为0,在目标页表项对应的物理页面被访问后,目标页表项的访问位状态可以指示物理页面被访问,目标页表项的访问位可以被置为1。

在一种可能的实现方式中,在获取到目标页表项的访问位状态指示被访问之后,或者在对目标页表项中目标页号对应的物理页面的访问次数更新完成的情况下,电子设备可以对目标页表项的访问位状态进行复位,比如初始化,以便于下次进行访问统计。

由于电子设备可以周期性的遍历目标页表的各个页表项,也就是说,可以是在对目标页表中的各个页表项遍历一遍之后的指定时间后,再次对目标页表中的各个页表项进行二次遍历,以此类推,直到达到停止统计的条件时,电子设备可以停止对目标页表的各个页表项进行遍历。为了在进行下一次周期性的遍历时,可以使得之前已经统计过的页表项中的访问位状态不影响到本次获取访问位状态,确定经过上次访问后该页面是否再次被访问的过程,所以需要在每次获取访问位状态后及时对访问位状态进行复位,比如初始化处理,从而避免对物理页面的访问次数统计不准确的情况。

也就是说,在第n次遍历目标页表的各个页表项时,若获取到目标页表项的访问位状态指示被访问之后,在第n+1次遍历目标页表的各个页表项获取目标页表项的访问位状态之前,电子设备需要对访问位状态进行复位,比如初始化处理。其中,n为正整数。

S104,在目标页表项的访问位状态指示目标物理页号对应的物理页面被访问的情况下,更新目标页表项的忽略位存储的目标物理页号对应的访问次数。

在本申请实施例中,电子设备根据获取到的目标页表项的访问位状态,确定目标页表项是否需要更新目标物理页号对物理页面的访问次数,若需要更新,则可以更新目标物理页面的访问次数,电子设备将目标物理页号对应的物理页面的访问次数存储在目标页表项的忽略位中。其中,该目标物理页号为目标页表项中的物理页号。

在一种可能的实现方式中,若目标页表项的访问位状态指示被访问,将目标页表项的忽略位中存储的值加一后得到目标物理页号对应的访问次数。

比如,以目标页表为页表1,页表1中包括页表项1至页表项10为例,若电子设备开始遍历页表1中的各个页表项后,依次遍历获取到页表项1至页表项5各自的访问位状态指示未被访问,当遍历到页表项6时,确定页表项6的访问位状态指示被访问,则电子设备可以在页表1中的页表项6的忽略位中存储的访问次数的值加一,并且在更新页表项6中忽略位中存储的访问次数的同时或者之后,可以继续从页表项7开始遍历。也就是说,若页表项6的忽略位中已经存储的访问次数的值为2,电子设备可以在页表1中的页表项6的忽略位中存储的访问次数的值加一,使得页表项6的忽略位中存储的访问次数更新为3;若页表项6的忽略位中未存储的访问次数,电子设备在页表1中的页表项6的忽略位中存储的访问次数的值加一,使得页表项6的忽略位中存储的访问次数更新为1。

在一种可能的实现方式中,获取忽略位的掩码数据,基于忽略位的掩码数据,从目标页表项的忽略位中确定目标忽略位,在目标页表项的访问位状态指示目标物理页面被访问的情况下,更新目标页表项的目标忽略位中存储的目标物理页面的访问次数。

其中,计算设备中的第一处理器可以设置忽略位的掩码数据,从而指定目标页表项的忽略位中的目标忽略位,忽略位的掩码数据可以用于指示在目标页表的页表项中用于存储目标物理页号对应的访问次数的忽略位的位号,电子设备在确定目标页表项的访问位状态指示被访问的情况下,可以将目标页表项的目标忽略位中存储的值加一后得到目标物理页面的访问次数。

示例性的,若电子设备是页表扫描硬件,计算设备还可以通过第一处理器设置通信接口(如pcie接口)设置忽略位的掩码数据,从而使得计算设备使用被忽略位的掩码数据指示的目标忽略位来存储页面访问次数。避免了其他软件使用的忽略位与存储目标物理页面的访问次数的忽略位发生冲突的情况。

在一种可能的实现方式中,在获取目标页表项的访问位状态指示目标物理页面被访问之后,可以获取目标页表项的物理页面地址,然后将目标页表项的物理页面地址缓存在第一缓存区。

其中,第一缓存区可以用于缓存目标物理页面的访问次数不为零的物理页面地址的集合。其中,若电子设备是用于页表扫描的硬件,则电子设备中可以设置第一缓存区,用于缓存目标物理页面的访问次数不为零的物理页面地址的集合,也就是说,在每次开始统计物理页面的访问次数,第一次确定目标物理页面被访问时将目标页表项的物理页面地址放入第一缓冲区,之后再发现此目标页表项的目标物理页面被访问,不再放入第一缓存区;直到重新开始统计页面访问次数、并且计数器清零后才会再次被放入第一缓存区。

在一种可能的实现方式中,若第一缓存区中的物理页面地址的集合所占的存储空间达到指定阈值,基于物理页面地址的集合,可以将物理页面进行页面迁移并存储在第一存储区。

也就是说,在目标页表项的访问位状态指示目标物理页面被访问的情况下,且确定访问次数为零的情况下,将目标物理页号对应的虚拟页号存储至第一缓存区;在第一缓存区中存储的虚拟页号达到预定条件的情况下,将虚拟页号存储至第一存储区;其中,预定条件可以包括预定存储大小或预定数量。

其中,第一存储区可以是用于存储目标物理页面的访问次数不为零的目标物理页号对应的虚拟页号的集合的存储区。第一存储区可以是在计算设备中的内存中的存储区。

示例性的,针对内部存储区大于指定存储阈值的页表扫描硬件,可以将被访问过的物理页号对应的虚拟页号全部放入自身所包含的第一缓存区中,直到达到预定条件时向计算设备输出访问过的物理页面的虚拟页号集合,该预定条件可以是页表扫描硬件完成对目标页表的扫描并且计算设备需要按照扫描得到的信息,比如虚拟页号集合对内存的物理页面进行管理,使得计算设备可以准确得完成目标页表中指示得冷热页的页面迁移。

或者,预定条件还可以包括预定存储大小或预定数量。页表扫描硬件中设置的第一缓存区小于等于指定存储阈值,页表扫描硬件可以在扫描目标页表的过程中,在第一缓存区中缓存小于指定阈值大小的已访问过的物理页面对应的虚拟页号,当第一缓存区中存储的虚拟页号集合所占的大小满足直接存储器访问(direct memory access,DMA)请求的最小长度后,可以将已访问过的物理页面对应的虚拟页号集合通过DMA请求由第一缓存区转存在内存的第一存储区中,便于后续对第一存储区中虚拟页号对应的物理页面进行处理。

示例性的,页表扫描硬件在扫描确定目标物理页面的访问次数为0时,可以将该目标物理页面的页面地址记录在页表扫描硬件的第一缓冲区中,当第一缓冲区的使用情况达到预定条件时,比如预定条件可以是缓冲区中记录的页面地址的所占大小满足DMA请求的最小长度,页面扫描硬件可以将第一缓存区中记录的页面地址发送给计算设备。

另外,在将该缓冲区中记录的页面地址发送给计算设备的过程中,若页表扫描硬件扫描到出现新的页面访问次数从0到1的页面地址,可以将该新统计到的页面地址记录到第二缓冲区,在当前页面地址发送给计算设备的过程结束后,将新统计的页面地址再向计算设备发送。

或者,在将该缓冲区中记录的页面地址发送给计算设备的过程中,暂停通过页表扫描硬件扫描各个页面访问次数,直到缓冲区中的页面地址完全发送给计算设备后,也就是缓冲区可以重新记录数据使用时,恢复通过页表扫描硬件扫描各个页面访问次数,获取新统计到的页面访问次数从0到1的页面地址记录在缓冲区。

示例性的,图4是本申请实施例涉及的一种页面访问次数统计存储的流程示意图。如图4所示,为了开启页面访问次数统计,首先,第一处理器102需要注册回调函数并进行初始化(S301)。第一处理器102确定第一存储区以及页表地址和偏移地址(S302)。第一处理器102可以设置第一存储区存储密集信息,如用于存储已访问过的内存物理页面的虚拟页号。在第一处理器102准备完成上述内容后,将上述内容通知给电子设备106,电子设备106可以开始获取页面访问情况(S200),其中,页面访问情况可以是通过获取目标页表中的目标页表项中的访问位状态确定。然后电子设备106按照获取到的目标物理页面的页面访问情况,确定是否更新目标页表项的忽略位中存储的访问次数,若目标页表项中的访问位状态指示目标物理页面被访问,则更新目标页表项的忽略位中存储的页面访问次数,并且更新第一存储区(S201),也就是说,将页面访问情况指示已经访问过的物理页面的虚拟页号存入第一存储区。然后,电子设备106判断是否达到停止统计条件(S202),其中,停止统计条件可以包括遍历目标页表中的各个页表项的次数达到指定次数阈值,或者遍历目标页表中的各个页表项的时间达到指定时间阈值等。若判断没有达到停止统计条件,则继续遍历各个页表项获取各个页面访问情况;若判断达到停止统计条件时,则可以通知需要获取页面访问次数的实体(S203),其中,需要获取页面访问次数的实体可以是第一处理器102,用于按照页面访问次数执行页面迁移等服务,页面迁移服务可以包括将页面访问次数大于指定次数阈值的页面中的数据内容存入CPU可以快速处理的内存空间,将页面访问次数小于等于指定次数阈值的页面中的数据内容移出内存存入磁盘等外部存储空间。电子设备101还可以停止统计各个页面访问次数(S204)其中,电子设备106执行S203以及S204的顺序在此不进行限定,电子设备106可以通知计算设备102各个页面访问次数统计完成(S303),然后,计算设备102可以对第一存储区的内容根据统计得到的各个页面访问次数进行处理,完成页面迁移服务,以实现内存利用率的提升(S304)。

另外,图5是本申请实施例涉及的一种针对页目录更新场景的页表更新流程示意图。如图5所示,由于计算设备100的操作系统内核需要更新页目录时,回调函数会触发(S401),并且通过回调函数通知电子设备106需要更新的页目录(S402),然后,等待电子设备106获悉需要更新的页目录(S403),当回调函数返回时内核开始对页目录进行更新(S404)。而在电子设备106接收到页目录更新的通知(S501),电子设备106判断当前正在扫描的页表项是否是被更新的页目录涉及到的页表项范围,也就是说,电子设备106会检查更新内容是否会影响当前正在进行的页表项扫描过程(S502),若确定当前正在扫描的页表项是被更新的页目录下的页表项,则由于页目录的更新,当前正在进行的页表项扫描可以立刻放弃,电子设备106可以跳过受更新的页目录影响的页表项进行页面访问情况统计(S503),而对于当前并未处理更新后的页目录下页表项的情形,电子设备106可以直接返回已获知页目录项被修改的回调函数,因为后续进行目标页表扫描时可以确定更新后的页目录项所对应的页表项(S504)。

以电子设备为页面扫描硬件为例,图6示出了本申请一个示例性实施例提供的一种统计页面访问次数的系统结构示意图。如图6所示,页面扫描硬件可以通过设置接口11与第一处理器102和内存103电连接。

第一处理器102中运行的页面迁移服务请求向页面扫描硬件注册期望被扫描的目标页表和第一存储区104,比如,第一存储区104用于存储被访问页面地址集合或者被访问物理页面的虚拟页号。其中,第一存储区104还可以被配置在电子设备106的存储器108中,若第一存储区104在存储器108中,计算设备100的第一处理器102可以通过内存映射输入输出(memory mapping input/output,IO)或DMA读取该第一存储区中的数据。页面扫描硬件在接收到上述信息后可以开始进行目标页表扫描以及页面访问次数的统计。由于多种处理器的页表格式并不相同,页面扫描硬件可以被设计为支持多种页表格式,页面迁移服务可以通过页面扫描硬件提供的设置接口11声明当前所采用的页表格式,页表扫描硬件可以根据使用的页表格式使用该页表格式对应的页表查找逻辑,对目标页表进行扫描遍历其中的各个页表项。为了适应处理器上还有软件使用硬件忽略位的情形,页面扫描硬件还支持页面迁移服务通过设置接口11设置忽略位掩码,从而只使用被忽略位掩码所包含的目标忽略位来存储页面访问次数。对于内部存储区比较大的页面扫描硬件,可以将被访问过的页面地址集合完全放入自身所包含的页面地址集合缓存区12中,直到达到预定条件后才对外输出这些页面地址集合;但页面扫描硬件也可以基于节省成本考虑,在页面很少量的页面地址信息,当这些信息达到一次DMA请求的最小长度后,通过DMA将其转储到内存103中,由于是多次分批存储被访问的页面集合,页面扫描硬件中会包含输出地址缓存13以保证多次输出的信息被连续存储而没有发生覆盖现象。另外,页表扫描硬件可以支持对多张目标页表进行页面访问次数统计,此时页面扫描硬件会包含被监视的各个目标页表。

上述主要从方法的角度对本申请实施例的方案进行了介绍。可以理解的是,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对页面访问次数的确定装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

示例性的,图7示出了本申请一个示例性实施例提供的页面访问次数的确定装置400的结构示意图。该页面访问次数的确定装置400应用于计算设备中。该页面访问次数的确定装置400包括:

获取模块410,用于获取目标页表地址;其中,目标页表地址用于指示目标页表在计算设备的内存中的存储地址;

处理模块420,用于基于目标页表地址,确定目标页表;其中,目标页表包括多个页表项;每个页表项包括物理页号、访问位和忽略位;访问位用于指示物理页号指示的物理页面是否被访问;忽略位是目标页表项中值被第一处理器忽略的一位或多位;第一处理器为计算设备的处理器;

处理模块420,还用于确定所目标页表中目标页表项的访问位状态;其中,目标页表项为在目标页表中正在遍历的页表项;

存储模块430,用于在目标页表项的访问位状态指示目标物理页面被访问的情况下,更新目标页表项的忽略位存储的目标物理页面的访问次数,其中,目标物理页面为目标页表项中的物理页面。

例如,结合图3,获取模块410可以用于执行如图3所示的S101,处理模块420可以用于执行如图3所示的S102,存储模块430可以用于执行如图3所示的S103。

在一种可能的实现方式中,处理模块420,还用于更新目标页表项的目标忽略位中存储的页面访问次数之前,获取忽略位的掩码数据;基于掩码数据从目标页表项的忽略位中确定目标忽略位;

存储模块430,还用于在目标页表项的访问位状态指示目标物理页面被访问的情况下,将忽略位中存储的目标物理页面的访问次数值加一。

在一种可能的实现方式中,存储模块430,还用于在目标页表项的访问位状态指示目标物理页面被访问的情况下,在确定目标物理页面的访问次数为零的情况下,将目标页表项的物理页号对应的虚拟页号存储至第一存储区;其中,第一存储区位于计算设备的内存中。

在一种可能的实现方式中,处理模块420,还用于在确定访问次数为零的情况下,将目标页表项的物理页号对应的虚拟页号存储至第一缓存区;在第一缓存区中存储的虚拟页号达到预定条件的情况下,将虚拟页号存储至第一存储区;其中,预定条件包括预定存储大小或预定数量。

在一种可能的实现方式中,处理模块420,还用于目标页表为多级页表的最后一级页表;多级页表的第一级页表为页目录;获取页目录的更新信息;基于页目录的更新信息,确定目标页表是否被更新;在目标页表被更新,且已经开始遍历目标页表的页表项的情况下,停止遍历目标页表的页表项。

在一种可能的实现方式中,处理模块420,还用于在目标页表被更新,且未开始遍历目标页表的页表项的情况下,遍历更新后的目标页表的页表项。

在一种可能的实现方式中,处理模块420,还用于在目标页表项的访问位状态指示目标物理页面被访问的情况下,复位目标页表项的访问位。

关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种页面访问次数的确定装置的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。

作为示例,结合图2,页面访问次数的确定装置中的获取模块410、处理模块420以及存储模块430中的部分或全部实现的功能可以通过图2中的计算设备执行。其中,计算设备中的第一实体可以是硬件也可以是软件,当第一实体是软件时,通过计算设备的第一处理器执行;当第一实体是硬件时,第一实体本身包括第二处理器和存储器,可以通过第一实体的第二处理器执行。

在一示例性实施例中,还提供了一种电子设备,电子设备包含第二处理器和存储器,第二处理器与存储器耦合;该存储器用于存储计算机指令,该计算机指令由第二处理器加载并执行以使电子设备执行上述图3任一实施例所示页面访问次数的确定方法的全部或部分步骤。

在一示例性实施例中,还提供了一种计算设备,计算设备包括第一处理器、内存和如上述实施例提供的电子设备,其中,电子设备分别与第一处理器和内存电连接。

在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述内存故障预测方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。

在一示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述图3任一实施例所示方法的全部或部分步骤。

在一些实施例中,本申请实施例所示的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。

通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种消防用烟雾报警装置
  • 一种具有方向确定功能的监控摄像机
  • 一种具有烟雾报警功能的消防监控摄像装置
  • 一种具有烟雾报警功能的消防监控摄像头
技术分类

06120116545032