当前位置: 首页 > 专利查询>江南大学专利>正文

一种普适检查点和回滚恢复方法技术

技术编号:24120722 阅读:58 留言:0更新日期:2020-05-13 03:00
本发明专利技术公开了一种普适检查点和回滚恢复方法,属于处理器容错技术领域。该方法通过增设valid状态位,确保了不会使用不完整的检查点进行故障恢复,能够应对在建立检查点、执行回滚恢复以及故障恢复过程中遇到故障的情况,连续多次执行回滚恢复操作时,切换用于故障恢复的检查点,避免了与当前检查点本身相关的故障;通过采用软错误间隔历史表和模式历史表的自适应预测结构,给出一种自适应动态检查点方法,能够同时根据软错误间隔的长期特征和短期特征对软错误间隔进行更为准确的预测,从而有效地降低处理器任务的平均执行时间,而且该方法能够快速学会预测任意的重复模式,能够应对软错误分布复杂或未知的情况。

【技术实现步骤摘要】
一种普适检查点和回滚恢复方法
本专利技术涉及一种普适检查点和回滚恢复方法,属于处理器容错

技术介绍
检查点和回滚恢复是一种常用的处理器容错方法,可以用于应对在处理器中发生的软错误。检查点和回滚恢复方法的主要实施流程如下:在任务的执行过程中,定期设置检查点,为系统保存安全、无故障的处理器执行状态,将当前执行状态相关的重要数据(如寄存器、cache数据、主存数据等)存储到安全存储器中;在检测到故障后,用安全存储器中的数据替换当前处理器系统中的对应数据,使处理器的状态回滚到上一个检查点,从而避免从头开始执行,以减少计算性能损失。其中,安全存储器指的是被ECC(ErrorCorrectingCode)等容软错误技术保护的存储器,安全存储器可以是主存储区的一部分,也可以独立于主存储器,这类存储器能够极大程度地抵抗软错误从而保证所存储数据的安全。应用检查点容错方法的系统在执行任务时,总的任务执行时间主要分为两个部分,一部分是建立检查点的时间,另一部分是因故障而引起的故障恢复时间。检查点的设置间隔对总的任务执行时间有很大影响,提升检查点的设置频率将减少故障恢复时间,但是建立检查点所用的时间会变长;降低检查点的设置频率将减短检查点的建立时间,但是故障恢复时间会变长。所以为减小任务执行时间,需要合理地设置检查点间隔。现有的检查点容错方法中,往往仅考虑软错误发生在正常执行过程中的场景(可参考“WalkerJR,PapachristouC.ArollbackrecoverysystemforembeddedFPGAprocessors[D].CaseWesternReserveUniversity,2006”),而没有给出在建立检查点过程中、故障恢复过程中发生软错误时的解决方案。现有的基于检查点的容错系统中,大部分仍然采用固定检查点的方法,固定检查点只有当系统失效服从泊松分布时效果最优,但实际的容错系统并不满足服从泊松分布的条件。实际的容错系统可能存在操作环境发生改变,进而导致软错误分布规律复杂且未知的情况,因此研究人员后续提出了动态的检查点设置方法,动态检查点方法能够根据历史软错误信息对未来一定时间内的软错误发生情况进行预测,进而能够动态地调整后续的检查点间隔。现有动态检查点算法直接将历史平均软错误率作为未来一段时间的平均失效率(使用历史失效率预测将来的平均失效率),并根据泊松分布条件下的最优检查点公式重新确定检查点间隔。这种预测方法适合于对长期特征的预测,但由于历史平均软错误率不能及时地体现短期内容软错误分布的变化,所以使用该方法进行短期预测的准确度较低。综上所述,现有动态检查点算法不能得到很好的即时性或很高的短期预测精度。
技术实现思路
为了解决现有的检查点和回滚恢复方法没有同时考虑三种软错误发生情形的问题,以及现有的动态检查点方法对于软错误分布复杂的状况预测即时性差、预测精度不够高的问题,本专利技术提供了一种普适检查点和回滚恢复方法,所述方法将安全存储器分为N个存储区间、共能存储N个检查点,建立在各个存储区间上的检查点分别记为:C0、C1、C2、C3…CN-1,为每个检查点设置状态位valid,以指示该检查点的建立是否完成、所记录的数据是否完整可用,并记录每个检查点设置的时间信息,设置回滚计数IRC,用于记录连续执行回滚恢复操作的次数,其中,i表示检查点的编号,0≤i≤N-1,对应地,Ci表示编号为i的检查点,Ivmin表示其valid位为1的最早的检查点的编号,Ivmax表示其valid位为1的最晚的检查点的编号,Ic表示即将重新建立检查点的存储区间的编号,所述方法包括:步骤1:处理器正常执行任务,并检测是否达到设置检查点的条件,由故障检测检测模块检测是否发生故障;所述设置检查点的条件为:处理器正常执行任务的时间大于等于设定的检查点间隔时间并到达指令周期结束的时刻;当处理器检测到到达设置检查点的条件时,执行步骤2,当故障检测模块检测到处理器系统中发生了故障,执行步骤5;步骤2:处理器进入检查点异常服务程序,判断安全存储器中是否存在valid=0的检查点,如果存在,执行步骤31,否则执行步骤32;步骤31:安全存储器中的存储空间未记录满,由于尚未有时间信息,所以可以将其valid位为0的任一检查点的编号赋值给Ic,执行步骤4;步骤32:将其valid位为1的最早的检查点的编号记为Ivmin赋值给Ic,将赋值为0,执行步骤4;步骤4:在编号为Ic的检查点上重新建立检查点,处理器系统通过DMA将处理器中需要保存的寄存器以及主存中的有效数据复制到所在的存储区域中,将赋值为1,并记录该检查点的时间信息,将IRC赋值为0,检查点异常服务程序结束,执行步骤1;步骤5:处理器进入回滚恢复异常服务程序,将其valid位为1的最晚的检查点的编号记为Ivmax,若Ivmax-IRC≤0,则执行步骤6,若Ivmax-IRC>0,则令IRC的数值加1并执行步骤7;步骤6:没有可用的检查点,无法从现有检查点恢复任务,则重新执行整个任务,并执行步骤1;步骤7:使用编号为Ivmax-IRC的检查点进行回滚恢复,通过DMA,使用保存在中的处理器寄存器数据覆盖当前的处理器寄存器,使用其中的主存有效数据覆盖当前的主存数据,并对两个处理器中所有的cache执行invalidate操作,执行步骤8;其中,invalidate操作适用于采用写入策略的cache;步骤8:使用自适应动态检查点算法,对检查点间隔进行调整,调整算法结束后,执行步骤1。可选的,所述步骤8中,自适应动态检查点算法包括:步骤一:将软错误发生次数N的值加1,记录检测到软错误时处理器的周期计数器指示的时刻,执行步骤二;步骤二:判断本次记录是否是第一条记录,结果为否,执行步骤三;结果为是,执行步骤四;步骤三:将上一次记录的时刻记为t0,将本次记录的时刻记为t1,将Δt=t1-t0作为上一次软错误到本次软错误的时间间隔,并将系统中最近一个软错误发生的时刻Tfinal赋值为t1,执行步骤五;步骤四:将本次记录的时刻记为t0,并将系统中第一个软错误发生的时刻Tstart以及SEIHT所记录的最早的软错误发生时刻Tstart′均赋值为t0,算法结束;步骤五:判断软错误间隔历史表SEIHT是否已满,结果为是,执行步骤六;结果为否,执行步骤七;步骤六:将SEIHT中的软错误间隔标志FLAG的最高位SEIHT.FLAG.HSB的时间戳赋值给Tstart′,之后该时间戳所在的存储空间允许被覆盖、允许用于记录新的软错误发生时刻,计算软错误间隔阈值T代表的是SEIHT中记录的k个软错误间隔的平均软错误间隔,执行步骤七;步骤七:将步骤三中计算的Δt与软错误间隔阈值T进行比较,并根据比较结果对SEIHT的软错误间隔标志SEIHT.FLAG及对应的时间戳SEIHT.TIMESTAMP进行更新:若Δt≥T,认为该间隔为“长间隔”,将SEIHT.FLA本文档来自技高网
...

