一种全相联指令Cache的制作方法

文档序号:14870287发布日期:2018-07-06 22:25阅读:865来源:国知局

本发明涉及计算机硬件技术领域,尤其涉及一种全相联指令cache。



背景技术:

随着计算机系统的迅速发展,现代计算机系统越来越受主存储器性能的限制。处理器的性能以每年60%的速度在增长,而主存储器芯片带宽仅仅以每年10%的速度在增长。在速度方面,主存储器和处理器一直保持了大约一个数量级的差距。由于cpu和存储器的速度差距越来越大,于是出现了cache,存在于cpu与主存之间,他的存取速度接近于cpu速度,但是容量小,价格高昂。

cache的出现是一种无奈的妥协,也成为了影响系统性能的关键因素之一。如今嵌入式系统正成为计算机工业中的重要组成部分,在汽车电子、音视频处理、工业自动化等领域都有着广泛的应用。嵌入式系统的一个重要特征就是它的实时性,需要对数据进行实时的传输和处理,因此对于cache结构的组织和设计也有着更高的要求。如果一次访存的数据在cache中命中,那么只需要1或2个处理器周期就能够得到数据;但如果所需要的数据不在cache中,那么往往需要高一个数量级的处理器周期来得到数据。

所以,设计实现高性能指令cache,提升cache命中率有着深远意义。



技术实现要素:

本发明公开了一种全相联指令cache,不但能够显著提升cache命中效率,还能在保证性能的情况下,简化指令cache设计难度。

本发明的技术解决方案是:

一种全相联指令cache,包含标签控制模块1、plru算法模块2和存储器模块3,

标签控制模块1,将取指地址与标签控制模块1内的标签寄存器中保存的地址进行比较,若命中,则直接从存储器模块3相应地址中取出指令数据,返回给请求发起方;如果未命中,则对未命中cache的取指请求进行缓存,并发起向内存的取指请求,待内存返回数据后,结合plru算法模块2产生的更新地址,更新存储器模块3相应地址中保存的指令数据,而后,标签控制模块1对缓存的未命中请求进行第二次比较,若命中,则直接从存储器模块3相应地址中取出指令数据,返回给请求发起方;如果未命中,则发起向内存的取指请求,待内存返回数据后,标签控制模块1返回指令给请求发起方;

plru算法模块2,利用来自标签控制模块1对取指地址命中与否的判断情况来预测未来的数据使用情况,将最长时间内没有被访问的cache块地址作为更新地址返回给标签控制模块1;

存储器模块3,用于保存内存映射到cache中的指令数据。

全相联指令cache采用全相联的地址映射方式。

本发明的技术效果是:

通常来讲,已有的指令cache设计实现方案多是通过增大cache的容量或者优化替换算法等以减小cache的缺失率。考虑到cache容量增加带来的成本问题,以及指令cache在整个处理器运行中所处的重要地位,本发明通过优化替换算法、优化标签控制逻辑、采用全相联的地址映射方式,实现了在不增加cache容量的前提下提升性能,不仅有利于控制成本,还一定程度上降低了设计难度。

附图说明

图1是本发明结构示意图。

图2是本发明一种全相联指令cache的设计实现结构图。

具体实施方式

下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其它实施例,都属于本发明的保护范围。

一种全相联指令cache,如图1所示,包含标签控制模块1、plru算法模块2和存储器模块3,

标签控制模块1,将取指地址与标签控制模块1内的标签寄存器中保存的地址进行比较,若命中,则直接从存储器模块3相应地址中取出指令数据,返回给请求发起方;如果未命中,则对未命中cache的取指请求进行缓存,并发起向内存的取指请求,待内存返回数据后,结合plru算法模块2产生的更新地址,更新存储器模块3相应地址中保存的指令数据,而后,标签控制模块1对缓存的未命中请求进行第二次比较,若命中,则直接从存储器模块3相应地址中取出指令数据,返回给请求发起方;如果未命中,则发起向内存的取指请求,待内存返回数据后,标签控制模块1返回指令给请求发起方;这种两次比较的策略,增加了命中概率,提升了cache性能。

plru算法模块2,利用来自标签控制模块1对取指地址命中与否的判断情况来预测未来的数据使用情况,将最长时间内没有被访问的cache块地址作为更新地址返回给标签控制模块1。相较于lru算法,plru预测算法相对简单,但几乎不影响cache缺失率,大大简化了设计复杂度。

存储器模块3,用于保存内存映射到cache中的指令数据。

全相联指令cache采用全相联的地址映射方式。可以让主存中任何一个块都能映射到cache中任何一个块的位置上。这种映射方式比较灵活,cache块冲突概率最低、空间利用率最高。

实施例

如图2所示,当指令cache接收到取指请求,标签控制模块1会将取指地址与标签寄存器中存放的地址相比较,如若命中,则直接从存储器模块3中取出指令,返回给上一级。如若未命中,则将此次取指请求缓存下来,紧接着标签控制模块1发起对主存的读操作,待主存响应并且返回数据后,先根据plru模块产生的替换地址,更新相应cache块中的内容,以及相应的标签寄存器。然后在将缓存的指令进行一次比较,此时命中,从存储器中取出指令数据,返回给上一级。

而对于plru模块,通过使用mru(mostrecentlyused)位,组中每个cache块都有自己的mru位,对组中任何一个cache块的访问都将对应的mru位设为1,而当需要进行cache替换时,选择mru位为零且索引地址最低的块进行更新。

最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。



技术特征:

技术总结
本发明涉及计算机硬件技术领域,公开了一种全相联指令Cache,包含:标签控制模块1,将取指地址与标签控制模块1保存的地址进行比较,若命中,则直接从存储器模块3相应地址中取出指令数据,返回给请求发起方;如果未命中,则对未命中Cache的取指请求进行缓存,并发起向内存的取指请求,待内存返回数据后,结合PLRU算法模块2产生的更新地址,更新存储器模块3相应地址中保存的指令数据,而后,标签控制模块1对缓存的未命中请求进行第二次比较;PLRU算法模块2,利用标签控制模块1将最长时间内没有被访问的Cache块地址作为更新地址返回给标签控制模块1;存储器模块3,用于保存内存映射到Cache中的指令数据。

技术研发人员:韩一鹏;牛少平;魏艳艳;郝冲;邓艺;齐宇心
受保护的技术使用者:中国航空工业集团公司西安航空计算技术研究所
技术研发日:2017.12.06
技术公布日:2018.07.06
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1