一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构技术

技术编号:11198699 阅读:157 留言:1更新日期:2015-03-26 05:33
一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构,处理方法包括:首先定义“假命中”状态,标识被流水线清空的无效指令对cache的访问结果;在“假命中”状态下cache不保证指令码或数据字正确,直接将访问地址对应的缓存信息输出;“假命中”状态取指操作中将流水线清空信号直接作用于指令cache,使无效指令访问cache时选择“假命中”状态;在异常处理开始时,使用流水线清空信号与存储器访问级无效标识信号的“或”逻辑选择控制数据cache;异常发生时,cache进入“假命中”状态,使流水线继续推进。本发明专利技术同时公开了应用该异常处理方法的结构。本发明专利技术能够加快异常处理速度,提高系统的实时性。

【技术实现步骤摘要】
一种容忍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“假命中”状态的选择控制;最后,在发生异常的情况下,cache进入“假命中”状态,直接将数据返回给流水线,既不保证数据的正确性也不发送访存请求,进而使得流水线继续推进。所述的异常处理的指令包括正在访问数据cache的指令以及后续周期访问数据cache的指令。处理器生成的流水线清空信号作用于当前所有指令的流水级后,将前一个流水级的无效标识信号向后一个流水级传递。所述的异常处理前首先进行保存现场操作,然后通过流水线清空信号对异常指令之后的所有指令进行标识;所述的异常指令之后的所有指令包括从取指级到存储器访问级的指令。所述的无效指令包括对应译码级、寄存器访问级以及执行级的指令。本专利技术容忍cache缺失快速清空流水线的异常处理结构通过以下技术方案来实现:包括能够标识被流水线清空的无效指令对cache的访问结果的命中判断逻辑单元,流水线取指操作中能够将处理器生成的流水线清空信号直接作用于指令cache的指令控制单元,以及流水线异常处理开始时能够将处理器生成的流水线清空信号与存储器访问级无效标识信号的“或”逻辑作为数据cache选择控制的数据控制单元,所述的命中判断逻辑单元标识的无效指令能够通过cache将缓存信息直接进行输出。所述的能够标识被流水线清空的无效指令对cache的访问结果的命中判断逻辑单元包括多路选择器及其选择逻辑单元。与现有技术相比,本专利技术完全消除了由于无效指令潜在的cache访问缺失导致的流水线停顿现象,加快了异常处理的速度,有益的技术效果如下:(1)“假命中”机制造就了无效指令在流水线中的零等待。对于当今的高频处理器而言,cache缺失至少需要几十上百个时钟周期,但“假命中”使无效指令对cache的访问不产生缺失行为,从而避免了流水线的等待。(2)降低了系统功耗。“假命中”不发访存请求,避免无效指令对存储器进行不必要的访问操作,从而降低了整个系统的功耗开销。(3)提高了计算机系统的实时处理能力。当外部中断或者内部异常事件发生时,指令流水线能够被快速清空并立即响应异常处理,有效增强了计算机系统的实时性。(4)本专利技术更适用于深度流水的微处理器设计。处理器的流水级数越多,异常发生时需要清空的指令就越多,其中访存指令由于cache缺失导致流水线停顿的开销就会越大,针对深流水线中不断增多的无效访存指令,“假命中”策略零开销特性的效果将更加明显。(5)本专利技术的控制结构简单,除了增加“假命中”状态的多路选择器及其选择逻辑之外无需其它的硬件资源。附图说明图1为本专利技术实现快速异常处理的控制结构框图;图2为常规RISC处理器在进行异常处理时流水线清空的时序图;图3为本专利技术在进行异常处理时流水线清空的时序图。具体实施方式下面结合具体的实施例对本专利技术做进一步的详细说明,所述本文档来自技高网
...
一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构

【技术保护点】
一种容忍cache缺失快速清空流水线的异常处理方法,其特征在于:首先,修改cache的命中判断逻辑:定义“假命中”状态,标识被流水线清空的无效指令对cache的访问结果;然后,定义“假命中”状态下cache的行为:cache无需给流水线提供正确的指令码或数据字,直接将访问地址对应的缓存信息进行输出;其次,实现指令cache“假命中”状态的流水线控制:取指操作中将处理器生成的流水线清空信号直接作用于指令cache,使当前周期无效指令在访问cache时能够选择“假命中”状态;再次,实现数据cache“假命中”状态的流水线控制:在异常处理开始时,使用处理器生成的流水线清空信号与存储器访问级无效标识信号的“或”逻辑作为数据cache“假命中”状态的选择控制;最后,在发生异常的情况下,cache进入“假命中”状态,直接将数据返回给流水线,既不保证数据的正确性也不发送访存请求,进而使得流水线继续推进。

【技术特征摘要】
1.一种容忍cache缺失快速清空流水线的异常处理方法,其特征在于:首先,修改cache的命中判断逻辑:定义“假命中”状态,标识被流水线清空的无效指令对cache的访问结果;然后,定义“假命中”状态下cache的行为:cache无需给流水线提供正确的指令码或数据字,直接将访问地址对应的缓存信息进行输出;其次,实现指令cache“假命中”状态的流水线控制:取指操作中将处理器生成的流水线清空信号直接作用于指令cache,使当前周期无效指令在访问cache时能够选择“假命中”状态;再次,实现数据cache“假命中”状态的流水线控制:在异常处理开始时,使用处理器生成的流水线清空信号与存储器访问级无效标识信号的“或”逻辑作为数据cache“假命中”状态的选择控制;最后,在发生异常的情况下,cache进入“假命中”状态,直接将数据返回给流水线,既不保证数据的正确性也不发送访存请求,进而使得流水线继续推进。2.根据权利要求1所述的容忍cache缺失快速清空流水线的异常处理方法,其特征在于:所述的异常处理的指令包括正在访问数据cache的指令以及后续周期访问数据cache的指令。3.根据权利要求1或2所述的容忍cache缺失快速清空流水线的异常处理方法,其特征在于:处理器生成的流水线清空信号作用...

【专利技术属性】
技术研发人员:肖建青裴茹霞李红桥张洵颖娄冕
申请(专利权)人:中国航天科技集团公司第九研究院第七七一研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有1条评论
  • 来自[美国加利福尼亚州圣克拉拉县山景市谷歌公司] 2015年03月26日 06:49
    容忍,是指宽容;忍耐。
    0
1