TLB页表项管理方法技术

技术编号:39046629 阅读:17 留言:0更新日期:2023-10-10 11:59
本发明专利技术公开了一种TLB页表项管理方法、装置、设备及存储介质,该TLB页表项管理方法包括以下步骤:建立包含页表项索引与虚拟页号的对应关系的哈希函数,其中,在哈希函数中,TLB中页表项的每一位索引采用虚拟页号的多位异或计算,且对应同一索引位的虚拟页号的多个位数彼此相差页表项索引位数;响应于输入的虚拟地址,基于哈希函数,进行页表项读出、或写入与读出,以完成虚实地址转换。本发明专利技术的TLB页表项管理方法、装置、设备及存储介质通过选取虚拟页号不同位进行异或操作来确定虚拟页号对应的页表项索引,进而确定虚拟页号对应的页表项在TLB中的写入与读出位置,能够充分利用TLB的存储空间,并减少比较电路的使用。并减少比较电路的使用。并减少比较电路的使用。

【技术实现步骤摘要】
TLB页表项管理方法


[0001]本专利技术涉及处理器
,尤其涉及一种TLB页表项管理方法、装置、设备及存储介质。

技术介绍

[0002]现代处理器普遍采用虚拟内存技术对真实的物理内存进行抽象。虚拟内存的基本思想是程序、数据、堆栈的总的大小可以超过主存的大小,操作系统会将程序进行分割,将当前使用的部分由磁盘交换到主存,未使用的部分保留在磁盘中并在需要时与磁盘交换程序片段。同时虚拟内存可以为每个运行在处理器上的任务提供一个独占内存地址空间的假象。在虚拟内存技术下,处理器执行某一任务的访存指令所指向的内存地址被称为虚拟地址或者逻辑地址,虚拟地址的取值范围由处理器的位数决定。通过内存管理单元(Memory Management Unit,MMU),虚拟地址会被转化为物理地址从而实现对真实物理内存的访存操作。内存管理单元的存在可以使程序员在编写程序的时候不需要对程序进行分割。
[0003]目前大多数使用虚拟内存技术的处理器都采用一种称为分页的技术,处理器会为每个进程提供虚拟内存空间,并且会根据进程需求划分为许多虚拟页(page),每个虚拟页有一个用来标示它的虚拟页号(page number)。同样,相应的物理内存被划分为与虚拟页相同大小的物理页,每个物理页同样有一个用来标示它的物理页号。处理器进行访存时所生成的虚拟地址被内存管理单元划分为两部分,第一部分是页号索引(page index),第二部分则是对该页首地址的偏移量(offset)。参考图1,转译后备缓冲器(Translation Lookaside Buffer,TLB)作为页表项的高速缓存,存储了虚拟地址到物理地址映射的页表项,在进行访存操作时将首先被访问,TLB中的每一个页表项都缓存了虚拟页号以及与之对应的物理页号。当虚拟地址产生时,其虚拟页号将会遍历TLB中的页表项,若存在页号索引与页表项中的虚拟页号匹配,则TLB命中,之后通过将物理页号与偏移量的拼接生成物理地址。若不存在与页号索引相匹配的页表项,则TLB失效,之后需要通过遍历内存中存储的页表项来完成虚实地址转换,并将内存中的页表项写入到TLB中。传统上,写入页表项通过同余类操作,即计算虚拟页号与TLB容量之间的余数确认写入页表项的位置。
[0004]现代处理器器的TLB普遍支持不同的页表项管理方法,每种方法都在不同的性能指标上进行了折中,从而不可避免的带来了页表项写入与读出之间无法高效协同。对于原始的线性匹配操作来说,TLB页表项的写入可以写入TLB页表项中任意的空位置,能够充分利用TLB的存储空间,然而,其读出需要遍历TLB中的每一个页表项,当TLB的容量较大时,不仅增加了访问延迟,还引入了大量的比较电路。对于同余类方法,假设TLB的容量为128,按照同余类的原理,页表项在TLB中的位置需要通过计算虚拟页号与TLB的容量之间除法余数求得。在实际上余数只需要关注虚拟页号的低7位(log2(128)),对于写入与读出过程,该方法硬件结构简单,不需要遍历整个TLB。然而,同余类方法容易导致TLB存储空间得不到充分利用。例如,对于虚拟页号为0,128,以及256的页表项都将会被写入TLB中的第0个位置,造成资源冲突,而TLB其他存储位置有可能还在空置。此外,若0,128,256的页表项频繁使用,
将会导致TLB与内存中的页表项之间频繁交换,从而降低处理器的访存性能。

技术实现思路

