[发明专利]一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构在审
申请号: | 201410628863.3 | 申请日: | 2014-11-10 |
公开(公告)号: | CN104461758A | 公开(公告)日: | 2015-03-25 |
发明(设计)人: | 肖建青;裴茹霞;李红桥;张洵颖;娄冕 | 申请(专利权)人: | 中国航天科技集团公司第九研究院第七七一研究所 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F9/30 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710000 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 容忍 cache 缺失 快速 流水线 异常 处理 方法 及其 结构 | ||
技术领域
本发明涉及哈佛结构的RISC处理器在进行异常处理时能够快速清空流水线的结构及方法,具体为一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构。
背景技术
目前高性能微处理器普遍使用层次化的多级cache来作为数据和指令的缓冲,以减小处理器和存储器之间的速率差异。其中,第一级cache具有很小的访问延迟,基本上与处理器的速率保持一致,为了获得指令和数据的并行访问,它通常会分成独立的指令cache和数据cache,即所谓的哈佛结构;第二级cache一般将指令和数据统一存放在一起,它可以在片内也可以在片外;在未来的高端设计中,将大容量的第三级cache集成在片内也很有可能成为一种普遍的技术手段。但无论怎样,一级cache的缺失始终是影响处理器性能的重要因素,这种影响不仅表现在处理器执行正常功能的过程中,而且还表现在它处理异常情况的方式上。对于当前绝大多数主流的RISC微处理器而言,它们一般都采用精确异常的处理方式,即在发生异常时,要保证异常指令之前的所有指令都已经成功执行,而异常指令之后所有进入流水线的指令都不能执行,必须被清空掉;此后处理器才从异常入口地址处取新指令并开始执行异常处理子程序。在流水线清空过程中,由于潜在的cache缺失,就可能导致整个流水线被阻塞,使得异常处理也停滞不前,最终影响计算机系统处理异常事件的实时性。
为了降低cache缺失所导致的性能损失,目前从体系结构的层面上已经提出了两种技术手段:(1)非阻塞cache技术,即发生cache缺失时,流水线不被阻塞,可以继续执行其后续无关的指令,以此来隐藏cache缺失的开销。它通过一个专门的“缺失队列”来存储缺失指令,直到缺失的数据块从主存中读回,因此cache缺失能够被隐藏的周期数取决于缺失指令后续的无关指令的条数。显然,这种结构在处理器执行正常功能时是有助于性能提升的,但在异常处理中却无济于事,因为缺失指令的后续指令都要被流水线清空掉,它们本身并不占用有效的执行时间,也就无法隐藏缺失的开销;另一方面,非阻塞本质上是一种乱序执行的思想,对于严格保证指令顺序性的精确异常来说,只会增加控制的复杂度。(2)预取cache技术,它通过提前激发将来可能产生的cache缺失行为,使缺失处理与缺失指令之前的其它指令并行执行,从而隐藏cache缺失的开销。为了实现预取功能,它需要“存储器参考预测表”和“预取队列”两个硬件逻辑。每次使用分支预测器产生的取指地址去访问存储器参考预测表,如果有匹配项,则说明其对应指令是将要执行的,于是将该指令放入预取队列中,以提前触发潜在的cache缺失。遗憾的是,该技术也只适用于处理器执行正常功能的情况,在进行异常处理时并不凑效,这是因为异常事件是少有的随机事件,不具有统计特性,那么分支预测器产生的取指地址在访问存储器参考预测表时,很可能没有匹配项,而不能预测到将要执行哪条指令,最终也就无法提前触发潜在的cache缺失行为。
如何有效的减少cache缺失开销、快速的进行异常处理,是实时计算机系统的必然要求。然而,以上两种技术针对异常事件的处理,仍然无法避免cache缺失导致的流水线停顿,经检索相关文献,目前也没有能很好解决该问题的方法。
发明内容
针对现有技术中存在的问题,本发明提供一种通过在常规的阻塞式cache中设置“假命中”状态来消除因无效指令的cache访问缺失所导致的流水线停顿,不增加额外复杂的硬件逻辑即能够在偶发的异常事件中快速的清空流水线,从而加快异常处理的速度,提高计算机系统实时性的容忍cache缺失快速清空流水线的异常处理方法及其处理结构。
本发明容忍cache缺失快速清空流水线的异常处理方法通过以下技术方案来实现:
首先,修改cache的命中判断逻辑:定义“假命中”状态,标识被流水线清空的无效指令对cache的访问结果;
然后,定义“假命中”状态下cache的行为:cache无需给流水线提供正确的指令码或数据字,直接将访问地址对应的缓存信息进行输出;
其次,实现指令cache“假命中”状态的流水线控制:取指操作中将处理器生成的流水线清空信号直接作用于指令cache,使当前周期无效指令在访问cache时能够选择“假命中”状态;
再次,实现数据cache“假命中”状态的流水线控制:在异常处理开始时,使用处理器生成的流水线清空信号与存储器访问级无效标识信号的“或”逻辑作为数据cache“假命中”状态的选择控制;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航天科技集团公司第九研究院第七七一研究所,未经中国航天科技集团公司第九研究院第七七一研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410628863.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信息处理方法及第一电子设备
- 下一篇:一种恢复虚拟机的方法及装置