【技术保护点】
1.一种普适检查点和回滚恢复方法,其特征在于,所述方法将安全存储器分为N个存储区间、共能存储N个检查点,建立在各个存储区间上的检查点分别记为:C

【技术特征摘要】
1.一种普适检查点和回滚恢复方法,其特征在于,所述方法将安全存储器分为N个存储区间、共能存储N个检查点,建立在各个存储区间上的检查点分别记为:C0、C1、C2、C3...CN-1,为每个检查点设置状态位valid,以指示该检查点的建立是否完成、所记录的数据是否完整可用,并记录每个检查点设置的时间信息;设置回滚计数IRC,用于记录连续执行回滚恢复操作的次数,其中,i表示检查点的编号,0≤i≤N-1,对应地,Ci表示编号为i的检查点,Ivmin表示其valid位为1的最早的检查点的编号,Ivmax表示其valid位为1的最晚的检查点的编号,Ic表示即将重新建立检查点的存储区间的编号,所述方法包括:
步骤1:处理器正常执行任务,并检测是否达到设置检查点的条件,由故障检测检测模块检测是否发生故障;
所述设置检查点的条件为:处理器正常执行任务的时间大于等于设定的检查点间隔时间并到达指令周期结束的时刻;
当处理器检测到到达设置检查点的条件时,执行步骤2,当故障检测模块检测到处理器系统中发生了故障,执行步骤5;
步骤2:处理器进入检查点异常服务程序,判断安全存储器中是否存在valid=0的检查点,如果存在,执行步骤31,否则执行步骤32;
步骤31:安全存储器中的存储空间未记录满,由于尚未有时间信息,所以可以将其valid位为0的任一检查点的编号赋值给Ic,执行步骤4;
步骤32:将其valid位为1的最早的检查点的编号记为Ivmin赋值给Ic,将赋值为0,执行步骤4;
步骤4:在编号为Ic的检查点上重新建立检查点,处理器系统通过DMA将处理器中需要保存的寄存器以及主存中的有效数据复制到所在的存储区域中,将赋值为1,并记录该检查点的时间信息,将IRC赋值为0,检查点异常服务程序结束,执行步骤1;
步骤5:处理器进入回滚恢复异常服务程序,将其valid位为1的最晚的检查点的编号记为Ivmax,若Ivmax-IRC≤0,则执行步骤6,若Ivmax-IRC>0,则令IRC的数值加1并执行步骤7;
步骤6:没有可用的检查点,无法从现有检查点恢复任务,则重新执行整个任务,并执行步骤1;
步骤7:使用编号为Ivmax-IRC的检查点进行回滚恢复,通过DMA,使用保存在中的处理器寄存器数据覆盖当前的处理器寄存器,使用其中的主存有效数据覆盖当前的主存数据,并对两个处理器中所有的cache执行invalidate操作,执行步骤8;其中,invalidate操作适用于采用写入策略的cache;
步骤8:使用自适应动态检查点算法,对检查点间隔进行调整,调整算法结束后,执行步骤1。