[0005]为解决上述现有技术中存在的部分或全部技术问题,本专利技术提供一种TLB页表项管理方法、装置、设备及存储介质。
[0006]本专利技术的技术方案如下:
[0007]第一方面,提供了一种TLB页表项管理方法,包括:
[0008]建立包含页表项索引与虚拟页号的对应关系的哈希函数,其中,在所述哈希函数中,TLB中页表项的每一位索引采用虚拟页号的多位异或计算,且对应同一索引位的虚拟页号的多个位数彼此相差页表项索引位数;
[0009]响应于输入的虚拟地址,基于所述哈希函数,进行页表项读出、或写入与读出,以完成虚实地址转换。
[0010]在一些可能的实现方式中,设定:TLB的页表项个数为2T,页表项的索引位数为log22T=T,以二进制方式表示的虚拟页号位数为N

M;
[0011]基于上述设定,建立如下哈希函数:
[0012][0013][0014]其中,R表示虚拟地址中首个不为0所对应的位数,i为正整数,VPN[R+X]表示虚拟页号第R+X位的数,当R+X大于N

M时,R+X不参与异或计算,X=1,2,3,

,(iT+T

1)。
[0015]在一些可能的实现方式中,设定:TLB的页表项个数为128,页表项的索引位数为log2128=7,以二进制方式表示的虚拟页号为16位;
[0016]基于上述设定,哈希函数为:
[0017][0018]在一些可能的实现方式中,响应于输入的虚拟地址,基于所述哈希函数,进行页表项读出、或写入与读出,以完成虚实地址转换,包括:
[0019]响应于输入的虚拟地址,根据虚拟地址和内存页大小计算虚拟地址对应的虚拟页号和页内偏移;
[0020]根据虚拟页号,利用哈希函数进行页表项索引计算,获取页表项索引值;
[0021]根据页表项索引值访问TLB相应位置的页表项,并比较页表项中的虚拟页号和虚拟地址对应的虚拟页号;
[0022]根据比较结果判断TLB是否命中;
[0023]若TLB命中,则返回对应的物理地址;
[0024]若TLB没有命中,则访问内存中存储的页表项,获取虚拟页号对应的页表项,将获取的页表项写入到页表项索引值对应的TLB索引位置处,并返回对应的物理地址。
[0025]在一些可能的实现方式中,根据比较结果判断TLB是否命中,包括:
[0026]若页表项中的虚拟页号和虚拟地址对应的虚拟页号相同,则判断TLB命中;
[0027]若页表项中的虚拟页号和虚拟地址对应的虚拟页号不同,则判断TLB没有命中。
[0028]在一些可能的实现方式中,物理地址通过虚拟页号对应的页表项中物理页号与虚拟地址对应的页内偏移拼接生成。
[0029]第二方面,还提供了一种TLB页表项管理装置,包括:
[0030]哈希函数存储模块,用于存储包含页表项索引与虚拟页号的对应关系的哈希函数,其中,在所述哈希函数中,TLB中页表项的每一位索引采用虚拟页号的多位异或计算,且对应同一索引位的虚拟页号的多个位数彼此相差页表项索引位数;
[0031]地址转换模块,用于根据输入的虚拟地址,调用所述哈希函数存储模块中的哈希函数,基于所述哈希函数,进行页表项读出、或写入与读出,以完成虚实地址转换。
[0032]第三方面,还提供了一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的LTB页表项管理方法。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种TLB页表项管理方法,其特征在于,包括:建立包含页表项索引与虚拟页号的对应关系的哈希函数,其中,在所述哈希函数中,TLB中页表项的每一位索引采用虚拟页号的多位异或计算,且对应同一索引位的虚拟页号的多个位数彼此相差页表项索引位数;响应于输入的虚拟地址,基于所述哈希函数,进行页表项读出、或写入与读出,以完成虚实地址转换。2.根据权利要求1所述的LTB页表项管理方法,其特征在于,设定:TLB的页表项个数为2
T
,页表项的索引位数为log22
T
=T,以二进制方式表示的虚拟页号位数为N

M;基于上述设定,建立如下哈希函数:其中,R表示虚拟地址中首个不为0所对应的位数,i为正整数,VPN[R+X]表示虚拟页号第R+X位的数,当R+X大于N

M时,R+X不参与异或计算,X=1,2,3,

,(iT+T

1)。3.根据权利要求2所述的LTB页表项管理方法,其特征在于,设定:TLB的页表项个数为128,页表项的索引位数为log2128=7,以二进制方式表示的虚拟页号为16位;基于上述设定,哈希函数为:
4.根据权利要求1所述的LTB页表项管理方法,其特征在于,响应于输入的虚拟地址,基于所述哈希函数,进行页表项读出、或写入与读出,以完成虚实地址转换,包括:响应于输入的虚拟地址,根据虚拟地址和内存页大小计算虚拟地址对应的虚拟页号和页内偏移;根据虚拟页号,利用哈希函数进行页表项索引计算,获取页表项索引值;根据页表项索引值访问TLB相应位置的页表项,并比较页表项中...

【专利技术属性】
技术研发人员:黄成龙张光达何益百王会权温家辉王璐方健赵夏
申请(专利权)人:中国人民解放军军事科学院国防科技创新研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1