一种高速缓存替换策略的管理系统及方法技术方案

技术编号:4022133 阅读:178 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种高速缓存替换策略的管理系统及方法,克服现有技术中采用单独某一种替换策略不能有效地满足高速缓存多种不同局部性访存特点的应用程序访问需求的不足,其中该方法包括:将高速缓存划分为第一部分和第二部分;将第一部分划分为第一测试组和第二测试组,第一测试组采用第一替换策略,第二测试组采用第二替换策略;设置一策略选择寄存器,记录第一测试组和第二测试组的失效次数;当第二部分发生访存失效时,根据策略选择寄存器的值从第一替换策略和第二替换策略中为第二部分选择替换策略。与现有技术相比,本发明专利技术提高了高速缓存的使用性能。

【技术实现步骤摘要】

本专利技术涉及计算机处理器,特别是涉及一种高速缓存替换策略的管理系统及方 法。
技术介绍
高速缓冲存储器(Cache,也称为高速缓存)是计算机处理器的重要组成部分之 一,是存储速度介于寄存器和内存之间的一种存储器。利用程序执行的局部性原理,尽可能 地把将要访问的数据存储到高速缓存,当处理器需要数据时可以以很小的时间延迟把数据 提交给处理器,从而达到减少访存时延,提高处理器性能的目的。由于高速缓存容量较小,需要对高速缓存进行有效的管理,尽可能将处理器需要 的数据放入到高速缓存中,从而减少系统访存失效几率,降低访存代价,提高系统的整体性 能。目前,高速缓存的管理方案主要包括随机替换策略(random)、先入先出替换策略 (FIFO)及最近最少使用替换策略(LRU)等。其中,LRU替换策略被普遍认为综合性能较高, 因此得到了工业界的广泛采用,大量应用在通用处理器高速缓存设计中。在采用理想LRU替换策略的高速缓存中,每个缓存行会维护一个时间戳计数器, 该时间戳计数器用来记录本缓存行上一次被访问时的时钟计数。每次访问失效时,同一缓 存组内,时间戳计数最小的缓存行中的数据就会被替换出高速缓存,该缓存行会被用来存 放从内存中新读取到的数据。同时,每一次访问,包括失效后新添加数据的访问,都会更新 相应数据的缓存行中的时间戳,从而保证每次被替换出的数据都是来自最近最少使用的缓 存行,即同一组内时间戳最小的缓存行。但是,LRU替换策略主要依据最近访问的数据局部性最好的原则,在面对顺序数据 访问操作时,往往性能不佳。所谓的顺序数据访问,就是按照一定的步长,连续不断的访问 一大片数据,该操作会造成大量的高速缓存器污染,有效数据的替换,而数据本身则大都是 缺乏时间局部性。具体的例子包括数据包的处理,例如把数据从用户缓冲区拷贝到内核缓 冲区,包括文件读写、进程间数据通信等,大规模数组访问,字符串处理等针对内存区域的 顺序访问。当前,多媒体和网络应用等容易产生大量顺序数据访问的应用程序在计算机中得 到了广泛的应用,所占用户使用时间的比率越来越大,而采用LRU替换策略的高速缓存在 运行这些应用程序时,往往会造成较大的失效代价,系统整体性能不高。比如当程序重用工 作组(Working Set)大于可用Cache时或者其存储访问具有低局部相关性时,LRU策略表 现出十分低下的命中率,大量新替换入Cache的行对命中率的贡献为零,而原本可能命中 的行则由于长期不被访问而替换出Cache。针对局部性较差的应用程序,高速缓存可以采用不更新新加入数据缓存行时间戳 的策略,即将新加入的数据放入最先被替换的位置,通常称为LRU位置插入策略(the LRU Position Insertion Policy,LIP)。同LRU策略相比,LIP策略在面对局部性较好的应用程序时,性能又往往较差。与 此相同地,采用单独的某一种替换策略都不能有效地满足高速缓存多种不同局部性访存特 点的应用程序的需要,无法为高速缓存带来较大的性能提升空间。
技术实现思路
本专利技术所要解决的技术问题是需要提供一种高速缓存替换策略管理系统及方法, 克服现有技术中采用单独某一种替换策略不能有效地满足高速缓存多种不同局部性访存 特点的应用程序访问需求的不足。为了解决上述技术问题,本专利技术提供了一种高速缓存替换策略的管理方法,包 括将所述高速缓存划分为第一部分和第二部分;将所述第一部分划分为第一测试组和第二测试组,所述第一测试组采用第一替换策略,第二测试组采用第二替换策略;设置一策略选择寄存器,记录所述第一测试组和第二测试组的失效次数;当所述第二部分发生访存失效时,根据所述策略选择寄存器的值从所述第一替换 策略和第二替换策略中为所述第二部分选择替换策略。优选地,该方法进一步包括为所述高速缓存的缓存行设置属性位,根据所述属性位将所述高速缓存划分为所 述第一部分和第二部分。优选地,将所述第一部分划分为所述第一测试组和第二测试组的步骤,包括将所述第一部分划分为包含有相等数量缓存行的所述第一测试组和第二测试组。优选地,所述第一替换策略包括最近最少使用替换策略;所述第二替换策略包括 双峰插入策略。优选地,记录所述第一测试组和第二测试组的失效次数的步骤,包括所述第一测试组中发生缓存失效时,将所述策略选择寄存器的值加一;所述第二 测试组中发生缓存失效时,将所述策略选择寄存器的值减一。优选地,根据所述策略选择寄存器的值为所述第二部分选择所述替换策略的步 骤,包括根据所述策略选择寄存器的值的正负号,为所述第二部分选择所述第一替换策略 或所述第二替换策略。优选地,该方法进一步包括每隔一单位时间调整一次所述策略选择寄存器的值。优选地,为所述第二部分的缓存行设置策略位,所述策略位用于标识所述第二部 分中的缓存行所使用的替换策略。为了解决上述技术问题,本专利技术还提供了一种高速缓存替换策略的管理系统,包 括第一划分模块,用于将所述高速缓存划分为第一部分和第二部分;第二划分模块,用于将所述第一部分划分为第一测试组和第二测试组,其中所述 第一测试组采用第一替换策略,所述第二测试组采用第二替换策略;设置模块,用于设置一策略选择寄存器;判断模块,用于判断所述第一测试组、第二测试组以及第二部分是否发生缓存失 效;记录模块,用于将所述第一测试组和第二测试组的失效次数记录到所述策略选择 寄存器中;选择模块,用于当所述第二部分发生访存失效时,根据所述策略选择寄存器的值 从所述第一替换策略和第二替换策略中为所述第二部分选择替换策略。优选地,该系统进一步包括属性标识模块,用于为所述高速缓存的缓存行设置属性位;所述第一划分模块用于根据所述属性位将所述高速缓存划分为所述第一部分和第二部分。优选地,所述第一划分模块用于将所述第一部分划分为包含有相等数量缓存行的 所述第一测试组和第二测试组。优选地,所述记录模块用于所述第一测试组中发生缓存失效时,将所述策略选择 寄存器的值加一;所述第二测试组中发生缓存失效时,将策略选择寄存器的值减一。优选地,所述选择模块用于根据所述策略选择寄存器的值的正负号,为所述第二 部分选择所述第一替换策略或所述第二替换策略。 优选地,该系统进一步包括调整模块,用于每隔一单位时间调整一次所述策略选择寄存器的值。优选地,该系统进一步包括策略标识模块,用于为所述第二部分的缓存行设置策略位,所述策略位用于标识 所述第二部分中的缓存行所使用的替换策略。与现有技术相比,本专利技术的一个实施例至少克服了现有技术中单独某一种替换策 略不能有效地满足高速缓存多种不同局部性访存特点的应用程序访问需求的不足,以及灵 活性较差、动态切换困难等问题,提高了高速缓存的使用性能。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实 施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中图1为本专利技术替换策略的管理方法实施例的流程示意图;图2为本专利技术替换策略的管理系统实施例的组成示意图;图3为本专利技术另一系统实施例的组成示意图。具体实施例方式以下将结合附图及实施例来详细说明本专利技术的实施方式,借此对本专利技术如何应用 技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。首先,如果不冲突,本专利技术实施例以及实施例中的本文档来自技高网
...

【技术保护点】
一种高速缓存替换策略的管理方法,其特征在于,包括:将所述高速缓存划分为第一部分和第二部分;将所述第一部分划分为第一测试组和第二测试组,所述第一测试组采用第一替换策略,第二测试组采用第二替换策略;设置一策略选择寄存器,记录所述第一测试组和第二测试组的失效次数;当所述第二部分发生访存失效时,根据所述策略选择寄存器的值从所述第一替换策略和第二替换策略中为所述第二部分选择替换策略。

【技术特征摘要】

【专利技术属性】
技术研发人员:程旭黄涛管雪涛
申请(专利权)人:北京北大众志微系统科技有限责任公司
类型:发明
国别省市:11[中国|北京]

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

1