Cache的自适应插入策略的实现方法

文档序号:6575767阅读:199来源:国知局
专利名称:Cache的自适应插入策略的实现方法
技术领域
本发明涉及基于存储器层次结构设计领域,特别是涉及一种Cache的自适应插入策略的 实现方法。
背景技术
对于高本地性的工作量,采用最近最少使用替换策略有明显的优势,能达到一个好的性 能,但是当一个工作集的工作量大于Cache容量时,使用最近最少使用替换策略很容易产生 抖动现象。对于这样的应用程序,大部分Cache行的遍历是从MRU位置到LRU位置,没有 Cache命中,从而导致无效率的使用Cache空间。在此基础上,提高最近最少使用替换策略 的性能,然而带来了很多问题,比如说,存储开销的增加,对原有结构的很大改变,Cache 缺失率的增加等。

发明内容
本发明的目的在于克服现有技术中的不足,提供一种Cache的自适应插入策略的实现方 法。本发明解决其技术问题采用的技术方案如下
提供一种Cache的自适应插入策略的实现方法Cache数据行的地址由标签位和偏移位 组成,Cache的自适应插入采用组分配策略根据Cache的空间大小,把Cache分成K个大 小相同的Cache数据块,假设Cache有N个Cache组,每一个Cache数据块就有N/K个Cache 组;每个Cache组赋予一个标识位,用于标识该Cache组发生Cache缺失时是采用最近最少 使用插入策略,还是采用双峰插入策略;每个Cache数据块的标识位和Cache组在该Cache 数据块中的偏移位相等的Cache组采用最近最久未使用插入策略,每一个Cache数据块的标 识位的补码和Cache组在该Cache数据块中的偏移位相等的Cache组采用最近最久未使用插 入策略采用双峰插入策略;
所述最近最少使用插入策略是指在Cache缺失时,通过把调入的Cache行放在最近最 常使用的位置,而不是放在最近最少使用的位置;
所述双峰插入策略是对最近最少使用插入策略的改进,其唯一的区别就是双峰插入 策略并不频繁的把调入的Cache行放置在最近最常使用的位置。
3作为一种改进,本发明还包括策略选择器的使用.。所述策略选择器是一个计数器,用计 数器的值来决定采用最近最少使用插入策略还是采用双峰插入策略。 作为一种改进,策略选择器的工作过程包括以下步骤
(1)增减计数器的值当采用最近最少使用策略的Cache组发生Cache缺失时,策略 选择器中的计数器的值加l;采用双峰插入策略的Cache组发生缺失时,策略选择器中的计 数器的值减l;
(2)选择策略根据策略选择器中的计数器的值来决定采用哪一种插入策略如果策 略选择器中的计数器的值为O,其余的Cache组采用最近最少使用插入策略;如果策略选择 器中的计数器的值不为O,其余的Cache组采用双峰插入策略。 本发明与背景技术相比,具有的有益的效果是-
本发明是针对无效利用Cache空间的问题。本发明能够有效的利用Cache空间,避免 了在采用传统的最近最少使用插入策略时许多Cache行自从调入Cache之后没有被访问的现 象;可以提高命中率,而且所需要的硬件开销小,可以降低代价。因此可以提高Cache的性 能,最终可以改善计算机的性能。


