末级高速缓存插入策略软件控制方法

文档序号:6366725阅读:130来源:国知局
专利名称:末级高速缓存插入策略软件控制方法
技术领域
本发明涉及到计算机系统中的末级高速缓存管理,特别是涉及到一种结合虚拟页式存储机制的计算机系统的末级高速缓存插入策略软件控制方法。
背景技术
高速缓存处于处理器访问的关键路径。随着处理器和存储器之间速度差距的不断扩大,高速缓存尤其是末级高速缓存失效产生的系统开销逐渐増大,成为制约计算机整体性能提高的重要瓶颈之一。程序内部不同数据区域可能存在不同的访问模式和局部性特征。但是,当前处理器高速缓存大多采用LRU替换算法。该算法不能有效识别访问数据的局部性特征并根据数据局部性的变化及时调整管理策略。未来不会被使用到的数据如果不能被有效识别并同局部性良好的数据相区分,就可能会将复用度高的数据替换出高速缓存,从而引发高速缓存污染问题。在采用多级高速缓存的系统中,由于上级高速缓存的过滤作用,使得末级高速缓存污染更加严重。现代计算机普遍采用虚拟存储系统。在支持分页机制的虚拟存储系统中,程序地址空间被划分为若干大小相同的页。在程序运行过程中,不同页之间的局部性特征可能存在较大差异。限制局部性差数据页的末级高速缓存访问空间可以减少其对其对其他数据页高速缓存空间的抢占,在高速缓存中保护局部性良好的数据,从而提高末级高速缓存的性能。针对末级高速缓存污染问题,当前解决方案通常采用末级高速缓存软件划分的方法。该方法缺少软硬件交互接ロ,只能将末级高速缓存划分为若干区域,通过将失效率高、局部性差的数据页限制在范围较小的区域内,提高末级高速缓存命中率。此类方法在进行高速缓存划分时需要修改虚拟地址和物理地址的映射关系,从而引入大量的数据拷贝等开销,同时还需要预留一定的物理页框,占用较多的内存资源。

发明内容
本发明要解决的技术问题是高速缓存替换算法主要包括换出策略和插入策略两部分。当访问失效发生吋,换出策略决定高速缓存中哪一部分数据被替换到下ー级存储设备中;插入策略决定从下一级存储设备中得到数据存放到高速缓存后,其缓存行在替换链表中的位置。插入策略将会影响不同高速缓存行的替换优先级,进而影响高速缓存中的数据。本发明在现有处理器页表结构的基础上,通过添加控制逻辑,设计页ー级末级高速缓存插入策略控制接ロ。软件可以通过该接ロ以页为单位控制和指导末级高速缓存插入策略。 本方法不增加存储设备,实现代价较低。本发明所采用的技术方案为一种末级高速缓存插入策略软件控制方法,包括利用现有页表项结构设计页一级末级高速缓存插入策略控制接ロ,由软件根据单个页的局部性特征利用该接ロ控制该页数据进入末级高速缓存时采用的插入策略,进而影响其数据在末级高速缓存中的访问空间。通过和DIP策略相结合,设计控制逻辑,将页ー级插入策略控制位同策略选择寄存器PSEL最高位进行逻辑判断,达到控制末级高速缓存插入策略的目的。本发明还可以在页表项中设计页ー级末级高速缓存插入策略控制位,提供软件配
置接ロ。具体的说,首先,本发明在页表项中设计页一级末级高速缓存插入策略控制位。现有处理器如X86系列,无论是32位还是64位平台在其页表项中均存在未被使用到的保留位。本发明提出利用页表项保留位设置页一级末级高速缓存插入策略软件控制位即Insertion位,用于以页为单位控制数据进入末级高速缓存时采用的插入策略。本发明在两种插入策略中选择,因此只需要采用I位保留位就可以实现末级高速缓存插入策略控制接□。其次,在引入页ー级插入策略控制位后设置末级高速缓存插入策略控制逻辑。本发明以DIP策略为基础在LRU和BIP两种插入策略中选择。DIP策略静态划分末级高速缓存,通过策略选择计数器PSEL动态记录采用LRU替换算法测试组和采用双模式插入策略BIP (Bimodal Insertion Policy)策略测试组的末级高速缓存失效次数比较結果。BIP策略在芯片内部维护ー个伪随机数生成器用于决定该页中数据的首次插入位置。该策略以较小概率(本文设定为1/32)将新放入末级高速缓存中的数据插入到最近最多使用位置,其他情况下插入到替换链表的最近最少使用位置,从而满足颠簸访问模式的要求。该方法根据PSEL最高位变化动态调整其他末级高速缓存组的插入策略。在引入页ー级插入策略控制位后,末级高速缓存新加入数据所在替换链表中的插入位置将由该位同PSEL最高位共同决定。本发明的有益效果是本发明仅在DIP基础上增加一个反向器和一个与门控制逻辑;同时添加的控制逻辑不在末级高速缓存访问路径上,不会增加末级高速缓存访问时延。此外,采用本接ロ对局部性差的数据页进行控制时不需要调整物理页框分配策略,仅需要根据剖视信息设置页一级插入策略控制位,软件改动较小。


