CN114546898A - 一种tlb管理方法、装置、设备及存储介质 - Google Patents
一种tlb管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114546898A CN114546898A CN202210213816.7A CN202210213816A CN114546898A CN 114546898 A CN114546898 A CN 114546898A CN 202210213816 A CN202210213816 A CN 202210213816A CN 114546898 A CN114546898 A CN 114546898A
- Authority
- CN
- China
- Prior art keywords
- tlb
- table entry
- page
- virtual address
- entry
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种TLB管理方法、装置、设备及存储介质,该方法包括:当接收到虚拟地址时,将其标识字段与TLB表项的标识字段进行对比,TLB表项的标识字段包括起始标识字段和粒度大小字段,当存在一个TLB表项包含该虚拟地址时,根据该TLB表项获得物理地址,并返回至处理器;当TLB未命中时,在物理地址返回后,将处理器缓存中连续的页表表项合并,生成第一TLB表项,若在TLB中存在与第一TLB表项连续的第二TLB表项,则将两个表项合并为第三TLB表项,若不存在,则将第一TLB表项插入TLB中。本发明实现TLB支持多粒度页面的管理,此外,通过进行页表表项合并和TLB表项合并,有效地扩大TLB的覆盖范围。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种TLB管理方法、装置、设备及存储介质。
背景技术
为了满足在当前大数据时代,应用程序对内存日益增长的需求,将DRAM(DynamicRandom Access Memory,动态随机存取存储器)和NVM(Non-volatile Memory,非易失性存储器)组合成混合内存,以达到扩展可用内存的目的。由于NVM存在写入延迟高、写入次数有限等缺点,通常需要将热页面存储在DRAM上,将冷页面存储在NVM上,从而提高系统整体性能。
为了解决处理器获取物理地址时需要频繁访问内存,导致系统性能下降的问题,通常在处理器需要获取物理地址时,通过TLB进行虚拟地址与物理地址的转换过程,从而将物理地址返回至处理器,减少处理器访问内存的次数。混合内存扩展了可用内存的同时,也加剧了TLB(Translation Lookaside Buffer,旁路转换缓冲)在虚拟地址与物理地址转换过程中的处理压力,由于TLB中存储的TLB表项的数量有限,使得TLB的覆盖范围有限,当可用内存扩大时,将加剧TLB的缺失概率,从而增加了处理器访问内存的次数,导致系统性能下降。目前常用的方法为在内存中利用大页技术以扩大TLB的覆盖范围,但在混合内存中运用大页技术时,由于大页技术的管理粒度与混合内存中的页面迁移粒度之间具有冲突,因此导致DRAM和NVM间的页面迁移无效以及产生页面碎片等问题,当应用程序具有不同粒度的页面时,通过TLB对不同粒度的页面进行管理的效果较差。
为了解决大页技术存在的问题,现有技术通常为每种粒度的页面提供专用的TLB,从而实现TLB支持多粒度页面的管理,但现有技术仅适用于具有较少粒度的页面的应用程序,当应用程序的页面粒度较多时,难以在有限的TLB空间中对每种页面粒度的专用TLB进行维护,且TLB的空间利用率较低。
发明内容
本发明提供了一种TLB管理方法、装置、设备及存储介质,通过在TLB表项中增加用于记录不同粒度的页面的起始虚拟地址的起始标识字段和用于记录页面粒度的粒度大小字段,实现TLB支持多粒度页面的管理,无需为每种粒度的页面提供专用的TLB,避免在有限的TLB空间中对每种页面粒度的专用TLB进行维护,TLB的空间利用率高。除此之外,当不存在一个TLB表项包含所述虚拟地址时,在处理器从内存获取物理地址之后,通过进行页表表项合并和TLB表项合并,有效地扩大TLB的覆盖范围。
为了解决上述技术问题,本发明实施例第一方面提供了一种TLB管理方法,包括:
当接收到处理器所发送的虚拟地址时,将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,判断是否存在一个TLB表项包含所述虚拟地址;其中,所述TLB表项包括至少一个页面,所述TLB表项的标识字段包括用于记录页面的起始虚拟地址的起始标识字段和用于记录页面的页面粒度的粒度大小字段;
当存在一个TLB表项包含所述虚拟地址时,根据包含所述虚拟地址的TLB表项,获得与所述虚拟地址具有映射关系的物理地址,并将所述物理地址返回至所述处理器;
当不存在一个TLB表项包含所述虚拟地址时,在所述处理器从内存获取物理地址之后,根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项;根据所述连续页表表项,生成第一TLB表项;
判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
作为优选方案,所述虚拟地址的标识字段包括索引字段、高位标识字段和虚拟地址字段;
所述TLB表项的标识字段还包括高位标识字段;
则,所述将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,具体包括:
根据所述虚拟地址的索引字段,确定所述TLB中的TLB组;
将所述虚拟地址的高位标识字段与存储于所述TLB组中的TLB表项的高位标识字段进行对比,判断在所述TLB组中,是否存在高位标识字段与所述虚拟地址的高位标识字段相同的匹配TLB表项;
当在所述TLB组中,存在至少一个所述匹配TLB表项时,根据每个所述匹配TLB表项的起始标识字段和粒度大小字段,获得每个所述匹配TLB表项的虚拟地址范围;将所述虚拟地址的虚拟地址字段与每个所述匹配TLB表项的虚拟地址范围进行对比。
作为优选方案,所述根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项,具体包括:
根据预先存储于处理器缓存中的多个页表表项的物理页帧号,判断所述多个页表表项中是否存在连续的页表表项;
当所述多个页表表项中存在连续的页表表项时,将所述多个页表表项中连续的页表表项合并为连续页表表项。
作为优选方案,所述判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中,具体包括:
根据存储于所述TLB中的TLB表项的起始标识字段和粒度大小字段,获得存储于所述TLB中的TLB表项的虚拟地址范围;
根据所述第一TLB表项的起始标识字段和粒度大小字段,获得所述第一TLB表项的虚拟地址范围;
根据存储于所述TLB中的TLB表项的虚拟地址范围、所述第一TLB表项的虚拟地址范围、存储于所述TLB中的TLB表项的物理页帧号和所述第一TLB表项的物理页帧号,判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;
若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;
若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
作为优选方案,所述方法还包括:
当需要为动态随机存取存储器分配新页面时,根据所述处理器缓存中的多个页表表项的虚拟地址字段和需要分配至所述动态随机存取存储器的新页面的虚拟地址字段,判断在所述多个页表表项中,是否存在与需要分配至所述动态随机存取存储器的新页面的虚拟地址字段连续的第一页表表项;
当存在所述第一页表表项时,获得所述第一页表表项的物理页帧号,并判断与所述第一页表表项的物理页帧号相邻的连续物理页帧号是否为未分配状态;
当所述连续物理页帧号为未分配状态时,将所述连续物理页帧号分配至需要分配至所述动态随机存取存储器的新页面,以使需要分配至所述动态随机存取存储器的新页面的物理页帧号为所述连续物理页帧号;
当需要为非易失性存储器分配新页面时,基于在所述非易失性存储器中预设的连续物理页帧号空间,根据所述动态随机存取存储器中的多个页表表项的预留物理页帧号和需要分配至所述非易失性存储器的新页面的虚拟地址字段,将所述预留物理页帧号分配至需要分配至所述非易失性存储器的新页面,以使需要分配至所述非易失性存储器的新页面的物理页帧号为所述预留物理页帧号;其中,所述连续物理页帧号空间包括多个连续物理页帧号,所述动态随机存取存储器中的多个页表表项的预留物理页帧号与所述多个连续物理页帧号中具有一一对应的关系。
作为优选方案,所述方法还包括:
当检测到所述非易失性存储器将其页面迁移至所述动态随机存取存储器时,根据被迁移的页面,生成新的TLB表项,并将所述新的TLB表项插入所述TLB中。
作为优选方案,所述TLB包括一级TLB和二级TLB,所述一级TLB用于存储所述二级TLB中的一部分TLB表项;
则,所述判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中,具体包括:
根据存储于所述二级TLB中的TLB表项的起始标识字段和粒度大小字段,获得存储于所述二级TLB中的TLB表项的虚拟地址范围;
根据所述第一TLB表项的起始标识字段和粒度大小字段,获得所述第一TLB表项的虚拟地址范围;
根据存储于所述二级TLB中的TLB表项的虚拟地址范围、所述第一TLB表项的虚拟地址范围、存储于所述二级TLB中的TLB表项的物理页帧号和所述第一TLB表项的物理页帧号,判断存储于所述二级TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;
若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;
若不存在所述第二TLB表项,则将所述第一TLB表项插入所述二级TLB中。
本发明实施例第二方面提供了一种TLB管理装置,包括:
TLB表项查找模块,用于当接收到处理器所发送的虚拟地址时,将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,判断是否存在一个TLB表项包含所述虚拟地址;其中,所述TLB表项包括至少一个页面,所述TLB表项的标识字段包括用于记录页面的起始虚拟地址的起始标识字段和用于记录页面的页面粒度的粒度大小字段;
物理地址返回模块,用于当存在一个TLB表项包含所述虚拟地址时,根据与所述虚拟地址相对应的TLB表项,获得与所述虚拟地址具有映射关系的物理地址,并将所述物理地址返回至所述处理器;
页表表项合并模块,用于当不存在一个TLB表项包含所述虚拟地址时,在所述处理器从内存获取物理地址之后,根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项;根据所述连续页表表项,生成第一TLB表项;
TLB表项合并模块,用于判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
本发明实施例第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的TLB管理方法。
本发明实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面任一项所述的TLB管理方法。
相比于现有技术,本发明实施例的有益效果在于,通过在TLB表项中增加用于记录不同粒度的页面的起始虚拟地址的起始标识字段和用于记录页面粒度的粒度大小字段,实现TLB支持多粒度页面的管理,无需为每种粒度的页面提供专用的TLB,避免在有限的TLB空间中对每种页面粒度的专用TLB进行维护,TLB的空间利用率高。除此之外,当不存在一个TLB表项包含所述虚拟地址时,在处理器从内存获取物理地址之后,通过进行页表表项合并和TLB表项合并,有效地扩大TLB的覆盖范围。
附图说明
图1是本发明实施例提供的一种TLB管理方法的流程示意图;
图2是本发明实施例提供的小粒度页面的示意图;
图3是本发明实施例提供的TLB表项的结构示意图;
图4是本发明实施例提供的TLB查找过程的逻辑示意图;
图5是本发明实施例提供的TLB表项合并过程的逻辑示意图;
图6是本发明实施例提供的页表表项合并过程和TLB表项合并过程的示意图;
图7是本发明实施例提供的一种TLB管理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例第一方面提供了一种TLB管理方法,包括步骤S1至步骤S4,具体如下:
步骤S1,当接收到处理器所发送的虚拟地址时,将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,判断是否存在一个TLB表项包含所述虚拟地址;其中,所述TLB表项包括至少一个页面,所述TLB表项的标识字段包括用于记录页面的起始虚拟地址的起始标识字段和用于记录页面的页面粒度的粒度大小字段;
步骤S2,当存在一个TLB表项包含所述虚拟地址时,根据包含所述虚拟地址的TLB表项,获得与所述虚拟地址具有映射关系的物理地址,并将所述物理地址返回至所述处理器;
步骤S3,当不存在一个TLB表项包含所述虚拟地址时,在所述处理器从内存获取物理地址之后,根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项;根据所述连续页表表项,生成第一TLB表项;
步骤S4,判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
需要说明的是,在TLB中执行地址转换操作时,虚拟地址通常包括三个部分,分别为标签部分、索引部分和页面偏移部分,索引部分用于定位TLB中不同的TLB组,标签部分和页面偏移部分用于在指定的TLB组中匹配正确的TLB表项和获得对应的物理地址,但是,由于应用程序采用多粒度页面,不同页面粒度所对应的页面偏移部分是不同的,因此相应的索引部分也是不同的,例如,如果页面粒度为4KB,则索引部分对应于虚拟地址的12-14位,如果页面粒度为2MB,则索引部分对应于虚拟地址的21-23位,因此,页面粒度的不确定性使得无法确定索引部分的位置,从而无法有效地获取与虚拟地址具有映射关系的物理地址,导致TLB的工作无效。
为了统一管理不同粒度的页面,本发明实施例根据应用程序的访问特性,确定TLB的管理粒度,例如应用程序的占用内存大,且访问连续性强,则确定TLB的管理粒度为2MB。
进一步地,由于一个大粒度页面内的小粒度页面具有相同的索引字段和高位标识字段,因此这些小粒度页面将会对应同一个TLB表项,从而无法对TLB表项中的页面进行区分。为了解决该问题,本发明实施例为每个TLB表项引入两个额外的标识字段,即用于记录页面的起始虚拟地址的起始标识字段和用于记录页面的页面粒度的粒度大小字段,当接收到处理器所发送的虚拟地址时,将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,判断是否存在一个TLB表项包含所述虚拟地址;其中,所述TLB表项包括至少一个页面,所述TLB表项的标识字段包括用于记录页面的起始虚拟地址的起始标识字段和用于记录页面的页面粒度的粒度大小字段。虽然大粒度页面内的小粒度页面具有相同的索引字段和高位标识字段,但是每个小粒度页面用于表示虚拟地址的字段不同,因此可以通过用于记录页面的起始虚拟地址的起始标识字段进行区分。优选地,TLB表项还包括小粒度页面中起始页面的物理页帧号,即PFN字段。
示例性地,参见图2,P1和P2为同一个大粒度页面中粒度不同的两个小粒度页面,它们的信息被记录于如图3的TLB表项中,其中,High_Tag表示高位标识字段,Start_Tag表示起始标识字段,Size表示粒度大小字段,表项A记录了P1的信息,表项B记录了P2的信息。P1是一个4KB的小粒度页面,表项A的起始标识字段记录的内容为0xA,表示P1为第10号页面,粒度大小字段记录的内容为0x1,表示P1的页面粒度为1。P2包含5个连续的小粒度页面,即第3号页面至第7号页面,因此表项B的起始标识字段记录的内容为0x3,表示P2的起始页面是第3号页面,粒度大小字段记录的内容为0x5,表示P2的页面粒度为5。
进一步地,当存在一个TLB表项包含所述虚拟地址时,根据包含所述虚拟地址的TLB表项,获得与所述虚拟地址具有映射关系的物理地址,并将所述物理地址返回至所述处理器。具体地,根据与虚拟地址相对应的TLB表项的PFN字段,获得与虚拟地址具有映射关系的物理地址,并将物理地址返回至处理器。
进一步地,为了使得尽可能多的连续页面由单个TLB表项表示,本发明实施例当不存在一个TLB表项包含所述虚拟地址时,在所述处理器从内存获取物理地址之后,根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项;根据所述连续页表表项,生成第一TLB表项。需要说明的是,当不存在一个TLB表项包含需要转换的虚拟地址时,处理器将访问内存中的页表表项,并找到包含需要转换的虚拟地址的页表表项,根据该页表表项获取对应的物理地址,并将与该页表表项连续的多个页表表项提取至处理器缓存中,由于页表表项合并过程是在返回物理地址后执行的,因此不会对系统性能造成影响。
进一步地,由于地址连续的TLB表项会被映射至同一个TLB组,占用多个TLB表项,造成TLB空间的浪费,为了解决这一问题,本发明实施例在第一TLB表项生成后,判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
本发明实施例提供的一种TLB管理方法,通过在TLB表项中增加用于记录不同粒度的页面的起始虚拟地址的起始标识字段和用于记录页面粒度的粒度大小字段,实现TLB支持多粒度页面的管理,无需为每种粒度的页面提供专用的TLB,避免在有限的TLB空间中对每种页面粒度的专用TLB进行维护,TLB的空间利用率高。除此之外,当不存在一个TLB表项包含所述虚拟地址时,在处理器从内存获取物理地址之后,通过进行页表表项合并和TLB表项合并,有效地扩大TLB的覆盖范围。
如图4所示,为TLB查找过程的逻辑示意图,图4中虚拟地址的High_Tag表示虚拟地址的高位标识字段,Index表示虚拟地址的索引字段,Low_Tag表示虚拟地址的虚拟地址字段,Offset表示虚拟地址的偏移量,Low_Tag与Offset共同构成了虚拟地址的虚拟地址字段;图4中TLB表项的High_Tag表示TLB表项的高位标识字段,Start_Tag表示TLB表项的起始标识字段,Size表示TLB表项的粒度大小字段,PFN表示TLB表项的物理页帧号。
作为优选方案,所述虚拟地址的标识字段包括索引字段、高位标识字段和虚拟地址字段;
所述TLB表项的标识字段还包括高位标识字段;
则,所述将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,具体包括:
根据所述虚拟地址的索引字段,确定所述TLB中的TLB组;
将所述虚拟地址的高位标识字段与存储于所述TLB组中的TLB表项的高位标识字段进行对比,判断在所述TLB组中,是否存在高位标识字段与所述虚拟地址的高位标识字段相同的匹配TLB表项;
当在所述TLB组中,存在至少一个所述匹配TLB表项时,根据每个所述匹配TLB表项的起始标识字段和粒度大小字段,获得每个所述匹配TLB表项的虚拟地址范围;将所述虚拟地址的虚拟地址字段与每个所述匹配TLB表项的虚拟地址范围进行对比。
需要说明的是,本发明实施例并行地将虚拟地址的标识字段与同一个TLB组中的所有TLB表项的标识字段进行比较,以节省对比时长。
作为优选方案,所述根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项,具体包括:
根据预先存储于处理器缓存中的多个页表表项的物理页帧号,判断所述多个页表表项中是否存在连续的页表表项;
当所述多个页表表项中存在连续的页表表项时,将所述多个页表表项中连续的页表表项合并为连续页表表项。
如图5所示,为TLB表项合并过程的逻辑示意图,High_Tag表示TLB表项的高位标识字段,Start_Tag表示TLB表项的起始标识字段,Size表示TLB表项的粒度大小字段,PFN表示TLB表项的物理页帧号。
作为优选方案,所述判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中,具体包括:
根据存储于所述TLB中的TLB表项的起始标识字段和粒度大小字段,获得存储于所述TLB中的TLB表项的虚拟地址范围;
根据所述第一TLB表项的起始标识字段和粒度大小字段,获得所述第一TLB表项的虚拟地址范围;
根据存储于所述TLB中的TLB表项的虚拟地址范围、所述第一TLB表项的虚拟地址范围、存储于所述TLB中的TLB表项的物理页帧号和所述第一TLB表项的物理页帧号,判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;
若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;
若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
示例性地,如图6所示,当前存储在TLB中的TLB表项A,包含了从第3号页面至第7号页面的5个连续页面。当第8号页面被访问时,本发明实施例检测到第8号页面至第10号页面是连续的,执行页表表项(PTE)合并操作,将3个页表表项合并为连续页表表项,并生成TLB表项B,其Start_Tag为0x8。此外,由于这些小粒度页面都属于同一个大粒度页面,并且与TLB表项A具有相同的High_Tag,因此TLB表项B将被映射到与TLB表项A相同的TLB组中。在TLB表项合并过程,TLB表项A和TLB表项B将被合并成TLB表项C。旧的TLB表项A将被新的TLB表项C替换,并具有更大的覆盖范围。其中,High_Tag表示TLB表项的高位标识字段,Start_Tag表示TLB表项的起始标识字段,Size表示TLB表项的粒度大小字段,PFN表示TLB表项的物理页帧号,Next_Tag表示与当前TLB表项连续的下一个TLB表项的起始标识字段。
作为优选方案,所述方法还包括:
当需要为动态随机存取存储器分配新页面时,根据所述处理器缓存中的多个页表表项的虚拟地址字段和需要分配至所述动态随机存取存储器的新页面的虚拟地址字段,判断在所述多个页表表项中,是否存在与需要分配至所述动态随机存取存储器的新页面的虚拟地址字段连续的第一页表表项;
当存在所述第一页表表项时,获得所述第一页表表项的物理页帧号,并判断与所述第一页表表项的物理页帧号相邻的连续物理页帧号是否为未分配状态;
当所述连续物理页帧号为未分配状态时,将所述连续物理页帧号分配至需要分配至所述动态随机存取存储器的新页面,以使需要分配至所述动态随机存取存储器的新页面的物理页帧号为所述连续物理页帧号;
当需要为非易失性存储器分配新页面时,基于在所述非易失性存储器中预设的连续物理页帧号空间,根据所述动态随机存取存储器中的多个页表表项的预留物理页帧号和需要分配至所述非易失性存储器的新页面的虚拟地址字段,将所述预留物理页帧号分配至需要分配至所述非易失性存储器的新页面,以使需要分配至所述非易失性存储器的新页面的物理页帧号为所述预留物理页帧号;其中,所述连续物理页帧号空间包括多个连续物理页帧号,所述动态随机存取存储器中的多个页表表项的预留物理页帧号与所述多个连续物理页帧号中具有一一对应的关系。
具体地,页表表项合并过程和TLB表项合并过程的有效性受到内存中有限的连续页面的限制。为了进一步提高两个合并过程的可能性,本发明实施例当需要为动态随机存取存储器分配新页面时,根据所述处理器缓存中的多个页表表项的虚拟地址字段和需要分配至所述动态随机存取存储器的新页面的虚拟地址字段,判断在所述多个页表表项中,是否存在与需要分配至所述动态随机存取存储器的新页面的虚拟地址字段连续的第一页表表项;
当存在所述第一页表表项时,获得所述第一页表表项的物理页帧号,并判断与所述第一页表表项的物理页帧号相邻的连续物理页帧号是否为未分配状态;
当所述连续物理页帧号为未分配状态时,将所述连续物理页帧号分配至需要分配至所述动态随机存取存储器的新页面,以使需要分配至所述动态随机存取存储器的新页面的物理页帧号为所述连续物理页帧号;
当需要为非易失性存储器分配新页面时,基于在所述非易失性存储器中预设的连续物理页帧号空间,根据所述动态随机存取存储器中的多个页表表项的预留物理页帧号和需要分配至所述非易失性存储器的新页面的虚拟地址字段,将所述预留物理页帧号分配至需要分配至所述非易失性存储器的新页面,以使需要分配至所述非易失性存储器的新页面的物理页帧号为所述预留物理页帧号;其中,所述连续物理页帧号空间包括多个连续物理页帧号,所述动态随机存取存储器中的多个页表表项的预留物理页帧号与所述多个连续物理页帧号中具有一一对应的关系。
需要说明的是,在NVM(Non-volatile Memory,非易失性存储器)中,考虑其容量远远大于DRAM(Dynamic Random Access Memory,动态随机存取存储器),本发明实施例为连续的页面保留了NVM空间,以进一步加强页面的连续性。例如,在NVM中为连续的512个小粒度页面预留2MB的连续物理页帧号空间,以使该连续的512个小粒度页面能够连续放置。
如果在为动态随机存取存储器和非易失性存储器分配新页面,无法采用上述方法为新页面分配理想的物理页帧号时,则按照常规分配方法将处于未分配状态的物理页帧号分配至新页面。
作为优选方案,所述方法还包括:
当检测到所述非易失性存储器将其页面迁移至所述动态随机存取存储器时,根据被迁移的页面,生成新的TLB表项,并将所述新的TLB表项插入所述TLB中。
具体地,NVM与DRAM之间的页面迁移会造成TLB表项的更新,不同的迁移方式会造成不同的更新结果。对于从DRAM至NVM的页面迁移,由于被迁移的页面是冷页面,因此不需要根据被迁移的页面生成新的TLB表项,并插入至TLB中,若被迁移的页面所对应的TLB表项原本存储于TLB中,则将该TLB表项置为无效;对于从NVM至DRAM的页面迁移,由于被迁移的页面是热页面,因此需要根据被迁移的页面,生成新的TLB表项,并将该TLB表项插入TLB中,以对TLB表项进行更新。需要注意的是,在页面迁移的过程中,NVM中的大粒度页面可能会被分成多个小粒度页面,在这种情况下,仍然只需要根据被迁移的页面生成新的TLB表项并插入TLB中,未被迁移的页面则被视为冷页面,不应在TLB中对应插入新的TLB表项,导致TLB空间被占用。
作为优选方案,所述TLB包括一级TLB和二级TLB,所述一级TLB用于存储所述二级TLB中的一部分TLB表项;
则,所述判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中,具体包括:
根据存储于所述二级TLB中的TLB表项的起始标识字段和粒度大小字段,获得存储于所述二级TLB中的TLB表项的虚拟地址范围;
根据所述第一TLB表项的起始标识字段和粒度大小字段,获得所述第一TLB表项的虚拟地址范围;
根据存储于所述二级TLB中的TLB表项的虚拟地址范围、所述第一TLB表项的虚拟地址范围、存储于所述二级TLB中的TLB表项的物理页帧号和所述第一TLB表项的物理页帧号,判断存储于所述二级TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;
若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;
若不存在所述第二TLB表项,则将所述第一TLB表项插入所述二级TLB中。
需要说明的是,一级TLB作为二级TLB的缓存,其容量一般比二级TLB的容量小,用于存储二级TLB中的一部分TLB表项,在进行地址转换的过程中,会先在一级TLB中进行TLB表项的查找,若一级TLB出现TLB缺失,则继续在二级TLB中进行TLB表项的查找。本发明实施例仅在二级TLB中执行TLB表项合并操作,从而使得在一级TLB中进行TLB表项的查找具有更低的延迟。
参见图7,本发明实施例第二方面提供了一种TLB管理装置,包括:
TLB表项查找模块701,用于当接收到处理器所发送的虚拟地址时,将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,判断是否存在一个TLB表项包含所述虚拟地址;其中,所述TLB表项包括至少一个页面,所述TLB表项的标识字段包括用于记录页面的起始虚拟地址的起始标识字段和用于记录页面的页面粒度的粒度大小字段;
物理地址返回模块702,用于当存在一个TLB表项包含所述虚拟地址时,根据与所述虚拟地址相对应的TLB表项,获得与所述虚拟地址具有映射关系的物理地址,并将所述物理地址返回至所述处理器;
页表表项合并模块703,用于当不存在一个TLB表项包含所述虚拟地址时,在所述处理器从内存获取物理地址之后,根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项;根据所述连续页表表项,生成第一TLB表项;
TLB表项合并模块704,用于判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
作为优选方案,所述虚拟地址的标识字段包括索引字段、高位标识字段和虚拟地址字段;
所述TLB表项的标识字段还包括高位标识字段;
则,所述TLB表项查找模块701用于将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,具体包括:
根据所述虚拟地址的索引字段,确定所述TLB中的TLB组;
将所述虚拟地址的高位标识字段与存储于所述TLB组中的TLB表项的高位标识字段进行对比,判断在所述TLB组中,是否存在高位标识字段与所述虚拟地址的高位标识字段相同的匹配TLB表项;
当在所述TLB组中,存在至少一个所述匹配TLB表项时,根据每个所述匹配TLB表项的起始标识字段和粒度大小字段,获得每个所述匹配TLB表项的虚拟地址范围;将所述虚拟地址的虚拟地址字段与每个所述匹配TLB表项的虚拟地址范围进行对比。
作为优选方案,所述页表表项合并模块703用于根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项,具体包括:
根据预先存储于处理器缓存中的多个页表表项的物理页帧号,判断所述多个页表表项中是否存在连续的页表表项;
当所述多个页表表项中存在连续的页表表项时,将所述多个页表表项中连续的页表表项合并为连续页表表项。
作为优选方案,所述TLB表项合并模块704用于判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中,具体包括:
根据存储于所述TLB中的TLB表项的起始标识字段和粒度大小字段,获得存储于所述TLB中的TLB表项的虚拟地址范围;
根据所述第一TLB表项的起始标识字段和粒度大小字段,获得所述第一TLB表项的虚拟地址范围;
根据存储于所述TLB中的TLB表项的虚拟地址范围、所述第一TLB表项的虚拟地址范围、存储于所述TLB中的TLB表项的物理页帧号和所述第一TLB表项的物理页帧号,判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;
若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;
若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
作为优选方案,所述装置还包括新页面分配模块,用于:
当需要为动态随机存取存储器分配新页面时,根据所述处理器缓存中的多个页表表项的虚拟地址字段和需要分配至所述动态随机存取存储器的新页面的虚拟地址字段,判断在所述多个页表表项中,是否存在与需要分配至所述动态随机存取存储器的新页面的虚拟地址字段连续的第一页表表项;
当存在所述第一页表表项时,获得所述第一页表表项的物理页帧号,并判断与所述第一页表表项的物理页帧号相邻的连续物理页帧号是否为未分配状态;
当所述连续物理页帧号为未分配状态时,将所述连续物理页帧号分配至需要分配至所述动态随机存取存储器的新页面,以使需要分配至所述动态随机存取存储器的新页面的物理页帧号为所述连续物理页帧号;
当需要为非易失性存储器分配新页面时,基于在所述非易失性存储器中预设的连续物理页帧号空间,根据所述动态随机存取存储器中的多个页表表项的预留物理页帧号和需要分配至所述非易失性存储器的新页面的虚拟地址字段,将所述预留物理页帧号分配至需要分配至所述非易失性存储器的新页面,以使需要分配至所述非易失性存储器的新页面的物理页帧号为所述预留物理页帧号;其中,所述连续物理页帧号空间包括多个连续物理页帧号,所述动态随机存取存储器中的多个页表表项的预留物理页帧号与所述多个连续物理页帧号中具有一一对应的关系。
作为优选方案,所述装置还包括TLB表项更新模块,用于:
当检测到所述非易失性存储器将其页面迁移至所述动态随机存取存储器时,根据被迁移的页面,生成新的TLB表项,并将所述新的TLB表项插入所述TLB中。
作为优选方案,所述TLB包括一级TLB和二级TLB,所述一级TLB用于存储所述二级TLB中的一部分TLB表项;
则,所述TLB表项合并模块704用于所述判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中,具体包括:
根据存储于所述二级TLB中的TLB表项的起始标识字段和粒度大小字段,获得存储于所述二级TLB中的TLB表项的虚拟地址范围;
根据所述第一TLB表项的起始标识字段和粒度大小字段,获得所述第一TLB表项的虚拟地址范围;
根据存储于所述二级TLB中的TLB表项的虚拟地址范围、所述第一TLB表项的虚拟地址范围、存储于所述二级TLB中的TLB表项的物理页帧号和所述第一TLB表项的物理页帧号,判断存储于所述二级TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;
若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;
若不存在所述第二TLB表项,则将所述第一TLB表项插入所述二级TLB中。
需要说明的是,本发明实施例所提供的一种TLB管理装置,能够实现上述任一实施例所述的TLB管理方法的所有流程,装置中的各个模块的作用以及实现的技术效果分别与上述实施例所述的TLB管理方法的作用以及实现的技术效果对应相同,这里不再赘述。
本发明实施例第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一实施例所述的TLB管理方法。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field-Pr ogrammable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Sma rt Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面任一实施例所述的TLB管理方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种TLB管理方法,其特征在于,包括:
当接收到处理器所发送的虚拟地址时,将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,判断是否存在一个TLB表项包含所述虚拟地址;其中,所述TLB表项包括至少一个页面,所述TLB表项的标识字段包括用于记录页面的起始虚拟地址的起始标识字段和用于记录页面的页面粒度的粒度大小字段;
当存在一个TLB表项包含所述虚拟地址时,根据包含所述虚拟地址的TLB表项,获得与所述虚拟地址具有映射关系的物理地址,并将所述物理地址返回至所述处理器;
当不存在一个TLB表项包含所述虚拟地址时,在所述处理器从内存获取物理地址之后,根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项;根据所述连续页表表项,生成第一TLB表项;
判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
2.如权利要求1所述的TLB管理方法,其特征在于,所述虚拟地址的标识字段包括索引字段、高位标识字段和虚拟地址字段;
所述TLB表项的标识字段还包括高位标识字段;
则,所述将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,具体包括:
根据所述虚拟地址的索引字段,确定所述TLB中的TLB组;
将所述虚拟地址的高位标识字段与存储于所述TLB组中的TLB表项的高位标识字段进行对比,判断在所述TLB组中,是否存在高位标识字段与所述虚拟地址的高位标识字段相同的匹配TLB表项;
当在所述TLB组中,存在至少一个所述匹配TLB表项时,根据每个所述匹配TLB表项的起始标识字段和粒度大小字段,获得每个所述匹配TLB表项的虚拟地址范围;将所述虚拟地址的虚拟地址字段与每个所述匹配TLB表项的虚拟地址范围进行对比。
3.如权利要求2所述的TLB管理方法,其特征在于,所述根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项,具体包括:
根据预先存储于处理器缓存中的多个页表表项的物理页帧号,判断所述多个页表表项中是否存在连续的页表表项;
当所述多个页表表项中存在连续的页表表项时,将所述多个页表表项中连续的页表表项合并为连续页表表项。
4.如权利要求3所述的TLB管理方法,其特征在于,所述判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中,具体包括:
根据存储于所述TLB中的TLB表项的起始标识字段和粒度大小字段,获得存储于所述TLB中的TLB表项的虚拟地址范围;
根据所述第一TLB表项的起始标识字段和粒度大小字段,获得所述第一TLB表项的虚拟地址范围;
根据存储于所述TLB中的TLB表项的虚拟地址范围、所述第一TLB表项的虚拟地址范围、存储于所述TLB中的TLB表项的物理页帧号和所述第一TLB表项的物理页帧号,判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;
若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;
若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
5.如权利要求4所述的TLB管理方法,其特征在于,所述方法还包括:
当需要为动态随机存取存储器分配新页面时,根据所述处理器缓存中的多个页表表项的虚拟地址字段和需要分配至所述动态随机存取存储器的新页面的虚拟地址字段,判断在所述多个页表表项中,是否存在与需要分配至所述动态随机存取存储器的新页面的虚拟地址字段连续的第一页表表项;
当存在所述第一页表表项时,获得所述第一页表表项的物理页帧号,并判断与所述第一页表表项的物理页帧号相邻的连续物理页帧号是否为未分配状态;
当所述连续物理页帧号为未分配状态时,将所述连续物理页帧号分配至需要分配至所述动态随机存取存储器的新页面,以使需要分配至所述动态随机存取存储器的新页面的物理页帧号为所述连续物理页帧号;
当需要为非易失性存储器分配新页面时,基于在所述非易失性存储器中预设的连续物理页帧号空间,根据所述动态随机存取存储器中的多个页表表项的预留物理页帧号和需要分配至所述非易失性存储器的新页面的虚拟地址字段,将所述预留物理页帧号分配至需要分配至所述非易失性存储器的新页面,以使需要分配至所述非易失性存储器的新页面的物理页帧号为所述预留物理页帧号;其中,所述连续物理页帧号空间包括多个连续物理页帧号,所述动态随机存取存储器中的多个页表表项的预留物理页帧号与所述多个连续物理页帧号中具有一一对应的关系。
6.如权利要求5所述的TLB管理方法,其特征在于,所述方法还包括:
当检测到所述非易失性存储器将其页面迁移至所述动态随机存取存储器时,根据被迁移的页面,生成新的TLB表项,并将所述新的TLB表项插入所述TLB中。
7.如权利要求6所述的TLB管理方法,其特征在于,所述TLB包括一级TLB和二级TLB,所述一级TLB用于存储所述二级TLB中的一部分TLB表项;
则,所述判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中,具体包括:
根据存储于所述二级TLB中的TLB表项的起始标识字段和粒度大小字段,获得存储于所述二级TLB中的TLB表项的虚拟地址范围;
根据所述第一TLB表项的起始标识字段和粒度大小字段,获得所述第一TLB表项的虚拟地址范围;
根据存储于所述二级TLB中的TLB表项的虚拟地址范围、所述第一TLB表项的虚拟地址范围、存储于所述二级TLB中的TLB表项的物理页帧号和所述第一TLB表项的物理页帧号,判断存储于所述二级TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;
若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;
若不存在所述第二TLB表项,则将所述第一TLB表项插入所述二级TLB中。
8.一种TLB管理装置,其特征在于,包括:
TLB表项查找模块,用于当接收到处理器所发送的虚拟地址时,将所述虚拟地址的标识字段与存储于TLB中的TLB表项的标识字段进行对比,判断是否存在一个TLB表项包含所述虚拟地址;其中,所述TLB表项包括至少一个页面,所述TLB表项的标识字段包括用于记录页面的起始虚拟地址的起始标识字段和用于记录页面的页面粒度的粒度大小字段;
物理地址返回模块,用于当存在一个TLB表项包含所述虚拟地址时,根据与所述虚拟地址相对应的TLB表项,获得与所述虚拟地址具有映射关系的物理地址,并将所述物理地址返回至所述处理器;
页表表项合并模块,用于当不存在一个TLB表项包含所述虚拟地址时,在所述处理器从内存获取物理地址之后,根据预先存储于处理器缓存中的多个页表表项,将所述多个页表表项中连续的页表表项合并为连续页表表项;根据所述连续页表表项,生成第一TLB表项;
TLB表项合并模块,用于判断存储于所述TLB中的TLB表项中是否存在与所述第一TLB表项连续的第二TLB表项;若存在所述第二TLB表项,则将所述第一TLB表项与所述第二TLB表项合并为第三TLB表项,并将所述第二TLB表项替换为所述第三TLB表项;若不存在所述第二TLB表项,则将所述第一TLB表项插入所述TLB中。
9.一种终端设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的TLB管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7任一项所述的TLB管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210213816.7A CN114546898A (zh) | 2022-03-04 | 2022-03-04 | 一种tlb管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210213816.7A CN114546898A (zh) | 2022-03-04 | 2022-03-04 | 一种tlb管理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546898A true CN114546898A (zh) | 2022-05-27 |
Family
ID=81661174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210213816.7A Pending CN114546898A (zh) | 2022-03-04 | 2022-03-04 | 一种tlb管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546898A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383102A (zh) * | 2023-05-30 | 2023-07-04 | 北京微核芯科技有限公司 | 转译后备缓冲器访问方法、装置、设备及存储介质 |
CN116681578A (zh) * | 2023-08-02 | 2023-09-01 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
-
2022
- 2022-03-04 CN CN202210213816.7A patent/CN114546898A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383102A (zh) * | 2023-05-30 | 2023-07-04 | 北京微核芯科技有限公司 | 转译后备缓冲器访问方法、装置、设备及存储介质 |
CN116383102B (zh) * | 2023-05-30 | 2023-08-29 | 北京微核芯科技有限公司 | 转译后备缓冲器访问方法、装置、设备及存储介质 |
CN116681578A (zh) * | 2023-08-02 | 2023-09-01 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
CN116681578B (zh) * | 2023-08-02 | 2023-12-19 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804350B (zh) | 一种内存访问方法及计算机系统 | |
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US4400774A (en) | Cache addressing arrangement in a computer system | |
US20150113230A1 (en) | Directory storage method and query method, and node controller | |
CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
EP3553665A1 (en) | Non-volatile memory access method, device, and system | |
CN115357196A (zh) | 动态可扩展的组相联高速缓存方法、装置、设备及介质 | |
US7562204B1 (en) | Identifying and relocating relocatable kernel memory allocations in kernel non-relocatable memory | |
CN115617542A (zh) | 内存交换方法、装置、计算机设备及存储介质 | |
CN113407120B (zh) | 基于hmb的映射表管理方法、装置及计算机设备 | |
CN108664217B (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
CN112596913B (zh) | 提高内存透明大页性能的方法、装置及用户设备、存储介质 | |
US11256630B2 (en) | Cache address mapping method and related device | |
US9483412B2 (en) | Method and apparatus for reformatting page table entries for cache storage | |
CN114741338B (zh) | 旁路转换缓存器、数据更新方法、内存管理单元及芯片 | |
US20220398198A1 (en) | Tags and data for caches | |
US7519791B2 (en) | Address conversion technique in a context switching environment | |
WO2015161804A1 (zh) | 一种Cache分区的方法及装置 | |
CN110362509B (zh) | 统一地址转换方法与统一地址空间 | |
US11409665B1 (en) | Partial logical-to-physical (L2P) address translation table for multiple namespaces | |
US7181587B1 (en) | Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment | |
WO2024082702A1 (zh) | 数据处理方法、装置、芯片以及计算机可读存储介质 | |
CN116644006B (zh) | 一种内存页面管理方法、系统、装置、设备及计算机介质 | |
US20220365712A1 (en) | Method and device for accessing memory |
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 |