图1为本实施例中Cache分组示意图2为本实施例中策略选择器的工作示意图。
具体实施例方式
在原有设计基础上,每一个附加的结构和改变都需要在设计、验证、测试方面做出很大 的努力,所以希望在传统的替换策略上的改变不需要额外的硬件开销。二级Cache缺失时, 会使处理器停顿数百个周期,而这对于多二级Cache的管理显得尤为重要,所以本发明是基 于二级Cache。对二级Cache来说,由于一级Cache的命中,访问流能够过滤时间局部性。 时间局部性的减少导致相当一部分的Cache行子调入Cache就没有被再次访问,采有传统的 最近最少使用插入策略,大部分调入Cache的行没有被再次访问过,也就是说这些Cache 行没有命中,而还占据着大量的Cache存储空间。
本方法的具体过程及实例如下
1) 最近最少使用插入策略
最近最少使用插入策略在Cache缺失时通过把调入的Cache行放在最近最常使用的位 置,而不是放在最近最少使用的位置,可以达到最优命中率,而且还可以避免产生抖动现象。
2) 双峰插入策略
4双峰插入策略是对最近最少使用插入策略的改进,双峰插入策略和最近最少使用插入 策略唯一的区别就是双峰插入策略并不频繁的把调入的Cache行放置在最近最常使用的位 置。
3) 组分配策略
Cache数据行的地址由标签位和偏移位组成;根据Cache的空间大小,把Cache分成K 个大小相同的Cache数据块,假设Cache有N个Cache组,每一个Cache数据块就有N/K个 Cache组,每个Cache组赋予一个标识位,用于标识该Cache组发生Cache缺失时是采用最 近最少使用插入策略,还是采用双峰插入策略。每个Cache数据块的标识位和Cache组在该 Cache数据块中的偏移位相等的Cache组采用最近最久未使用插入策略,每一个Cache数据 块的标识位的补码和Cache组在该Cache数据块中的偏移位相等的Cache组采用最近最久未 使用插入策略采用双峰插入策略,在图1中,组3、组6、组9、组12采用的是双峰插入策 略,组0、组5、组10、组15采用的是最近最少使用插入策略,其余的组采用的插入策略 由策略选择器决定。
4) 策略选择器
策略选择器实际上是一个计数器,计数器的值用来决定采用最近最少使用插入策略还 是采用双峰插入策略。策略选择器工作过程如图2所示,主要分为以下几步 第一步,增减计数器的值
采用最近最少使用策略的Cache组发生Cache缺失时,策略选择器中的计数器的值加1, 采用双峰插入策略的Cache组发生缺失时,策略选择器中的计数器的值减1。 第二步,选择策略
选择策略就是根据策略选择器中的计数器的值来决定采用哪一种插入策略。如果策略 选择器中的计数器的值为0,其余的Cache组采用最近最少使用插入策略,如果策略选择器 中的计数器的值不为0,其余的Cache组采用双峰插入策略。
最后,还需要注意的是,以上公布的仅是本发明的具体实施例。本领域的普通技术人 员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
权利要求
1. 一种Cache的自适应插入策略的实现方法,Cache数据行的地址由标签位和偏移位组成,其特征在于,Cache的自适应插入采用组分配策略根据Cache的空间大小,把Cache分成K个大小相同的Cache数据块,假设Cache有N个Cache组,每一个Cache数据块就有N/K个Cache组;每个Cache组赋予一个标识位,用于标识该Cache组发生Cache缺失时是采用最近最少使用插入策略,还是采用双峰插入策略;每个Cache数据块的标识位和Cache组在该Cache数据块中的偏移位相等的Cache组采用最近最久未使用插入策略,每一个Cache数据块的标识位的补码和Cache组在该Cache数据块中的偏移位相等的Cache组采用最近最久未使用插入策略采用双峰插入策略;所述最近最少使用插入策略是指在Cache缺失时,通过把调入的Cache行放在最近最常使用的位置,而不是放在最近最少使用的位置;所述双峰插入策略是对最近最少使用插入策略的改进,其唯一的区别就是双峰插入策略并不频繁的把调入的Cache行放置在最近最常使用的位置。
2、 根据权利要求l所述的Cache的自适应插入策略的实现方法,其特征在于,还包括策 略选择器的使用所述策略选择器是一个计数器,用计数器的值来决定采用最近最少使用插入 策略还是采用双峰插入策略。
3、 根据权利要求2所述的Cache的自适应插入策略的实现方法,其特征在于,策略选择 器的工作过程包括以下步骤(l)增减计数器的值当采用最近最少使用策略的Cache组发生Cache缺失时,策略选 择器中的计数器的值加l;采用双峰插入策略的Cache组发生缺失时,策略选择器中的计数器 的值减l;(2)选择策略根据策略选择器中的计数器的值来决定采用哪一种插入策略如果策略 选择器中的计数器的值为0,其余的Cache组采用最近最少使用插入策略;如果策略选择器中 的计数器的值不为O,其余的Cache组采用双峰插入策略。
全文摘要
本发明涉及基于存储器层次结构设计领域,旨在提供一种Cache的自适应插入策略的实现方法。该方法包括Cache数据行的地址由标签位和偏移位组成,Cache的自适应插入采用组分配策略根据Cache的空间大小,把Cache分成K个大小相同的Cache数据块,假设Cache有N个Cache组,每一个Cache数据块就有N/K个Cache组;每个Cache组赋予一个标识位,用于标识该Cache组发生Cache缺失时是采用最近最少使用插入策略,还是采用双峰插入策略。本发明能够有效的利用Cache空间,避免了在采用传统的最近最少使用插入策略时许多Cache行自从调入Cache之后没有被访问的现象;可以提高命中率,而且所需要的硬件开销小,可以降低代价。因此可以提高Cache的性能,最终可以改善计算机的性能。
文档编号G06F12/08GK101520751SQ200910096958
公开日2009年9月2日 申请日期2009年3月26日 优先权日2009年3月26日
发明者乔福明, 刘敬伟, 满 曹, 章铁飞, 缪良华, 胡同森, 蒋冠军, 陈天洲, 项凌翔, 马建良 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1