CN115658564A - 地址变换高速缓存控制方法、装置、设备及介质 - Google Patents
地址变换高速缓存控制方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115658564A CN115658564A CN202211343976.XA CN202211343976A CN115658564A CN 115658564 A CN115658564 A CN 115658564A CN 202211343976 A CN202211343976 A CN 202211343976A CN 115658564 A CN115658564 A CN 115658564A
- Authority
- CN
- China
- Prior art keywords
- address
- bit width
- page
- page table
- storage bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种地址变换高速缓存控制方法、装置、设备及介质。该方法通过根据操作系统位数,确定目标数据的虚拟地址占据的第一存储位宽,其中,虚拟地址用于作为CPU访问目标数据的地址标识。当第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和第一存储位宽,为页表索引分配存储位宽,以使页表检索的地址范围与虚拟地址的第一存储位宽一致。根据CPU访问的虚拟地址,利用页表索引遍历出与虚拟地址相映射的物理地址,并将物理地址重填入地址变换高速缓存TLB中,其中,物理地址用于CPU向存储有物理地址的高速缓存中获取目标数据。本申请通过使页表检索的地址范围与虚拟地址一致,提高了TLB的重填速度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种地址变换高速缓存控制方法、装置、设备及介质。
背景技术
地址变换高速缓存(Translation Lookaside Buffer,TLB)用于虚拟地址与物理地址之间的交互,通过提供一个寻找物理地址的缓存区来减少寻找物理地址所消耗的时间。
若TLB中恰好存放着所需的页表,则TLB命中,即通过该页表可以获取到对应的物理地址,若未命中,需要到计算机内存中重新寻找包含该物理地址的页表,并重填入TLB中,该过程称为TLB重填。现有技术中,对TLB进行重填时,由于虚拟地址的存储范围与页表检索的范围存在不一致的情况,当虚拟地址的存储范围超出检索范围时,需要对超出范围的地址进行判断并跳转到缺页异常处理程序中去搜索对应的物理地址。
但是,现有技术在搜索过程中耗时较长,降低了TLB的重填速度。
发明内容
本申请提供一种地址变换高速缓存控制方法、装置、设备及介质,用以解决现有技术在搜索过程中耗时较长,降低TLB的重填速度的问题。
第一方面,本申请提供一种地址变换高速缓存控制方法,包括:
根据操作系统位数,确定第一存储位宽,所述第一存储位宽为目标数据的虚拟地址占据的存储位宽,所述虚拟地址用于作为CPU访问所述目标数据的地址标识;
当所述第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和所述第一存储位宽,为所述页表索引分配存储位宽,以使所述页表检索的地址范围与所述虚拟地址的所述第一存储位宽一致;
根据CPU访问的所述虚拟地址,利用所述页表索引遍历出与所述虚拟地址相映射的物理地址;
将所述物理地址重填入地址变换高速缓存TLB中,所述物理地址用于CPU向存储有所述物理地址的高速缓存中获取所述目标数据。
可选的,所述虚拟地址由页内偏移量及所述页表索引组成,所述页表索引包括页全局目录PGD;所述当所述第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和所述第一存储位宽,为所述页表索引分配存储位宽,包括:
获取所述页表的页面大小;
根据所述页面大小,确定存储所述页内偏移量所需的第二存储位宽;
根据所述页全局目录参数及所述页面大小,确定所述页表索引对应的第三存储位宽以及所述页表索引中所述PGD所需的位宽。
可选的,所述根据所述页全局目录参数及所述页面大小,确定所述页表索引对应的第三存储位宽以及所述页表索引中所述PGD所需的位宽,包括:
根据所述页全局目录参数的设置,确定所述PGD分配的页表数量;
根据所述页表数量及所述页面大小,确定存储所述PGD所需的第四存储位宽。
可选的,所述根据CPU访问的所述虚拟地址,利用所述页表索引遍历出与所述虚拟地址相映射的物理地址,包括:
根据所述虚拟地址,在所述PGD中匹配与所述虚拟地址对应的目标项,所述目标项用于获取所述目标数据的物理地址帧号;
根据所述物理地址帧号及所述页内偏移量,确定与所述虚拟地址相映射的物理地址。
可选的,所述根据操作系统位数,确定目标数据的虚拟地址占据的存储位宽之前,还包括:
获取所述CPU访问所述目标数据的所述虚拟地址;
根据所述虚拟地址,向所述TLB中搜索与所述虚拟地址相映射的所述物理地址。
可选的,所述方法还包括:
若未搜索出所述物理地址,对存储有所述物理地址的页表进行遍历,以将所述遍历出的所述物理地址重填入所述TLB中。
第二方面,本申请提供一种地址变换高速缓存控制装置,包括:
确定模块,用于根据操作系统位数,确定第一存储位宽,所述第一存储位宽为目标数据的虚拟地址占据的存储位宽,所述虚拟地址用于作为CPU访问所述目标数据的地址标识;
分配模块,用于当所述第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和所述第一存储位宽,为所述页表索引分配存储位宽,以使所述页表检索的地址范围与所述虚拟地址的所述第一存储位宽一致;
遍历模块,用于根据CPU访问的所述虚拟地址,利用所述页表索引遍历出与所述虚拟地址相映射的物理地址;
处理模块,用于将所述物理地址重填入地址变换高速缓存TLB中,所述物理地址用于CPU向存储有所述物理地址的高速缓存中获取所述目标数据。
第三方面,本申请提供一种电子设备,包括:至少一个处理器、存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行第一方面任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机执行指令,当所述计算机执行指令被处理器执行时,实现第一方面任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法。
本申请提供的一种地址变换高速缓存控制方法、装置、设备及介质,通过根据操作系统位数,确定目标数据的虚拟地址占据的第一存储位宽,其中,虚拟地址用于作为CPU访问目标数据的地址标识。当第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和第一存储位宽,为页表索引分配存储位宽,以使页表检索的地址范围与虚拟地址的第一存储位宽一致。根据CPU访问的虚拟地址,利用页表索引遍历出与虚拟地址相映射的物理地址,并将物理地址重填入地址变换高速缓存TLB中,其中,物理地址用于CPU向存储有物理地址的高速缓存中获取目标数据。本申请通过使页表检索的地址范围与虚拟地址一致,减少了重填流程中的一次判断和跳转,避免了当访问的虚拟地址超出页表检索范围时跳转到缺页异常处理程序中去搜索对应的物理地址的处理流程,提高了TLB的重填速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种地址变换高速缓存控制方法的流程示意图;
图2为本申请实施例提供的又一种地址变换高速缓存控制方法的流程示意图;
图3A为本申请实施例提供的一种为页表索引分配存储位宽的示意图;
图3B为本申请实施例提供的又一种为页表索引分配存储位宽的示意图;
图4为本申请实施例提供的一种遍历过程示意图;
图5为本申请实施例提供的一种地址变换高速缓存控制装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本申请实施例的描述中,“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例也可以在本申请图示或描述的那些以外的顺序实施。术语“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示装置或构件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
为了便于理解本申请的方法,下面对涉及到本申请的相关技术进行简要说明。
当计算机CPU想要访问某个目标数据时,首先获取到该数据的虚拟地址,然后根据虚拟地址去TLB中通过搜索页表,获取到与该虚拟地址对应的物理地址,最终通过该物理地址访问到目标数据。
在计算机的存储管理中,操作系统将内存空间分为若干个固定大小的页,通过页表,建立虚拟地址与物理地址之间的映射关系。其中,页表又称为页面映射表,其存储在内存,用于作为虚拟地址搜索到物理地址的索引。
TLB可以作为页表的Cache(高速缓冲存储器),其存储了当前最可能被访问到的页表项,若恰好通过当前存储的页表项可以搜索到与目标数据虚拟地址相对应的物理地址时,则TLB命中。若没有,则需要到内存中重新逐级查询页表,并将查询到含有该物理地址的页表重填入TLB中,该过程称为TLB重填(TLB Refill)。
现有技术中对TLB进行重填时,由于虚拟地址的存储范围与页表检索的范围存在不一致的情况,当虚拟地址的存储范围超出检索范围时,需要对超出范围的地址进行判断并跳转到缺页异常管理程序中去搜索对应的物理地址。但是,现有技术在搜索过程中耗时较长,降低了TLB的重填速度。
示例性的,以计算机64位操作系统为例,假设虚拟地址占据的存储位宽大于页表检索的地址范围时,由于虚拟地址范围与页表检索范围不一致,在对TLB进行重填时,需要对超出范围的地址进行判断并跳转到缺页异常管理程序中去搜索对应的物理地址,从而导致搜索过程中耗时较长。
因此,针对现有技术的上述技术问题,本申请提出一种地址变换高速缓存控制方法、装置、设备及介质。根据操作系统位数,确定目标数据的虚拟地址占据的第一存储位宽,当第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和第一存储位宽,为页表索引分配存储位宽,以使页表检索的地址范围与虚拟地址的第一存储位宽一致,需要注意的是,由于地址错误的异常优先级高于TLB重填异常的优先级,因此当超过页表检索的地址时会先发生地址错误的异常,从而保证进行TLB重填时,虚拟地址一定在页表检索的范围内,可以减少一次判断和跳转,不必跳转到缺页异常处理程序中去搜索相对应的物理地址,进而提高TLB的重填速度。
本申请可以应用于32位的操作系统,也可以应用于64位的操作系统,通过设置虚拟地址范围与页表检索范围相同,使得在页表中检索物理地址时不需要因为超范围而进入到缺页异常管理程序中去搜索,从而提高搜索速度。可以理解的是,本申请所提出的地址变换高速缓存控制方法,包括但不限于以上的场景,所列举场景不因此作为对本申请的限制。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的一种地址变换高速缓存控制方法的流程示意图,该方法的执行主体可以为地址变换高速缓存控制装置或设备,也可以是多种智能终端,例如计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。本实施例中的方法可以通过软件、硬件或者软硬件结合的方式来实现。如图1所示,该方法具体包括以下步骤:
S101、根据操作系统位数,确定第一存储位宽,第一存储位宽为目标数据的虚拟地址占据的存储位宽,虚拟地址用于作为CPU访问目标数据的地址标识。
本实施例中,执行主体以计算机为例,目前的操作系统中支持的位数包括32位或者64位,位数指的是CPU的数据宽度,即64位指的是CPU一次可以运行64bit的数据。
在32位操作系统中,虚拟地址空间为2^32,一般使用32位来表示虚拟地址空间。而在64位操作系统中,一般使用48位来表示虚拟地址空间,因为64位操作系统并不需要2^64那么大的寻址空间,过大的空间只会导致资源的浪费。此外,也可以根据使用需求,为操作系统设置不同的存储位宽,因此,根据操作系统位数,可以确定目标数据虚拟地址占据的第一存储位宽即虚拟地址空间。
为了便于理解本申请的方法,本实施例以64位操作系统为例来进行说明,确定的虚拟地址空间为2^48即48位,其中,虚拟地址用于作为CPU访问目标数据的地址标识。
S102、当第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和第一存储位宽,为页表索引分配存储位宽,以使页表检索的地址范围与虚拟地址的第一存储位宽一致。
计算机中的指令和数据,都需要先加载到内存中才能被CPU拿去执行。但是CPU并不能直接访问到物理内存。内存在计算机中被分为固定大小的页,通过虚拟地址到物理地址的地址转换,才能到达实际存放数据的高速缓存位置。想要把虚拟地址映射到物理地址,最直观的方法,就是创建一张映射表。这个映射表就叫做页表(page table)。
当第一存储位宽大于页表检索的地址范围时,根据页表中页全局目录参数(PGD_ORDER)的设置和第一存储位宽为页表索引分配存储位宽,以使页表检索的地址范围与虚拟地址一致。其中,页表索引包括页全局目录(Page Global Directory,PGD),还可以包括页上级目录(Page Upper Directory,PUD)、页中间目录(Page Middle Directory,PMD)及页表项(page table entry,PTE)。页表索引中涵盖项依赖于页大小以及操作系统支持的位数。
对于64为操作系统,页表大小为4kb的页表索引而言,其为4级页表索引,每个页表(page)都是4kb,页表里面存的是下一级page的基地址,每一级的页表分别为PGD-PUD-PMD-PTE。在此操作系统下,页表大小为16kb的页表索引而言,其则为3级索引,每个页表(page)都是16kb,页表里面存的是下一级page的基地址,每一级的页表分别为PGD-PMD-PTE。由此可知,页表索引的级数依赖于页表的大小以及操作系统支持的位数。
S103、根据CPU访问的虚拟地址,利用页表索引遍历出与虚拟地址相映射的物理地址。
由于计算机操作系统中通常采用多级页表结构,因此上述页表索引其包含关系为PGD中的每一项都保存一个PUD的基地址,PUD中的每一项都保存一个PMD的基地址,PMD中的每一项都保存一个PTE的基地址,PTE中包含页表项,通过页表项搜索到与虚拟地址相映射的物理地址。
在计算机中,每一个CPU都有一个页目录基址寄存器,最高级页表即PGD的基地址就存在这个寄存器中。CPU根据虚拟地址找到PGD,然后通过上述多级页表结构,逐级搜索,最终,能够遍历出物理地址。
S104、将物理地址重填入地址变换高速缓存TLB中,物理地址用于CPU向存储有物理地址的高速缓存中获取目标数据。
通过搜索页表找到与虚拟地址相映射的物理地址后,将该页表重新填入TLB中,CPU根据找到的物理地址向存储有物理地址的高速缓存,例如一级缓存L1、二级缓存L2或三级缓存L3中获取到要最终访问的目标数据。
需要注意的是,步骤S101-S104为TLB发生重填时的处理方法,而TLB发生重填的触发条件可以通过获取CPU访问目标数据的虚拟地址,并根据虚拟地址,向TLB中搜索与虚拟地址相映射的物理地址,若未搜索出物理地址,对存储有物理地址的页表进行遍历,以将遍历出的物理地址重填入TLB中。
在本申请的上述实施例中,通过根据操作系统位数,确定目标数据的虚拟地址占据的第一存储位宽,其中,虚拟地址用于作为CPU访问目标数据的地址标识。当第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和第一存储位宽,为页表索引分配存储位宽,以使页表检索的地址范围与虚拟地址的第一存储位宽一致。根据CPU访问的虚拟地址,利用页表索引遍历出与虚拟地址相映射的物理地址,并将物理地址重填入地址变换高速缓存TLB中,其中,物理地址用于CPU向存储有物理地址的高速缓存中获取目标数据。本申请通过使页表检索的地址范围与虚拟地址一致,提高了TLB的重填速度。
进一步的,在上述实施例的基础之上,下面,通过图2详细的说明当第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和第一存储位宽,为页表索引分配存储位宽。如图2所示,图2为本申请实施例提供的又一种地址变换高速缓存控制方法的流程示意图,该方法包括以下步骤:
S201、获取页表的页面大小。
页面大小涉及页表所占空间,操作系统支持的位数不同,其页面大小也存在差异。页面大小跟体系结构有关系,例如,支持16kb页表大小的架构在64位操作系统,虚拟地址空间为48位的情况下,本发明实施例的具体实现如下。
S202、根据页面大小,确定存储页内偏移量所需的第二存储位宽。
在计算机中,虚拟地址(Virtual Address,VA)可表示为由页内偏移量及页表索引两部分组成。虚拟地址的存储位宽顺序[47:0]从左到右依次如表1所示,其中“0”表示最低位,“47”表示最高位,一共48位。
表1
页面大小为16KB,16KB为2^14B,因此,需要为页内偏移量分配14个存储位宽,而在计算机的存储管理中,页内偏移量位于虚拟地址的低位部分,故,将虚拟地址存储位宽的最低位起向右分配14位存储位宽即VA[13:0]。
S203、根据页全局目录参数及页面大小,确定页表索引对应的第三存储位宽以及页表索引中PGD所需的位宽。
其中,页全局目录参数的值为虚拟地址位宽与页表索引位宽的差值,在本实施例中,当页面大小为16KB时,页表结构通常为三级即页表索引包括PGD、PMD、PTE。因此,本实施例中第三存储位宽包括PMD所需的位宽和PTE所需的位宽。
根据页面大小,确定存储PTE所需的存储位宽,从虚拟地址剩余存储位宽的最低位起分配第二存储位宽。相应的,16KB为2^14B,而一个页表项为8字节(2^3B),2^14/2^3=2^11=2048,因此,PTE中可以存储2048个页表项,需要为PTE分配11个存储位宽,故,从虚拟地址剩余存储位宽(34位)的最低位起向右分配11位存储位宽即VA[24:14]。
根据页面大小,确定存储PMD所需的存储位宽,从虚拟地址剩余存储位宽的最低位起分配第三存储位宽。与上述确定PTE位宽的方式相同,在此不再重复赘述,为PMD分配11个存储位宽,故,从虚拟地址剩余存储位宽(23位)的最低位起向右分配11位存储位宽即[35:25]分配给PMD。
进一步的,根据页全局目录参数的设置及页面大小,确定页表索引中PGD所需的位宽。
根据页全局目录参数的设置,确定PGD分配的页表数量,并根据页表数量及页面大小,确定存储PGD所需的第四存储位宽。
一种可选的方式为,当页全局目录参数PGD_ORDER设置为1时,2^1为2,因此,确定PGD分配的页表数量为2。2个页表其页面大小为2×16KB为2^15B,而一个页表项为8字节(2^3B),2^15/2^3=2^12=4096,因此,PGD中可以存储4096个页表项,需要为PGD分配12个存储位宽,故,将虚拟地址剩余存储位宽的最低位起向右分配12位存储位宽即VA[47:36]。
另一种可选的方式为,当页全局目录参数PGD_ORDER设置为0时,2^0为1,因此,确定PGD分配的页表数量为1。1个页表其页面大小为16KB为2^14B,而一个页表项为8字节(2^3B),2^14/2^3=2^11=2048,因此,PGD中可以存储2048个页表项,需要为PGD分配11个存储位宽,故,将虚拟地址剩余存储位宽的最低位起向右分配11位存储位宽即VA[46:36]。
综上步骤S201-S203,可以得到如图3A、图3B两种在虚拟地址占据的存储位宽上为页表索引分配存储位宽方式,从而使得页表检索的地址范围与虚拟地址一致。在图3A中,页表检索的范围是VA[47:0],虚拟地址的有效范围也是[47:0],在图3B中,页表检索的范围是VA[46:0],虚拟地址的有效范围也是[46:0]。
需要说明的是,为便于理解本申请,本实施例中的页大小16KB仅为示例性说明,本申请的方法还可以用于页大小为4KB或32KB等的情况,不因此作为对本申请的限制。在本申请的上述实施例中,通过获取页表的页面大小,根据页面大小,确定存储页内偏移量所需的第二存储位宽,并根据页全局目录参数及页面大小,确定页表索引对应的第三存储位宽以及页表索引中PGD所需的位宽,从而使得页表检索的地址范围与虚拟地址一致,提高了TLB的重填速度。
进一步的,根据CPU访问的虚拟地址,利用页表索引遍历出与虚拟地址相映射的物理地址。如图4所示,图4为本申请实施例提供的一种遍历过程示意图。
根据虚拟地址,在PGD中匹配与虚拟地址对应的目标项,目标项用于获取目标数据的物理地址帧号;
根据物理地址帧号及页内偏移量,确定与虚拟地址相映射的物理地址。
本实施例同样以64位操作系统,虚拟地址空间为48位,页大小为16KB为例进行说明。
具体的,
根据虚拟地址,在PGD中匹配与虚拟地址对应的PMD的基地址。
根据PMD的基地址,向PTE中匹配与基地址对应的目标项,目标项用于获取目标数据的物理地址帧号。
根据物理地址帧号及页内偏移量,确定与虚拟地址相映射的物理地址。
最终,将物理地址重填入地址变换高速缓存TLB中,物理地址用于CPU向存储有物理地址的高速缓存中获取目标数据。
图5为本申请实施例提供的一种地址变换高速缓存控制装置的结构示意图,如图5所示,该装置包括:确定模块501、分配模块502、遍历模块503及处理模块504。
确定模块501,用于根据操作系统位数,确定第一存储位宽,第一存储位宽为目标数据的虚拟地址占据的存储位宽,虚拟地址用于作为CPU访问目标数据的地址标识。
分配模块502,用于当第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和第一存储位宽,为页表索引分配存储位宽,以使页表检索的地址范围与虚拟地址的第一存储位宽一致。
遍历模块503,用于根据CPU访问的虚拟地址,利用页表索引遍历出与虚拟地址相映射的物理地址。
处理模块504,用于将物理地址重填入地址变换高速缓存TLB中,物理地址用于CPU向存储有物理地址的高速缓存中获取目标数据。
一种可能的实现方式是,虚拟地址由页内偏移量及页表索引组成,页表索引包括页全局目录PGD。其中,分配模块502,具体用于:
获取页表的页面大小。
根据页面大小,确定存储页内偏移量所需的第二存储位宽。
根据页全局目录参数及页面大小,确定页表索引对应的第三存储位宽以及页表索引中PGD所需的位宽。一种可能的实现方式是,分配模块502,具体还用于:
根据页全局目录参数的设置,确定PGD分配的页表数量。
根据页表数量及页面大小,确定存储PGD所需的第四存储位宽。
一种可能的实现方式是,遍历模块503,具体用于:
根据虚拟地址,在PGD中匹配与虚拟地址对应的目标项,目标项用于获取目标数据的物理地址帧号。
根据物理地址帧号及页内偏移量,确定与虚拟地址相映射的物理地址。
一种可能的实现方式是,该装置还包括获取模块505,用于:
获取CPU访问目标数据的虚拟地址;
根据虚拟地址,向TLB中搜索与虚拟地址相映射的物理地址。
若未搜索出物理地址,对存储有物理地址的页表进行遍历,以将遍历出的物理地址重填入TLB中。
本实施例提供的地址变换高速缓存控制装置,用于执行前述的方法实施例,其实现原理与技术效果类似,对此不再赘述。
图6为本申请实施例提供的一种电子设备的结构示意图,如图6所示,该设备可以包括:至少一个处理器601和存储器602。
存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器602可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器601用于执行存储器602存储的计算机执行指令,以实现前述方法实施例所描述的方法。其中,处理器601可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,该热泵系统还可以包括通信接口603。在具体实现上,如果通信接口603、存储器602和处理器601独立实现,则通信接口603、存储器602和处理器601可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口603、存储器602和处理器601集成在一块芯片上实现,则通信接口603、存储器602和处理器601可以通过内部接口完成通信。
本实施例提供的电子设备,用于执行前述实施例执行的方法,其实现原理与技术效果类似,对此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本申请还提供一种计算机程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备实施上述的各种实施方式提供的地址变换高速缓存控制方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种地址变换高速缓存控制方法,其特征在于,包括:
根据操作系统位数,确定第一存储位宽,所述第一存储位宽为目标数据的虚拟地址占据的存储位宽,所述虚拟地址用于作为CPU访问所述目标数据的地址标识;
当所述第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和所述第一存储位宽,为所述页表索引分配存储位宽,以使所述页表检索的地址范围与所述虚拟地址的所述第一存储位宽一致;
根据CPU访问的所述虚拟地址,利用所述页表索引遍历出与所述虚拟地址相映射的物理地址;
将所述物理地址重填入地址变换高速缓存TLB中,所述物理地址用于CPU向存储有所述物理地址的高速缓存中获取所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述虚拟地址由页内偏移量及所述页表索引组成,所述页表索引包括页全局目录PGD;
所述当所述第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和所述第一存储位宽,为所述页表索引分配存储位宽,包括:
获取所述页表的页面大小;
根据所述页面大小,确定存储所述页内偏移量所需的第二存储位宽;
根据所述页全局目录参数及所述页面大小,确定所述页表索引对应的第三存储位宽以及所述页表索引中所述PGD所需的位宽。
3.根据权利要求2所述的方法,其特征在于,所述根据所述页全局目录参数及所述页面大小,确定所述页表索引对应的第三存储位宽以及所述页表索引中所述PGD所需的位宽,包括:
根据所述页全局目录参数确定所述PGD分配的页表数量;
根据所述页表数量及所述页面大小,确定存储所述PGD所需的第四存储位宽。
4.根据权利要求2或3所述的方法,其特征在于,所述根据CPU访问的所述虚拟地址,利用所述页表索引遍历出与所述虚拟地址相映射的物理地址,包括:
根据所述虚拟地址,在所述PGD中匹配与所述虚拟地址对应的目标项,所述目标项用于获取所述目标数据的物理地址帧号;
根据所述物理地址帧号及所述页内偏移量,确定与所述虚拟地址相映射的物理地址。
5.根据权利要求1所述的方法,其特征在于,所述根据操作系统位数,确定目标数据的虚拟地址占据的存储位宽之前,还包括:
获取所述CPU访问所述目标数据的所述虚拟地址;
根据所述虚拟地址,向所述TLB中搜索与所述虚拟地址相映射的所述物理地址。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若未搜索出所述物理地址,对存储有所述物理地址的页表进行遍历,以将所述遍历出的所述物理地址重填入所述TLB中。
7.一种地址变换高速缓存控制装置,其特征在于,包括:
确定模块,用于根据操作系统位数,确定第一存储位宽,所述第一存储位宽为目标数据的虚拟地址占据的存储位宽,所述虚拟地址用于作为CPU访问所述目标数据的地址标识;
分配模块,用于当所述第一存储位宽大于页表检索的地址范围时,根据页全局目录参数和所述第一存储位宽,为所述页表索引分配存储位宽,以使所述页表检索的地址范围与所述虚拟地址的所述第一存储位宽一致;
遍历模块,用于根据CPU访问的所述虚拟地址,利用所述页表索引遍历出与所述虚拟地址相映射的物理地址;
处理模块,用于将所述物理地址重填入地址变换高速缓存TLB中,所述物理地址用于CPU向存储有所述物理地址的高速缓存中获取所述目标数据。
8.一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211343976.XA CN115658564A (zh) | 2022-10-31 | 2022-10-31 | 地址变换高速缓存控制方法、装置、设备及介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211343976.XA CN115658564A (zh) | 2022-10-31 | 2022-10-31 | 地址变换高速缓存控制方法、装置、设备及介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN115658564A true CN115658564A (zh) | 2023-01-31 |
Family
ID=84993094
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211343976.XA Pending CN115658564A (zh) | 2022-10-31 | 2022-10-31 | 地址变换高速缓存控制方法、装置、设备及介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115658564A (zh) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115934587A (zh) * | 2023-03-15 | 2023-04-07 | 瀚博半导体(上海)有限公司 | 内存管理单元和内存管理方法 |
| CN116681578A (zh) * | 2023-08-02 | 2023-09-01 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
| CN117331854A (zh) * | 2023-10-11 | 2024-01-02 | 上海合芯数字科技有限公司 | 缓存处理方法、装置、电子设备及介质 |
| CN117472806A (zh) * | 2023-12-26 | 2024-01-30 | 芯瞳半导体技术(山东)有限公司 | 一种地址翻译方法、装置及计算机存储介质 |
| WO2024159786A1 (zh) * | 2023-02-01 | 2024-08-08 | 华为技术有限公司 | 用于访问内存的方法和装置 |
| WO2026000919A1 (zh) * | 2024-06-28 | 2026-01-02 | 华为技术有限公司 | 模型参数表的更新方法及装置、计算系统 |
| CN121255663A (zh) * | 2025-12-03 | 2026-01-02 | 中国科学院软件研究所 | 污点标签处理方法、装置、设备及介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012142894A1 (zh) * | 2011-04-19 | 2012-10-26 | 中兴通讯股份有限公司 | 一种利用巨页映射降低cpu资源消耗的方法和装置 |
| CN104991869A (zh) * | 2015-07-31 | 2015-10-21 | 成都腾悦科技有限公司 | 一种微处理器存储管理方法 |
| CN106528453A (zh) * | 2015-09-10 | 2017-03-22 | 中国航空工业第六八研究所 | 基于复合尺度页的页表分区管理装置和方法 |
| CN110008692A (zh) * | 2019-03-22 | 2019-07-12 | 联想(北京)有限公司 | 一种信息处理方法、装置与存储介质 |
| CN112363824A (zh) * | 2020-10-12 | 2021-02-12 | 北京大学 | 一种申威架构下的内存虚拟化方法与系统 |
-
2022
- 2022-10-31 CN CN202211343976.XA patent/CN115658564A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012142894A1 (zh) * | 2011-04-19 | 2012-10-26 | 中兴通讯股份有限公司 | 一种利用巨页映射降低cpu资源消耗的方法和装置 |
| CN104991869A (zh) * | 2015-07-31 | 2015-10-21 | 成都腾悦科技有限公司 | 一种微处理器存储管理方法 |
| CN106528453A (zh) * | 2015-09-10 | 2017-03-22 | 中国航空工业第六八研究所 | 基于复合尺度页的页表分区管理装置和方法 |
| CN110008692A (zh) * | 2019-03-22 | 2019-07-12 | 联想(北京)有限公司 | 一种信息处理方法、装置与存储介质 |
| CN112363824A (zh) * | 2020-10-12 | 2021-02-12 | 北京大学 | 一种申威架构下的内存虚拟化方法与系统 |
Non-Patent Citations (1)
| Title |
|---|
| 蔡万伟;台运方;刘奇;张晓辉;张戈;: "基于MIPS架构的异构内存虚拟化方法研究", 高技术通讯, no. 09, 15 September 2013 (2013-09-15) * |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2024159786A1 (zh) * | 2023-02-01 | 2024-08-08 | 华为技术有限公司 | 用于访问内存的方法和装置 |
| CN115934587A (zh) * | 2023-03-15 | 2023-04-07 | 瀚博半导体(上海)有限公司 | 内存管理单元和内存管理方法 |
| CN116681578A (zh) * | 2023-08-02 | 2023-09-01 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
| CN116681578B (zh) * | 2023-08-02 | 2023-12-19 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
| CN117331854A (zh) * | 2023-10-11 | 2024-01-02 | 上海合芯数字科技有限公司 | 缓存处理方法、装置、电子设备及介质 |
| CN117331854B (zh) * | 2023-10-11 | 2024-04-30 | 上海合芯数字科技有限公司 | 缓存处理方法、装置、电子设备及介质 |
| CN117472806A (zh) * | 2023-12-26 | 2024-01-30 | 芯瞳半导体技术(山东)有限公司 | 一种地址翻译方法、装置及计算机存储介质 |
| CN117472806B (zh) * | 2023-12-26 | 2024-04-02 | 芯瞳半导体技术(山东)有限公司 | 一种地址翻译方法、装置及计算机存储介质 |
| WO2026000919A1 (zh) * | 2024-06-28 | 2026-01-02 | 华为技术有限公司 | 模型参数表的更新方法及装置、计算系统 |
| CN121255663A (zh) * | 2025-12-03 | 2026-01-02 | 中国科学院软件研究所 | 污点标签处理方法、装置、设备及介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115658564A (zh) | 地址变换高速缓存控制方法、装置、设备及介质 | |
| CN109710544B (zh) | 内存访问方法、计算机系统以及处理装置 | |
| JP5475055B2 (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
| US8296547B2 (en) | Loading entries into a TLB in hardware via indirect TLB entries | |
| CN110998549B (zh) | 地址转换缓存 | |
| CN107111455B (zh) | 电子处理器架构以及缓存数据的方法 | |
| US5479627A (en) | Virtual address to physical address translation cache that supports multiple page sizes | |
| US10372618B2 (en) | Apparatus and method for maintaining address translation data within an address translation cache | |
| US10649907B2 (en) | Apparatus and method for handling page invalidate requests in an address translation cache | |
| CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
| US9256550B2 (en) | Hybrid address translation | |
| JPH11102323A (ja) | 仮想アドレス変換用の柔軟な変換記憶バッファ | |
| CN113722247B (zh) | 物理内存保护单元、物理内存权限控制方法和处理器 | |
| CN116594925A (zh) | 一种地址转换系统、处理器、地址转换方法及电子设备 | |
| US20080301364A1 (en) | Caching of microcode emulation memory | |
| CN107766259B (zh) | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 | |
| US11422947B2 (en) | Determining page size via page table cache | |
| US20130339658A1 (en) | Managing page table entries | |
| KR101707927B1 (ko) | 메모리 시스템 및 그 운용방법 | |
| CN120216405A (zh) | 地址转换和内存访问方法、设备、介质及程序产品 | |
| US8347064B1 (en) | Memory access techniques in an aperture mapped memory space | |
| CN119025447A (zh) | 内存管理系统及其方法 | |
| CN115080464B (zh) | 数据处理方法和数据处理装置 | |
| CN117349197A (zh) | 内存管理单元和内存访问方法 | |
| CN118260218A (zh) | 数据处理方法、装置、芯片和计算机可读存介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |
