欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019113621629
申请人: 江南大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2023-10-10
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种低延迟的双模lockstep容软错误处理器系统,其特征在于,所述系统包括硬件部分和软件部分,所述硬件部分包括存储器、双模lockstep处理器、DMA、总线监测器、同步控制器、信号比对器和中断控制器,所述双模lockstep处理器包括两个相同的处理器CPU0和CPU1,且所述处理器CPU0和CPU1的指令级并行;所述软件部分控制信号比对器对两个处理器CPU0和CPU1进行位级比对,以实现对软错误的检测;

所述软件部分在实现对软错误的检测时,以软错误间隔历史表SEIHT和模式历史表PHT对下一个软错误间隔进行预测,根据预测的软错误间隔与设定的阈值T进行比较,根据比较结果决定是否调整检查点的设置频率,从而对检查点的设置间隔进行调整。

2.根据权利要求1所述的系统,其特征在于,总线监测器接受来自两个处理器CPU0和CPU1的总线控制信号,对两个处理器CPU0和CPU1总线的操作类型进行监测,如果CPU0或CPU1监测到总线发出存储器写入请求,则分别将总线监测器的CPU0_MWR或CPU1_MWR输出信号置为有效;

同步控制器接受来自总线监测器的存储器写入请求信号CPU0_MWR、CPU1_MWR,输出握手结果信号HS_R和用于触发回滚恢复操作的中断请求信号RB_IR1;若两个信号CPU0_MWR、CPU1_MWR同时有效,则将握手结果信号HS_R置为有效,认为握手成功;

同步控制器包含有计数器1,在握手操作开始时,中断控制器复位并启动计数器1,对握手过程中程序的运行周期进行计数,称为计数1,用于检测同步控制器是否发生了握手超时,当计数1达到设定的Ttimeout后,将计数器1的满标志信号FULL_1置为有效,该信号用于指示是否发生了握手;Ttimeout可以根据容错系统的故障特性设置;

如果在FULL_1信号有效时,CPU0_MWR和CPU1_MWR信号不同时有效,则认为同步操作超时,将同步控制器的握手结果信号HS_R置为无效,并产生用于触发回滚恢复操作的中断请求信号RB_IR0;

信号比对器接受来自同步控制器的握手结果信号HS_R以及来自两个CPU的输出总线信号,输出匹配结果信号MATCH_R,若握手结果信号HS_R为有效状态,则对两组总线信号进行位级比对、一致性检查,若完全匹配,则将匹配结果信号MATCH_R置为有效,否则将匹配结果信号MATCH_R置为无效;

中断控制器接受来自同步控制器的握手结果信号HS_R、来自信号比对器的匹配结果信号MATCH_R、分别来自两个处理器CPU0和CPU1的针对检查点操作请求作出的中断确认信号CP_IR_A0、CP_IR_A1、分别来自两个处理器CPU0和CPU1的针对回滚恢复操作请求作出的中断确认信号RB_IR_A0和RB_IR_A1;

中断控制器含有计数器0;

所述处理器CPU0和CPU1进入正常执行任务的状态后,中断控制器复位并启动计数器0,对程序的运行周期进行计数,该计数被称为计数0,计数0达到设定的Tc后,将计数器0的满标志信号FULL_0置为有效,该信号用于指示是否达到了检查点的设置间隔;Tc将由动态检查点模块确定;

当HS_R、FULL_0、MATCH_R信号同时有效,中断控制器将触发检查点操作的中断请求信号CP_IR置为有效,向两个处理器CPU0和CPU1发出检查点操作请求;

若HS_R、FULL_0信号有效而MATCH_R信号无效,则认为发生了软错误,将用于触发回滚恢复操作的中断请求信号RB_IR1置为有效,向两个CPU发出回滚恢复操作请求;在CPU0和CPU1对CP_IR的中断确认信号CP_IR_A0和CP_IR_A1同时有效时,中断控制器复位、禁用计数器0;

触发检查点操作的中断请求信号CP_IR有效时,若CPU向中断控制器发出的相应中断确认信号有效,则CPU将执行检查点操作相关的中断服务程序,该中断服务程序负责设置检查点;RB_IR0或RB_IR1信号有效时,若CPU向中断控制器发出的相应中断确认信号有效,则CPU将执行回滚恢复操作相关的中断服务程序。

