一种提高tlb利用效率的方法

文档序号:6434845阅读:191来源:国知局
专利名称:一种提高tlb利用效率的方法
技术领域
本发明涉及微处理器中提高TLB利用效率的技术领域,尤其涉及一种使用过滤机制提高TLB利用效率的方法。
背景技术
由于虚拟存储器技术不仅可以把存储器分块并分配给不同进程使用,自动管理存储器层次结构,而且简化了程序的加载过程,因此现在的所有微处理器都采用虚拟存储器技术。在虚拟存储器系统中,不管是采用分段方法还是分页方法,或者两者结合的方法,处理器都生成虚拟地址,然后通过硬件、软件进行一系列的转换,就可以获得实际访问的物理地址。这个过程称为存储器映射或者地址变换。微处理器使用内存管理单元(Memory Management Unit,简称MMU)来管理虚拟地址与物理地址的映射过程。页式和段式都依赖于一个按页号或段号索引的数据结构,这个包含物理页地址的数据结构通常采用页表的形式。随着物理存储器的容量增大,页表的容量也越来越大。大容量的页表通常要放在内存中,这意味着要从存储器中访问一个数据至少需要访问存储器两次,一次访存获得物理地址,另一次访存获得数据。利用局部性原理,可以把这些地址转换保存在一个专门的Cache 中,从而减少需二次访问存储器之情形,这个特殊的地址变换Cache称为变换旁路缓冲器 (Translation Lookaside Buffer,简禾尔 TLB)。由于数据单元与指令单元的访问行为具有很大的差异性,因此在现代计算机体系结构中,TLB像cache —样采取了数据单元与指令单元分开的操作方式,即指令TLB和数据 TLB。图1示出了本领域内已知的一种TLB结构图。在图1中,TLB采用全相联映射,虚拟地址110为CPU产生的48位虚拟地址,其中高36位表示虚拟页号,用于与TLB的每个表项比较。低12位表示页内偏移。在图1中,多路选择器120为40 1的多路选择器,因此该 TLB包含40个表项。表项130是该TLB的40个表项中的一个,表项130包含很多个域,每个域的长度不同,而且表示了特定的意思,例如V域是1位长度,表示表项130是否有效。例如,值“1”用于指示表项130有效,而“0”用于指示表项130无效。应当注意,表项130的标记域长度为36位,用于与虚拟地址110的高36位虚拟页号比较,比较结果作为多路选择器120的控制端输入;表项130的物理地址域长度为28位,用于指示物理地址的高28位, 作为多路选择器120的数据端输入。在图1中,转换过程从虚拟地址110发送至TLB所有的表项开始,虚拟地址的高36 位虚拟页号与每个表项的标记域比较,比较结果作为多路选择器120的控制端输入。TLB每个表项的最后观位作为多路选择器120的数据端输入,经过多路选择器120的选择物理地址的高28位可以得到,作为物理地址的物理页号,而物理地址的低12位页偏移正是虚拟地址的低12位页偏移,把页偏移与物理页号拼接组成完整的40位物理地址。也就是说TLB 是用48位的虚拟地址作为检索,而检索结果是一个40位的物理地址。如果请求的虚拟地址刚好保存在TLB中,即虚拟地址110的高36位虚拟页号与有且仅有一个表项130的标记域相匹配,那么通过TLB,40位的物理地址很快就能得到,得到的物理地址可以用于访问物理内存,这就称为一次TLB命中。相反,如果请求的物理地址没有保存在TLB中,就称为一次TLB缺失,那么虚拟地址到物理地址的转换过程必须要到页表中进行,根据前面所说,页表通常比较大,放置在主存中,因此这是一个繁杂的过程,会引起很大的延时,严重影响系统的性能。由于TLB的缺失会引起极大的延时,因此提高TLB的效率对于系统的性能具有很大的影响。传统的一些研究表明TLB操作占据了 5-10%的系统运行时间,而在某些极端情况下,这种比例可以达到40%。由软件(指OS)管理的TLB操作有时占据了 80%的系统内核运算时间。现有的一些研究试图降低TLB的访问时间和缺失率,从而提高系统的整体性能。其指出了一些TLB特性,像大小、关联度以及多级的层次化结构等,对TLB的访问时间和缺失代价有着非常重要的影响,但是对于如何提高TLB的利用效率,则鲜有涉及。故,实有必要进行研究开发,提供一种解决上述缺陷的方案,提高TLB利用效率,从而提高系统的整体性能。