2.根据权利要求1所述的方法,其特征在于,所述步骤8中,自适应动态检查点算法包括:
步骤一:将软错误发生次数N的值加1,记录检测到软错误时处理器的周期计数器指示的时刻,执行步骤二;
步骤二:判断本次记录是否是第一条记录,结果为否,执行步骤三;结果为是,执行步骤四;
步骤三:将上一次记录的时刻记为t0,将本次记录的时刻记为t1,将Δt=t1-t0作为上一次软错误到本次软错误的时间间隔,并将系统中最近一个软错误发生的时刻Tfinal赋值为t1,执行步骤五;
步骤四:将本次记录的时刻记为t0,并将系统中第一个软错误发生的时刻Tstart以及SEIHT所记录的最早的软错误发生时刻Tstart′均赋值为t0,算法结束;
步骤五:判断软错误间隔历史表SEIHT是否已满,结果为是,执行步骤六;结果为否,执行步骤七;
步骤六:将SEIHT中的软错误间隔标志FLAG的最高位SEIHT.FLAG.HSB的时间戳赋值给Tstart′,之后该时间戳所在的存储空间允许被覆盖、允许用于记录新的软错误发生时刻,计算软错误间隔阈值T代表的是SEIHT中记录的k个软错误间隔的平均软错误间隔,执行步骤七;
步骤七:将步骤三中计算的Δt与软错误间隔阈值T进行比较,并根据比较结果对SEIHT的软错误间隔标志SEIHT.FLAG及对应的时间戳SEIHT.TIMESTAMP进行更新:
若Δt≥T,认为该间隔为“长间隔”,将SEIHT.FLAG左移一位,同时将1写入SEIHT中的软错误间隔标志FLAG的最低位SEIH...

【专利技术属性】
技术研发人员:虞致国常龙鑫顾晓峰
申请(专利权)人:江南大学
类型:发明
国别省市:江苏;32

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

1