一种基于确定性重放的处理器整体故障检测系统与方法技术方案

技术编号:7581041 阅读:238 留言:0更新日期:2012-07-19 07:50
本发明专利技术提供一种基于确定性重放的处理器整体故障检测系统与方法。其通过在多核处理器中记录执行的被检测处理器核间的信息交互,并确定性的在冗余处理器核组中重放的执行,将两次执行的结果进行比对,来检测在两个处理器核组中是否有故障,由于每次将一组处理器核进行重放,所以不管是处理器核上面的故障,还是其他非处理器核(如二级缓存、片上网络、内存控制器等)上面的故障都可以检测到,其十分有效的弥补了现有技术无法检测到非处理器核上面故障的不足,保证了处理器芯片的可靠性。

【技术实现步骤摘要】

本专利技术涉及一种处理器芯片设计与检测
,特别地,涉及。
技术介绍
越来越大的晶体管规模、越来越低的芯片电压、越来越小的工艺技术使得处理器越来越容易产生故障。一般来说,一个故障是指在处理器(或可称为处理器芯片)使用过程中一个或者多个逻辑门得到了错误的结果。故障产生的原因可能足由于处理器制造时的错误、处理器提前到达使用寿命、外部射线对处理器造成的辐射等等。虽然已有的扫描链技术可以根据故障模型去检测处理器中的故障,但是仅限于已有的故障模型下面的故障。然而,随着处理器的高速发展,各种低功耗技术、高速接口的应用,越来越多的故障模型被提出,即使扫描链技术检测对某些故障模型达到了 100%的覆盖率,但一些其他故障模型下、或者没有固定故障模型的故障仍然无法被检测出来。另外,一些测试完成之后才发生的故障,如处理器提早到了使用寿命,同样无法被检测出来。由于故障会使得处理器的一些逻辑产生错误,其很有可能导致程序在处理器上执行错误。错误的程序执行结果会极大的降低处理器的可靠性,甚至会导致整个系统崩溃。所以,如何尽可能多的检测出处理器产生的所有故障已经成为当今处理器越来越重视的问题。已有方法包括对处理器核做冗余检测,其检测处理器核内的那些测试没有检测到的故障。具体来说,对每一个处理器核都安排一个冗余的处理器核,两个处理器核同时执行同样的程序,并比较两个执行的结果,如果两次结果不一样,那么两个处理器核必定有一个有故障。虽然这些方法可以检测到处理器核内部的所有故障,但是这些方法无法检测到片上网络、二级缓存、内存控制器等非处理器核内的错误。而在一个成熟处理器芯片中,这些非处理器核占用了超过整个芯片50%的面积,所以一种能够检测整个处理器的故障的方法是亟待提出的。
技术实现思路
本专利技术的目的在于提供,其通过确定性重放来检测整个处理器中的故障,使得整个处理器中的故障能够得到检测,保证了整个处理器芯片的可靠性。为实现本专利技术目的而提供的一种基于确定性重放的处理器整体故障检测系统,包括一检测多核处理器,以及一冗余比较多核处理器;还包括记录模块,与所述检测多核处理器中每个处理器核相对应的多个异或模块-1,重放模块,与所述冗余比较多核处理器中每个处理器核相对应的多个异或模块-2和多个比较模块,其中所述记录模块,用于在所述检测多核处理器执行一并行程序时,记录所有被检测的处理器核之间的信息交互,并将记录下来的交互传递信息传输出去;所述异或模块-1,用于在所述检测多核处理器执行所述并行程序时,收集所述检测多核处理器中每个处理器核对每一条指令的执行,记录下每一条指令执行的结果,并将所有结果通过异或的方式进行处理,得到处理后的异或结果-1并传输出去;所述重放模块,用于根据记录模块记录下来的处理器核之间的交互传递信息,在所述冗余比较多核处理器中确定性重放执行所述并行程序;所述异或模块-2,用于在所述冗余比较多核处理器根据重放模块中的交互传递信息进行确定性重放执行所述并行程序,收集所述冗余比较处理器核中对每一条指令的执行,记录下每一条指令执行的结果,并将所有结果通过异或的方式进行处理,得到处理后的异或结果-2传输给比较模块;所述比较模块,用于读入所述异或模块-1记录的异或结果-1,并将异或结果-1同重放执行的异或结果-2进行比对,通过比对的结果来判断两次执行中所述检测多核处理器和/或冗余比较多核处理器是否发生或者触发故障。较优地,所述的基于确定性重放的处理器整体故障检测系统中,一非处理器核设备与所述一组需要被检测的处理器核组组成一检测多核处理器,完成并行程序的指令完整执行过程;或者与所述一组用来做比对的冗余的处理器核组组成一冗余比较多核处理器,完成并行程序的指令完整执行过程;其中,所述一组需要被检测的处理器核组与所述一组用来做比对的冗余的处理器核组具有相同个数的多个处理器核。较优地,所述非处理器核设备,包括二级缓存、片上网络、内存控制器等。较优地,所述每一异或模块-1 一体化地配置在相应的每一个需要被检测的处理器核里面;所述每一异或模块-2 —体化地配置在冗余比较多核处理器中每一个用来做比对的冗余的处理器核里面。较优地,所述交互传递信息包括时间序关系和执行序关系;所述记录模块包括采样模块;所述采样模块用于记录根据采样周期进行指令窗口采样而得到的处理器核之间的所述时间序关系;并记录两次采样周期之内的冲突操作之间的所述执行序关系。优选地,所述采样周期为每512个时钟周期。所述记录模块包括多个与每一个被检测的处理器核相对应的CAM存储记录模块,用于存储所述相应处理器核最近提交的IOM条访存指令;并当一个访存指令被执行时,检测其他处理器核内的CAM存储记录模块,判断是否有与其冲突的访存指令;如果有,则记录处理器核之间的执行序关系;否则不记录。较优地,所述重放模块中,包括与所述冗余比较多核处理器的每一处理器核相对应的多个暂停取指寄存器,用于监控每个处理器核当前执行的防存指令数,根据所述时间序关系和执行序关系完成所述并行程序的确定性重放。较优地,所述异或模块-1设置一个32位的结果寄存器-1,初始值为0,每次执行一条指令,就将这个指令的结果异或上原有的结果寄存器-1的值;所述异或模块-1每执行IOM条指令,就将这个结果寄存器-1的值导出到检测多5核处理器外部,并重新初始化该结果寄存器-1 ;所述异或模块-2中设置32位的结果寄存器_2,初始值为0,每次执行一条指令,就将这个指令的结果异或上原有的结果寄存器-2 ;异或模块-2每执行IOM条指令,就将这个结果寄存器-2的值导出到比较模块,并重新初始化该结果寄存器_2。为实现本专利技术目的还提供一种基于确定性重放的处理器整体故障检测方法,包括以下步骤步骤S100,并行程序在检测多核处理器中执行,记录下所述检测多核处理器中每一处理器核之间的交互传递信息,并且记录下指令执行的异或结果-1 ;步骤S200,所述并行程序在冗余比较多核处理器中执行,根据步骤SlOO记录的处理器核之间的交互传递信息,确定性重放所述并行程序的执行,同时记录下执行的异或结果-2;步骤S300,将对两次的执行异或结果-1和异或结果-2进行比对,检测是否有故障产生或者触发。较优地,所述步骤S300中,所述检测包括如下步骤如果比对结果不一样,则判断其中一组处理器核中在这次并行程序的执行中存在故障;否则,判断两组处理器核在这次执行中均没有故障。本专利技术的有益效果本专利技术的基于确定性重放的处理器整体故障检测系统与方法,通过在处理器中通过记录执行的被检测处理器核间的信息交互,并确定性的在冗余处理器核组中重放的执行,将两次执行的结果进行比对,来检测在两个处理器核组中是否有故障,由于每次将一组处理器核进行重放,所以不管是处理器核上面的故障,还是其他非处理器核(如二级缓存、片上网络、内存控制器等)上面的故障都可以检测到,其十分有效的弥补了现有技术无法检测到非处理器核上面故障的不足,保证了处理器芯片的可靠性。说明书附1为本专利技术基于确定性重放的处理器整体故障检测系统结构示意图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术基于确定性重放的处理器整体故障检测系统与方法的实现进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:李磊陈云霁孙国庆
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术