一种非相似双余度四机自监控容错控制方法

文档序号:9727222阅读:435来源:国知局
一种非相似双余度四机自监控容错控制方法
【技术领域】
[0001] 本发明涉及嵌入式计算机技术领域,具体涉及一种非相似双余度四机自监控容错 控制方法。
【背景技术】
[0002] 非相似双余度四机通常由两个完全相同的通道构成,其中一个作为主通道,一个 作为备通道;每个通道各采用两个处理器,这两个处理器类型互不相同,其中一个作为主控 处理器负责输出最终运算结果,另一个作为监控处理器仅起到监测作用;系统中具有一个 独立的输出比较和通道切换控制的仲裁单元,如图1所示。
[0003] 四个处理器同时执行相同的任务。同一个通道内,主控处理器与监控处理器通过 双端口RAM或交叉数据链(Cross Channel Date Link,以下简称(XDL)进行数据交换。当主 通道的监控处理器发现其运算结果与主控处理器运算结果不一致时,将监测结果送至仲裁 单元;但因判据不足,仲裁单元无法判定是主控处理器故障还是监控处理器故障,但一般认 定是主通道发生故障,于是仲裁单元将系统切换到备通道继续工作。如果在后续工作过程 中,备通道也出现监控处理器与主控处理器运算结果不一致情况时,系统已无冗余通道可 供切换,为不使故障扩散,系统只能输出预设的安全信号。
[0004] 现有的非相似双余度四机的控制方式存在如下缺陷:
[0005] (1)故障定位相对粗略
[0006] 同一通道中对双机运算结果进行比较,只能判断出结果相同还是不同,不能判断 出哪个结果是对的,哪个结果是错的,也就无法定位故障处理器系统。
[0007] (2)资源利用率不高
[0008] 当主通道故障,系统整体切换到备通道后,原通道中可能存在的状态完好的处理 器及其它电路不能再为系统所利用。
[0009] (3)容错能力不够高
[0010] 主通道发生一次故障系统可切换到备通道;备通道再次发生故障系统必须安全输 出。系统只能做到一次故障工作,二次故障安全。
[0011] (4)存在单点故障隐患
[0012] 仲裁单元是公共资源,若仲裁单元发生故障,将导致整个系统容错机制的崩溃。

【发明内容】

[0013] 有鉴于此,本发明提供了一种非相似双余度四机自监控容错控制方法,能够充分 利用系统资源,准确定位故障处理器,避免仲裁单元故障导致的单点故障,并能实现二次故 障工作,三次故障安全,提高系统的可靠性及使用寿命。
[0014] 本发明的非相似双余度四机自监控容错控制方法,包括如下步骤:
[0015] 步骤1,构建包括4个处理器的控制系统:
[0016] 所述4个处理器之间采用同步串行通道进行连接,进行两两之间的信息交互,四个 处理器同时处理相同的子任务,预设各处理器的优先级顺序;各子任务周期内仅有一个处 理器为当班机,由当班机输出最终的子任务运算结果,其中,默认优先级别高的非故障处理 器为当前子任务周期内的当班机;
[0017]步骤2,在子任务起始处,各处理器向其他处理器发送同步请求,并接收其他处理 器发送的同步请求;各处理器根据当前的控制系统工作模式以及接收到的同步请求数量, 标识故障机,产生自己的子任务启动信号,并根据自身时钟执行子任务;
[0018] 步骤3,各处理器完成子任务后,通过同步串行通道将运算结果及握手请求发送给 其它处理器,并接收其它处理器的运算结果及握手请求;各处理器根据当前的控制系统工 作模式以及接收到的握手请求数量,标识故障机,并用无效数据代替故障机的运算结果;各 处理器对接收到的所有运算结果进行少数服从多数的表决,形成一致的最终运算结果,并 判断与最终运算结果不一致的处理器为故障机,判断当前优先级最高的非故障的处理器为 当班机;各处理器将其对故障机和当班机的判断结果发送给其它三个处理器,等待其它处 理器的判断结果;
[0019] 步骤4,各处理器在接收到其他处理器发送的故障机和当班机的判断结果后,根据 当前的控制系统工作模式以及接收到的判断结果数量,对接收到的所有判断结果进行少数 服从多数的表决,形成一致的最终当班机和故障机判断结果;
[0020] 步骤5,由步骤4最终确定的当班机输出步骤3确定的最终运算结果,该最终运算结 果即为非相似双余度四机对该子任务的运算结果;转入下一个子任务,返回步骤2,直至所 有子任务执行完毕或控制系统安全输出。
[0021] 进一步地,所述步骤1中,各处理器的优先级顺序按各处理器的处理速度快慢排 序,处理速度最慢的处理器优先级最高,处理速度最快的处理器优先级最低。
[0022] 进一步地,所述步骤2中,当4个处理器均未发生故障,即当前工作模式为四机模式 时,如果各处理器在设定的时间内接收到2个或2个以上的同步请求,则各处理器标识同步 请求未送达的处理器为故障机,各自产生自己的子任务启动信号,并根据自身时钟执行子 任务;如果某处理器在设定的时间内未收到2个或2个以上的同步请求,则该处理器不执行 子任务,其他处理器在之后的步骤中将该处理器标识为故障机;
[0023]当3个处理器未发生故障、1个处理器发生故障,即当前工作模式为三机模式时,如 果各处理器在设定的时间内接收到1个或1个以上的同步请求,则各处理器标识同步请求未 送达的处理器为故障机,各自产生自己的子任务启动信号,并根据自身时钟执行子任务;如 果某各处理器在设定的时间内未收到1个或1个以上的同步请求,则该处理器不执行子任 务,其他处理器在之后的步骤中将该处理器标识为故障机;
[0024] 当2个处理器未发生故障、2个处理器发生故障,即当前工作模式为双机模式时,如 果各处理器在设定的时间内接收到1个同步请求,则各处理器各自产生自己的子任务启动 信号,并根据自身时钟执行子任务;如果各处理器在设定的时间内未收到同步请求,则该处 理器不执行子任务,系统安全输出。
[0025] 进一步地,所述步骤3中,当4个处理器均未发生故障,即当前工作模式为四机模式 时,如果各处理器在设定的时间内接收到2个或2个以上的握手请求,则各处理器标识握手 请求未送达的处理器为故障机,并用无效数据代替其运算结果;如果某处理器在设定的时 间内未收到2个或2个以上的握手请求,则该处理器一直等待,其他处理器在之后的步骤中 将该处理器标识为故障机;
[0026] 当3个处理器未发生故障、1个处理器发生故障,即当前工作模式为三机模式时,如 果各处理器在设定的时间内接收到1个或1个以上的握手请求,则各处理器标识握手请求未 送达的处理器为故障机,并用无效数据代替其运算结果;如果某处理器在设定的时间内未 收到1个或1个以上的握手请求,则该处理器一直等待,其他处理器在之后的步骤中将该处 理器标识为故障机;
[0027] 当2个处理器未发生故障、2个处理器发生故障,即当前工作模式为双机模式,如果 各处理器在设定的时间内接收到1个握手请求,则各处理器对接收到的所有运算结果进行 表决;如果各处理器在设定的时间内未收到握手请求,则该处理器一直等待,系统安全输 出。
[0028] 进一步地,所述步骤4中,当4个处理器均未发生故障,即当前工作模式为四机模式 时,如果各处理器在设定的时间内接收到2个或2个以上的判断结果,则各处理器标识判断 结果未送达的处理器为故障机,并用无效数据代替其判断结果;如果某处理器在设定的时 间内未收到2个或2个以上的判断结果,则该处理器一直等待,其他处理器在之后的步骤中 将该处理器标识为故障机;
[0029]当3个处理器未发生故障、1个处理器发生故障,即当前工作模式为三机模式时,如 果各处理器在设定的时间内接收到1个或1个以上的判断结果,则各处理器标识判断结果未 送达的处理器为故障机并用无效数据代替其判断结果;如果某处理器在设定的时间内未收 到1个或1个以上的判断结果,则该处理器一直等待,其他处理器在之后的步骤中将该处理 器标识为故障机;
[0030] 当2个处理器未发生故障、2个处理器发生故障,即当前工作模式为双机模式,如果 各处理器在设定的时间内接收到1个判断结果,则各处理器对接收到的判断结果进行表决; 如果各处理器在设定的时间内
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1