发明内容
本发明实施例的目的在于提供一种提高TLB利用效率的方法,其使用过滤机制提高TLB利用效率,改进TLB的利用效率,提高系统的整体性能。本发明实施例是这样实现的,一种提高TLB利用效率的方法,包括如下步骤添加一个RF预测器、以及一块过滤缓存;当TLB不发生缺失时,不管在TLB中命中还是在过滤缓存中命中,把命中块的实际重用频率加1 ;当TLB发生缺失时,使用RF预测器来预测缺失块的重用频率,RF预测器保存了回收块的块重用信息;通过预先设置一个过滤阀值,将预测的重用频率与过滤阈值比较,如果预测的重用频率大于过滤阈值,就把缺失块插入TLB,TLB中缺失块的实际重用频率域置为0,否则把缺失块插入过滤缓存,过滤缓存中缺失块的实际重用频率域置为0。进一步地,如果缺失块插入数据TLB,则按照替换算法,数据TLB会产生一个回收块,用回收块的实际重用频率更新预测器中该块的块重用信息,同时,把回收块丢弃。进一步地,如果缺失块插入过滤缓存,则过滤缓存替换算法会产生一个回收块,如果该回收块的重用频率等于它的实际重用频率,则用该实际重用频率更新RF预测器的块重用信息,并把回收块丢弃;否则把该回收块插入数据TLB。进一步地,所述TLB的域结构包括有一个实际重用频率域,所述过滤缓存的域结构与所述TLB的域结构一致。进一步地,所述过滤缓存独立于TLB,在逻辑结构上位于TLB与页表之间。进一步地,所述过滤缓存的容量小于所述TLB。进一步地,所述RF预测器使用所述缺失块的虚拟地址的低4位与高4位的与或运算结果作为索引。进一步地,所述过滤缓存回收块插入TLB时,所述过滤缓存回收块的实际重用频率一起被传给TLB。进一步地,所述TLB的域结构的实际重用频率域大小为2个比特,用于指示该TLB块的实际使用次数相较于现有技术,本发明提高TLB利用效率的方法通过增加过滤机制,利用过滤机制把较少重用的TLB放到过滤缓存而不是TLB中,以提高TLB的利用效率,间接降低了 TLB的缺失率,提高了系统的整体性能;另外,本发明采用LAST算法进行预测,具有很高的准确性。