下面结合附图和实施例对本发明进ー步说明。图I是本发明末级高速缓存插入策略软件控制接ロ的工作流程框图。
具体实施例方式现在结合附图和优选实施例对本发明作进ー步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。在图I所示的工作框图中,采用本发明提出的末级高速缓存插入策略软件控制方法后,控制页一级末级高速缓存插入策略的的实施方式主要包括设置页一级末级高速缓存插入策略控制位I。操作系统通常可以采用软件剖视分析的方法获得页一级程序局部性特征,为配置插入策略控制位提供依据。当ー个页局部性较差时,该页所在页表项Insert位配置为I ;否则,该页为普通数据页,该位配置为O。将页表项中的控制位读入到旁路缓冲器TLB中2。当处理器发出访存操作时,通过TLB将虚拟地址转换为物理地址。如果TLB访问失效,系统会访问内存中的页表将页表项中的物理页框号和末级高速缓存插入策略控制位读入到TLB中。决定从内存中获取到的数据在末级高速缓存中的插入位置3。当末级高速缓存访问失效时,会从内存中读取到数据,而数据放入末级高速缓存时采用的插入策略,由策略选择寄存器PSEL最高位和插入策略控制位Insert位共同決定。当插入策略控制位为O,PSEL最高位为I时,更新末级高速缓存行时间戳,即采用LRU方法;否则,以较大概率不更新末级高速缓存时间戳,采用BIP策略。以上说明书中描述的只是本 发明的具体实施方式
,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式
做修改或变形,而不背离发明的实质和范围。
权利要求
1.一种末级高速缓存插入策略软件控制方法,其特征在于包括 利用现有页表项结构设计页一级末级高速缓存插入策略控制接口,由软件根据单个页的局部性特征利用该接口控制该页数据进入末级高速缓存时采用的插入策略,进而影响其数据在末级高速缓存中的访问空间。
2.如权利要求I所述的末级高速缓存插入策略软件控制方法,其特征在于在页表项中设计页一级末级高速缓存插入策略控制位,提供软件配置接口。
3.如权利要求2所述的末级高速缓存插入策略软件控制方法,其特征在于通过和DIP策略相结合,设计控制逻辑,将页一级插入策略控制位同策略选择寄存器PSEL最高位进行逻辑判断,达到控制末级高速缓存插入策略的目的。
4.如权利要求3所述的末级高速缓存插入策略软件控制方法,其特征在于与DIP策略相结合的方式为以DIP策略为基础在LRU和BIP两种插入策略中选择。
5.如权利要求3所述的末级高速缓存插入策略软件控制方法,其特征在于根据PSEL最高位变化动态调整其他末级高速缓存组的插入策略。
全文摘要
本发明涉及一种末级高速缓存插入策略软件控制方法,首先在处理器页表项中设计末级高速缓存插入策略控制位或控制接口;其次,当数据进入末级高速缓存时,通过判断TLB记录的页一级末级高速缓存插入策略控制位的值,决定该页数据进入末级高速缓存时的位置。利用本发明软件可以控制页一级末级高速缓存插入策略,为具有不同局部性特征的区域提供不同的末级高速缓存管理方法,达到降低末级高速缓存污染的目的;本发明应用于任何具有多级高速缓存结构,同时采用虚拟存储机制的计算机系统中,具有实现简单、硬件代价低等优点。
文档编号G06F12/08GK102662861SQ20121007743
公开日2012年9月12日 申请日期2012年3月22日 优先权日2012年3月22日
发明者程旭, 管雪涛, 黄涛 申请人:北京北大众志微系统科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1