3.根据权利要求2所述的系统,其特征在于,所述存储器中设置有安全存储器,并将安全存储器分为N个存储区间、共能存储N个检查点,建立在各个存储区间上的检查点分别记为:C0、C1、C2、C3…CN-1,为每个检查点设置状态位valid,以指示该检查点的建立是否完成、所记录的数据是否完整可用,并记录每个检查点设置的时间信息,设置回滚计数IRC,用于记录连续执行回滚恢复操作的次数,其中,i表示检查点的编号,0≤i≤N-1,对应地,Ci表示编号为i的检查点,Ivmin表示其valid位为1的最早的检查点的编号,Ivmax表示其valid位为1的最晚的检查点的编号,Ic表示即将重新建立检查点的存储区间的编号;

所述双模lockstep处理器执行下述步骤:

步骤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。

4.根据权利要求3所述的系统,其特征在于,步骤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的最低位SEIHT.FLAG.LSB,将该FLAG位对应的XLen位的时间戳TIMESTAMP赋值为t0;

若Δt

执行步骤八;

步骤八:对软错误发生间隔进行预测,首先判断本次预测是否是第一次进行预测,结果为否,执行步骤九;结果为是,执行步骤十;

步骤九:根据SEIHT.FLAG.LSB和两位饱和计数器的状态转换图对上一次预测所用的模式历史表PHT项进行更新,执行步骤十;

步骤十:以k位SEIHT.FLAG的值作为索引,查询具有2k个表项的PHT,执行步骤十一;

步骤十一:根据步骤九查询到的两位饱和计数器的值预测软错误的发生间隔,如果计数器的值为“00”或“01”,预测下一个软错误间隔是“短间隔”,将检查点的设置间隔Tc赋值为较短间隔Ts;

如果计数器的值为“10”或“11”,预测下一个软错误间隔是“长间隔”,将检查点的设置间隔Tc赋值为较长间隔Tl,自适应动态检查点算法结束。

5.根据权利要求4所述的系统,其特征在于,若最开始的回滚恢复使用的是Ci检查点,且在此故障恢复过程中又一次发生了故障,则使用Ci-1检查点执行第二次回滚恢复,在第二次回滚恢复中若再一次发生故障,则使用Ci-2检查点执行第三次回滚恢复,2≤i≤N-1。

6.根据权利要求5所述的系统,其特征在于,较短间隔 其中C表示建立检查

点的时间开销,ρ表示从系统启动到最近一次发生软错误期间的软错误发生率,其中,Tstart代表的是系统中第一次发生软错误的时刻;较长间隔Tl=2Ts。

7.根据权利要求6所述的系统,其特征在于,所述软错误间隔历史表SEIHT具有k项,每一项都由两部分组成:1位的软错误间隔标志以及与之对应的XLen位时间戳,软错误间隔标志用于指示软错误间隔是否大于阈值T,软错误标志SEIHT.FLAG为k位的移位寄存器,其中SEIHT.FLAG用于表示k项中所有1位软错误间隔标志FLAG的集合,时间戳表示的是对应于软错误间隔标志的、最近的一次软错误发生的时刻,XLen是处理器记录运行周期的计时器的宽度。

8.根据权利要求7所述的系统,其特征在于,所述模式历史表PHT为SEIHT.FLAG所有的k模式创建了一个两位饱和计数器,所述SEIHT.FLAG共有2种模式,用“00”表示“强短间隔”、“01”表示“弱短间隔”、“10”表示“弱长间隔”、“11”表示“强长间隔”。

9.根据权利要求8所述的系统其特征在于,所述软错误间隔标志用于指示软错误间隔是否大于阈值T,包括:如果大于等于,将SEIHT.FLAG左移一位,同时将1写入SEIHT.FLAG.LSB,表示此间隔为“长间隔”;

如果小于,将SEIHT.FLAG左移一位,同时将0写入SEIHT.FLAG.LSB,表示此间隔为“短间隔”。

10.根据权利要求9所述的系统,其特征在于,如果SEIHT.FLAG的最低位为1,则存在两种情况:如果当前状态不为“11”,则饱和计数器的状态向“10”、“11”的方向转换;如果当前状态是“11”,则状态不变。