[发明专利]一种基于分组LRU的Cache替换算法无效
申请号: | 201210274931.1 | 申请日: | 2012-08-03 |
公开(公告)号: | CN102799538A | 公开(公告)日: | 2012-11-28 |
发明(设计)人: | 衣晓飞;李永进;邓让钰;晏小波;周宏伟;张英;窦强;曾坤;谢伦国;马卓 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F13/18 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 赵洪;周长清 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分组 lru cache 替换 算法 | ||
技术领域
本发明主要涉及到微处理器设计领域,特指一种微处理器设计中基于分组LRU的Cache替换算法。
背景技术
在现代微处理器设计中,它的存储系统往往采用cache来减小访存延迟。在cache的设计中,替换策略影响着cache的命中率。目前,现有技术中所使用的主要有随机替换、先进先出(FIFO)、最少频繁使用(LFU)以及最近最少使用(LRU)等策略。其中,“先进先出”的替换策略在寻找最不可能会用到的替换对象方面比随机替换好不了多少,而LRU策略在大部分应用环境中是最合适的,因为它所关注的各个访问在时间上的局部性。而LFU策略能够将经常使用的数据保留在cache中,所以某些情况下也能有较好的效果。
因为LRU实现的代价比较大,在实际的实现过程中往往不采用真正的LRU,而是采用某种伪LRU算法。如图2所示,为一个典型的cache替换算法,替换时机发生在挑选牺牲者的步骤中。传统的算法是为每一个cache行设置一个LRU权重值,一般来说,这个权重值是该cache行在上次访问后流失的时间,替换时计算各路的LRU权重值,并将权重值最大的作为牺牲者逐出cache。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够保持cache具有较高的命中率、且硬件实现的代价较小的基于分组LRU的Cache替换算法。
为解决上述技术问题,本发明采用以下技术方案:
一种基于分组LRU的Cache替换算法,其步骤为:
(1)设置全局的轮转优先级寄存器global_state:global_state作为Cache中各组轮转优先级的标志,如果其中一个位置为1则代表着与该位置对应的组具有最高优先级;每发生一次替换之后,global_state都要循环左移一位;
设置局部的轮转优先级寄存器group_state:为Cache中每个组的各路设置一个局部的轮转优先级寄存器group_state, group_state作为组内每路轮转优先级的标志,如果其中一个位置为1则代表着与该位置对应的路具有最高优先级;
(2)在进行替换操作时,首先查找Cache中每个组是否有请求,如果有请求就按照各自的优先级选择最高优先级的组;在最高优先级的组内,查找每一路是否有请求,如果有请求则选择最高优先级的一路,作为要换出的对象。
与现有技术相比,本发明的优点在于:本发明基于分组LRU的Cache替换算法中,无论cache分为多少组,每组中包括多少路,均为这些组设置局部寄存器和一个全局寄存器。与其他伪LRU的实现方式相比,本发明所用的状态寄存器较少,该硬件逻辑实现延时小,能够用于高频率的设计中,而且本发明能够保持cache具有较高的命中率。
附图说明
图1是本发明方法的流程示意图。
图2是组相联cache与内存块之间的映射关系示意图。
图3是本地cache访问的LRU算法流程示意图。
图4是本发明中监听访问的LRU算法流程示意图。
图5是具体应用实例中一个16路组相联的cache的示意图。
图6是具体应用实例中局部轮转优先级寄存器和全局轮转优先级寄存器的初始化状态示意图。
图7是具体应用实例中一个替换算法操作时的寄存器状态示意图。
图8是具体应用实例中一个替换算法操作时的寄存器状态示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图2所示,对于组相联的cache结构,内存中的每个数据块可以映射到一个cache组内的任何一路。一个组内路的数目被称为组相联度。图中的cache为两路组相联的cache。块号为0,4,8,12,…映射到0组中的两路中;块号为1,5,9,13,…映射到1组的两路中,块号为2,6,10,14,…映射到2组的两路中;同理,块号为3,7,11,15,…映射到3组的两路中。本发明即是在有新的数据块进入cache结构时,会将两路中的哪个数据块换出去。可以理解,如果不是两路相联,而是16路组相联,本发明则是将16路中的哪个数据块换出去。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210274931.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种玻璃压制成型模具
- 下一篇:超声波污水处理仪