图1是现有技术的TLB结构图;图2是本发明实施例的数据TLB层次结构图;图3是本发明实施例的过滤机制的流程图;图4是本发明实施例的RF预测器的域结构图示;图5是本发明实施例的数据TLB与过滤缓存的域结构图示。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明提高TLB利用效率的方法在TLB层次结构中添加过滤机制,其中包括添加一个RF预测器、一块过滤缓存;当TLB不发生缺失时,不管在TLB中命中还是在过滤缓存中命中,把命中块的实际重用频率加1 ;而当TLB发生缺失时,使用RF预测器来预测缺失块的重用频率,RF预测器保存了回收块的块重用信息;通过预先设置一个过滤阀值,将预测的重用频率与过滤阈值比较,如果预测的重用频率大于过滤阈值,就把缺失块插入TLB,TLB 中缺失块的实际重用频率域置为0,否则把缺失块插入过滤缓存,过滤缓存中缺失块的实际重用频率域置为0。其中,如果缺失块插入TLB,TLB会产生一个TLB回收块,使用TLB回收块的实际重用频率更新RF预测器中对应地址的块重用信息并把TLB回收块丢弃;如果缺失块插入过滤缓存,过滤缓存会产生一个过滤缓存回收块,如果预测的过滤缓存回收块的重用频率与过滤缓存回收块的实际重用频率相等,则使用过滤缓存回收块的实际重用频率更新RF预测器中对应地址的块重用信息,并把过滤缓存回收块丢弃,否则把过滤缓存回收块插入TLB。 过滤缓存回收块插入TLB,TLB又会产生一个TLB回收块,使用TLB回收块的实际重用频率更新RF预测器中对应地址的块重用信息,并把TLB回收块丢弃。其中,过滤缓存的容量小于所述TLB,TLB的域结构为传统的TLB域结构加上一个实际重用频率域,所述过滤缓存的域结构与所述TLB的域结构一致;所述过滤缓存独立于TLB,在逻辑结构上位于TLB与页表之间。本发明既可应用于数据TLB,也可应用于指令TLB。本实施例以应用于数据TLB进行说明,在Simplekalar 3. Od模拟器上实现。如下表1所示,其示出了实施例的数据TLB 中块的重用次数分别所占的比例。通过对PARSEC各个测试程序的重用次数少于4次的数据TLB块的比例进行统计,发现存在许多的TLB块没重用或者被重用次数很少,而这些较少重用块导致了 TLB的利用效率不够高。本发明实施例通过过滤机制,把那些较少重用的块(重用频率小于2的块)过滤到一个过滤缓存中,从而可以提供更多TLB空间给那些重用次数多的块,以此提高TLB的利用效率。表 权利要求
1.一种提高TLB利用效率的方法,其特征在于,包括如下步骤添加一个RF预测器、以及一块过滤缓存;当TLB不发生缺失时,不管在TLB中命中还是在过滤缓存中命中,把命中块的实际重用频率加1 ;当TLB发生缺失时,使用RF预测器来预测缺失块的重用频率,RF预测器保存了回收块的块重用信息;通过预先设置一个过滤阀值,将预测的重用频率与过滤阈值比较,如果预测的重用频率大于过滤阈值,就把缺失块插入TLB,TLB中缺失块的实际重用频率域置为0,否则把缺失块插入过滤缓存,过滤缓存中缺失块的实际重用频率域置为0。
2.如权利要求1所述提高TLB利用效率的方法,其特征在于如果缺失块插入数据 TLB,则按照替换算法,数据TLB会产生一个回收块,用回收块的实际重用频率更新预测器中该块的块重用信息,同时,把回收块丢弃。
3.如权利要求1所述提高TLB利用效率的方法,其特征在于如果缺失块插入过滤缓存,则过滤缓存替换算法会产生一个回收块,如果该回收块的重用频率等于它的实际重用频率,则用该实际重用频率更新RF预测器的块重用信息,并把回收块丢弃;否则把该回收块插入数据TLB。
4.如权利要求2或3所述提高TLB利用效率的方法,其特征在于TLB的域结构包括有一个实际重用频率域,所述过滤缓存的域结构与所述TLB的域结构一致。
5.如权利要求4所述提高TLB利用效率的方法,其特征在于所述过滤缓存独立于 TLB,在逻辑结构上位于TLB与页表之间。
6.如权利要求5所述提高TLB利用效率的方法,其特征在于所述过滤缓存的容量小于所述TLB。
7.如权利要求6所述提高TLB利用效率的方法,其特征在于所述RF预测器使用所述缺失块的虚拟地址的低4位与高4位的与或运算结果作为索引。
8.如权利要求7所述提高TLB利用效率的方法,其特征在于所述过滤缓存回收块插入TLB时,所述过滤缓存回收块的实际重用频率一起被传给TLB。
9.如权利要求8所述提高TLB利用效率的方法,其特征在于所述过滤缓存的替换算法为LRU替换算法。
10.如权利要求9所述提高TLB利用效率的方法,其特征在于所述TLB的域结构的实际重用频率域大小为2个比特,用于指示该TLB块的实际使用次数。
全文摘要
本发明公开了一种提高TLB利用效率的方法,包括如下步骤添加一个RF预测器、以及一块过滤缓存;当TLB不发生缺失时,把命中块的实际重用频率加1;当TLB发生缺失时,使用RF预测器来预测缺失块的重用频率,RF预测器保存了回收块的块重用信息;通过预先设置一个过滤阀值,将预测的重用频率与过滤阈值比较,如果预测的重用频率大于过滤阈值,就把缺失块插入TLB,TLB中缺失块的实际重用频率域置为0,否则把缺失块插入过滤缓存,过滤缓存中缺失块的实际重用频率域置为0。通过利用过滤机制把较少重用的TLB放到过滤缓存而不是TLB中来提高TLB的利用效率,间接降低了TLB的缺失率,提高了系统的整体性能。
文档编号G06F12/10GK102360339SQ20111030123
公开日2012年2月22日 申请日期2011年10月8日 优先权日2011年10月8日
发明者全佰行, 虞保忠, 邵景程, 陈天洲, 马建良 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1