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

xiaoxiao2021-3-1  209

一种非相似双余度四机自监控容错控制方法
【技术领域】
[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个判断结果,则各处理器对接收到的判断结果进行表决; 如果各处理器在设定的时间内 未收到判断结果,则一直等待,系统安全输出。
[0031] 有益效果:
[0032] (1)四个处理器系统之间采用同步串行通道进行连接,能够在各处理器间建立快 速信息传输通道,用以传送状态请求及需要表决的信息;采用处理器状态同步的方式确保 各处理器系统在各表决点能步调一致发出启动信号,达到任务级同步运行;根据同步和表 决结果,识别是否存在故障处理器,确定哪个处理器是当班机;在发生故障的情况下,管理 系统降级,隔离故障处理器系统,并在降级模式下继续工作。
[0033] (2)提高故障处理器定位准确度:在四机模式、三机模式下,均可准确定位故障处 理器,为后续系统资源调度、降级管理、故障隔离等提供了技术基础。
[0034] (3)提高系统资源利用率:由于提高了故障处理器定位精度,可以获知通道中哪 个处理器处于完好状态并再加以利用,避免了现有技术通道整体切换造成的资源浪费。 [0035] (4)消除系统单点故障隐患:通过四机间的信息交互及在每个处理器内实现表决 机制,确定系统正确输出结果,完成故障处理器定位,当班处理器确定,并由当班处理器完 成输出控制等,避免了现有技术对外部独立仲裁单元的需求,消除了系统单点故障隐患,提 高了系统可靠性。
[0036] (5)提升系统容错能力:本发明使系统的容错能力从一次故障工作,二次故障安全 提升到二次故障工作,三次故障安全。
【附图说明】
[0037] 图1为现有的非相似双余度四机架构示意图。
[0038] 图2为本发明的非相似双余度四机自监控架构示意图。
[0039] 图3为本发明控制方法下非相似双余度四机的工作模式状态转移示意图。
[0040] 图4为当班机与一个处理器系统的信息交互通路故障,仍保持四机模式。其中,(a) 四机模式下,处理器A当班;(b)A收不到B信息;(c)B收不到A信息;(d)A、B收不到对方信息。
[0041] 图5为当班处理器故障,四机模式降为三机模式。其中,(a)处理器A发出错误数据; (b)处理器A无数据发出;(c)与两个处理器系统信息交互通路故障。
[0042]图6为当班机几种线路故障,保持三机模式。其中,(a)C收不到B信息;(b)B收不到C 信息;(c)B、C收不到对方信息;(d)B收不到D信息,C收不到B信息,D收不到C信息;(e)B、C收 不到对方信息,同时B收不到D信息。
[0043]图7为当班机故障,三机模式降级为双机模式。(a)处理器B发出错误数据;(b)处 理器B无数据发出。
【具体实施方式】
[0044]下面结合附图并举实施例,对本发明进行详细描述。
[0045]本发明提供了一种非相似双余度四机自监控容错控制方法,四个处理器同时执行 相同的任务,各处理器系统之间采用CCDL进行两两之间的信息交互,各处理器系统依据其 收到的其他处理器发送的任务运算结果和自己完成的任务运算结果,进行对比,确定最终 的运算结果,并按照预先设置的处理器优先级顺序,判断当前任务的当班机,由当班机输出 该任务的最终运算结果,当班机输出的最终运算结果即为非相似双余度四机系统的该任务 最终运算结果,如图2所示。
[0046] 将四个处理器分别编号为A、B、C、D,任意时刻,仅有一个处理器作为当班机,即作 为主控处理器,预设的当选当班机的处理器的优先级顺序由高至低依次为A>B>C>D,即处理 器A优先级最高,处理器D优先级最低。四个处理器系统之间采用同步串行通道进行连接,每 个处理器都设有三个信息发送通路,用于向其它三个处理器发送信息,以及三个信息接收 通路,用于接收其它三个处理器的信息。每个通路有两条信号线,一条为时钟线,一条数据 线,时钟信号与数据信号均由发送方负责驱动。
[0047]将整个任务周期按功能需求划分成若干个子任务周期,四个处理器同时执行相同 的子任务,每个处理器都可通过同步串行通道与其它处理器进行信息交互,获取另外三个 处理器的运行状态和运算结果,同时将自己的运行状态和运算结果发送给另外三个处理 器。由于各处理器之间的处理速度不同,导致相同子任务的完成时间不同,因此,将每个子 任务分配固定的完成时间片,在每个子任务的起始处设置任务开始同步点。其中,子任务的 完成时间片长度一般可以设置为运算速度最慢的处理器完成该子任务所需时间的预估值 和一段冗余时间之和。设置任务开始同步点时,4个处理器通过发送、接收同步请求,实现子 任务的同步执行。
[0048]各处理器同时从任务开始同步点开始执行相同的子任务,完成子任务后,将自己 的运行状态和运算结果发送给另外三个处理器,等待并接收其他处理器发来的运行状态和 运算结果,当该子任务的完成时间片结束后,各处理器将自己的运算结果和收到的运算结 果进行少数服从多数的判决,形成一致的最终运算结果,并判断与最终运算结果不一致的 处理器为故障机,判断当前优先级最高的非故障机为当班机,并将故障机和当班机判断结 果发送至其他处理器;各处理器接收其他处理发送的判断结果,对所有判断结果进行少数 服从多数的判决,形成一致的最终的当班机和故障机判断结果。最终判断为故障机的处理 器不参与之后的子任务运算结果的对比。最终判断为当班机的处理器输出最终运算结果。 当各处理器认定的当班机均不一致时,系统输出预设的安全信号。
[0049] 由于处理器不管运算速度快慢,均需要等待子任务的完成时间片结束后才进行当 班机和故障机的判定,因此,可以选择处理速度最慢的处理器为优先级最高,处理速度最快 的处理器为优先级最低,从而可以让处理速度快的处理器在完成当前子任务的运算后,去 做其他的运算,提高系统的资源利用率。
[0050] 下面以处理器A为例寿命具体的工作流程,处理器B、处理器C和处理器D做同样操 作:
[0051 ] (1)第i个子任务的起始处,处理器A通过CCDL向其它三个处理器发出同步请求 Req-a-Ι,等待其它三个处理器的同步请求;转步骤(2);
[0052] (2)分四种情况:
[0053] (2.1)收到其它三个处理器的同步请求后,处理器A产生自己的子任务启动信号, 并根据自身时钟执行任务;转步骤(3);
[0054] (2.2)只收到两个处理器的响应,则继续等待另一处理器,同时启动超时计数器, 如规定的超时时间内未接收该处理器响应,则设置该处理器故障标志Fault-a-x,处理器A 产生自己的子任务启动信号,并根据自身时钟执行任务;转步骤(3);
[0055] (2.3)只收到一个处理器的响应,则继续等待另两个处理器,同时启动超时计数 器,如果在规定的超时时间内收到两个处理器响应,则处理器A产生自己的子任务启动信 号,并根据自身时钟执行任务,转步骤(3);如果在规定的超时时间内只收到一个处理器响 应,则设置未响应的处理器故障标志Fault-a-x,处理器A产生自己的子任务启动信号,并根 据自身时钟执行任务,转步骤(3);如在规定的超时时间内未接收到任何响应,则处理器A- 直等待,处理器A无法进行下面的步骤,在之后的表决点处会被其它处理器识别并标识为故 障;
[0056] (2.4)无其它处理器响应到达,则处理器A-直等待;处理器A无法进行下面的步 骤,在之后的表决点处会被其它处理器识别并标识为故障;
[0057] (3)处理器A完成子任务后,通过CCDL将运算结果Result-a及握手请求信号Req-a- 2发送给其它三个处理器,等待其它处理器的运算结果及握手请求信号;转步骤(4);
[0058] (4)分四种情况:
[0059] (4.1)在收到其它三个处理器的运算结果及握手请求信号后,处理器A对接收到的 所有输出结果进行少数服从多数的表决,形成一致的、正确的输出结果Result;转步骤(5); [0060] (4.2)只收到两个处理器的运算结果及握手请求信号,则继续等待另一处理器,同 时启动超时计数器,如规定的超时时间内未接收该处理器响应,则设置该处理器故障 Fault-a-x,并用无效数据代替其运算结果,处理器A对接收到的所有运算结果进行少数服 从多数的表决,形成 一致的、正确的输出结果Result;转步骤(5);
[0061] (4.3)只收到一个处理器的运算结果及握手请求信号,则继续等待另两个处理器, 同时启动超时计数器,如果在规定的超时时间内收到两个处理器响应,则处理器A对接收到 的所有输出结果进行少数服从多数的表决,形成一致的、正确的输出结果Result;转步骤 (5);如果在规定的超时时间内只收到1个处理器响应,则设置未响应处理器故障Fault-a-X,并用无效数据代替其运算结果,处理器A对接收到的所有运算结果进行少数服从多数的 表决,形成一致的、正确的输出结果Result;转步骤(5);如规定的超时时间内未接收到任何 响应,则处理器A-直等待,处理器A无法进行下面的步骤,在之后的表决点处会被其它处理 器识别并标识为故障;
[0062] (4.4)无其它处理器输出到达,则处理器A-直等待;处理器A无法进行下面的步 骤,在之后的表决点处会被其它处理器识别并标识为故障;
[0063] (5)处理器A判断与最终的运算结果不一致的处理器为故障机,并判断当前优先级 最高的非故障的处理器为当班机,并将它判断结果发送给其它三个处理器,等待其它三个 处理器的判断结果;转步骤(6);
[0064] (6)分四种情况:
[0065] (6.1)接收到其它三个处理器的判断结果后,对所有处理器的判断结果进行少数 服从多数的表决,形成一致的当班处理器Duty和故障处理器Fault结果;转步骤(7);
[0066] (6.2)只收到两个处理器的判断,则继续等待另一处理器,同时启动超时计数器, 如规定的超时时间内未接收该处理器响应,则设置该处理器故障Fault-a-x,并用无效数据 代替其判断结果,处理器A对接收到的所有判断结果进行少数服从多数的表决,形成一致的 当班处理器Duty和故障处理器Fault结果;转步骤(7);
[0067] (6.3)只收到一个处理器的判断,则继续等待另两个处理器,同时启动超时计数 器,如在规定的超时时间内收到两个处理器响应,则处理器A对所有判断结果进行少数服从 多数的表决,形成一致的当班处理器Duty和故障处理器Fault结果,转步骤(7);如在规定的 超时时间内收到1个处理器响应,则设置未响应的处理器故障Fault-a-x,并用无效数据代 替其判断结果,处理器A对接收到的所有判断结果进行少数服从多数的表决,形成一致的当 班处理器Duty和故障处理器Fault结果,转步骤(7);如规定的超时时间内未接收到任何响 应,则处理器A-直等待,处理器A无法进行下面的步骤,在之后的表决点处会被其它处理器 识别并标识为故障;
[0068] (6.4)无其它处理器输出到达,则处理器A-直等待;处理器A无法进行下面的步 骤,在之后的表决点处会被其它处理器识别并标识为故障;
[0069] (7)当班处理器Duty输出结果Result,转下一子任务i+1。
[0070]在本发明控制过程中,考虑到故障机的出现,非相似双余度四机存在4种工作模 式,以数字表示四个处理器状态:(正常机数量:某类型故障机数量)。当四个处理器均正常 时,用(4:0)表示;当出现一次故障时,用(3:1)表示;当再次出现一次故障时,可能会出现两 种情况:一是本次故障处理器与上次故障处理器故障相同,或者输出错误相同,以(2:2)表 示;另一种则是本次故障处理器与上次故障处理器故障不一致,或输出错误不同,以(2:1: 1)表示。系统工作模式状态转移图如图3所示。
[0071] (1)四机模式
[0072]正常情况下系统为四机模式,即四个处理器均处于正常工作状态。处理器A为当班 机,负责实施对内控制和对外输出。
[0073] (2)三机模式
[0074]当确认某个处理器发生故障后,系统降级为三机模式。如为处理器A故障,则另三 个处理器根据预设的优先顺序选择处理器B当班;如为其它处理器故障,则处理器A继续当 班。系统继续正常工作。
[0075] (3)双机模式
[0076]三机模式下,当确认某个处理器出现故障后,系统降级为双机模式。如三机模式下 处理器A当班且故障,则另两个处理器根据优先顺序选择当班处理器;如处理器A当班且不 是故障机,则处理器A继续当班。系统继续正常工作。
[0077] (4)安全导向
[0078]双机模式下,当两处理器任意一方认为对方故障时,系统无足够信息判断谁对谁 错,都将导向预先设计的安全输出模式。
[0079]四个处理器均处于正常状态。按照优先级顺序,此时的当班处理器为处理器A,如 图4(a)所示。
[0080] (1)四机模式下,发生第一次故障。
[0081] 在图4(b)情况下,当处理器A认为B故障(ABCD ),并在工作流程步骤(5)与处理 器C(AB⑶)和D(AB⑶)核对这个判断,根据表决结果,A同意"处理器B正常"的结论。
[0082] 在图4(c)情况下,处理器B认为A故障( SBCD) ,且根据优先顺序,B认为自己应该 当班;在步骤(5),处理器B与C(AB⑶)和D(AB⑶)核对这个判断;根据表决结果,B同意"处理 器A正常"、"当班机为处理器A"的结论。
[0083] 在图4(d)情况下,处理器Α( )和B( SBCD )均认为对方错,同时A认为自己 当班,B也认为自己该当班;在步骤(5),A、B分别去与C(ABCD)和D (ABCD)核对各自判断;根据 表决结果,A和B都同意"处理器A正常"、"处理器B正常"和"当班机为处理器A"的结论。
[0084]处理器故障时可能处于两种情况,一是处理器发送错误数据,如图5(a);另一个 是处理器无法发送数据,如图5 (b)。
[0085] 图5(a)、(b),当处理器B、C、D都各自认为A故障( ABCD),在步骤(5)核对后,处理 器B、C、D都认可"处理器A故障",B、C、D都发出处理器A输出禁止信号,将处理器A与系统隔 离;同时根据优先级顺序,B当班行使控制权。此时系统降为三机模式。
[0086] 当线路发生如图5(c)所示故障时,处理器A认为D故障(ABCD),在与B( ABCD) 和C(ABCD)交换意见后,一致同意"处理器D正常";与此同时,处理器B( ABCD)和D (SBCD)都认为A故障,在B、C、D交换意见后,一致认为"处理器A故障",B、C、D都发出处理 器A输出禁止信号,将处理器A与系统隔离;同时根据优先级顺序,处理器B当班行使控制权。 此时系统降级为三机模式。
[0087] (2)三机模式下,发生第二次故障
[0088]三机模式下处理器A已被隔离,不再予以考虑。
[0089]当发生如图6(a)所示故障时,处理器B认为(BC'D),而处理器C和D都认为(B⑶), 意见交换的结果是(BCD),保持不变。
[0090] 当发生如图6(b)所示故障时,处理器C认为(6CD ),而处理器B和D都认为(B⑶), 意见交换结果是(BCD),保持不变。
[0091] 图6(c)中,处理器B认为(B03),处理器C认为(§CD),D认为(B⑶),处理器B和C 分别去与D核对,处理器B和D对处理器C故障这一点达不成一致,不做改变;处理器C和D对处 理器B故障这一点也达不成一致,不做改变;但此时,处理器B和D都认为B当班,C认为C应该 当班,表决结果仍是B当班。系统仍保持三机模式。
[0092] 图6(d)中,当处理器B认为( B〇D ),处理器C认为(BCS),处理器D认为(?? ), 处理器B与C 一致认为B正常,但对C故障和D故障各执己见,不能达成一致,保持不变;但此 时,处理器B和C都认为B当班,D认为C应该当班,表决结果仍是B当班。最终,系统仍保持三机 模式。
[0093]图6(e)中,当处理器B因收不到处理器C和D的数据,设置特定数据和错误标记后 (C、D设置不一样),无法再进行三取二表决,这种情况下处理器B认为(BCD ),当班机为处 理器B;处理器C认为(SCD ),处理器D认为(B⑶);比对后,处理器C认力(0CD ),当班机应 该为 C;处理器D与B和C比对后,认为(B⑶),当班机应该为处理器B,最终系统仍保持三机模 式,处理器B继续当班。
[0094]当处理器发生图7(a)、(b)所示的两种故障情况时,另两个处理器C和D都各自认为 处理器B故障,在经过相互间核对后,处理器C、D都同意"处理器B故障",此时处理器C、D都发 出处理器B输出禁止信号,将处理器B从系统中隔离;同时根据优先级顺序,处理器C当班行 使控制权。此时系统降级为双机模式。
[0095] (3)双机模式下,发生第三次故障
[0096] 进入双机模式后,如处理器B和D在信息核对过程中出现一次不一致情况,系统都 将输出预设的安全信号,进入安全导向模式。
[0097] 通过本发明的实施,非相似双余度四机系统可以做到二次故障工作,三次故障安 全。
[0098] 本发明通过扩大处理器系统间信息交互范围,增加故障定位判据,将双机比较改 进为在每个处理器系统中采取表决机制实现处理器系统间自我监控,并按预设优先级确定 当班机,免除对公共资源的需求,达到提高系统资源利用率,消除系统单点隐患,提升系统 容错能力的目的。
[0099] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
【主权项】
1. 一种非相似双余度四机自监控容错控制方法,其特征在于,包括如下步骤: 步骤1,构建包括4个处理器的控制系统: 所述4个处理器之间采用同步串行通道进行连接,进行两两之间的信息交互,四个处理 器同时处理相同的子任务,预设各处理器的优先级顺序;各子任务周期内仅有一个处理器 为当班机,由当班机输出最终的子任务运算结果,其中,默认优先级别高的非故障处理器为 当前子任务周期内的当班机; 步骤2,在子任务起始处,各处理器向其他处理器发送同步请求,并接收其他处理器发 送的同步请求;各处理器根据当前的控制系统工作模式以及接收到的同步请求数量,标识 故障机,产生自己的子任务启动信号,并根据自身时钟执行子任务; 步骤3,各处理器完成子任务后,通过同步串行通道将运算结果及握手请求发送给其它 处理器,并接收其它处理器的运算结果及握手请求;各处理器根据当前的控制系统工作模 式以及接收到的握手请求数量,标识故障机,并用无效数据代替故障机的运算结果;各处理 器对接收到的所有运算结果进行少数服从多数的表决,形成一致的最终运算结果,并判断 与最终运算结果不一致的处理器为故障机,判断当前优先级最高的非故障的处理器为当班 机;各处理器将其对故障机和当班机的判断结果发送给其它三个处理器,等待其它处理器 的判断结果; 步骤4,各处理器在接收到其他处理器发送的故障机和当班机的判断结果后,根据当前 的控制系统工作模式以及接收到的判断结果数量,对接收到的所有判断结果进行少数服从 多数的表决,形成一致的最终当班机和故障机判断结果; 步骤5,由步骤4最终确定的当班机输出步骤3确定的最终运算结果,该最终运算结果即 为非相似双余度四机对该子任务的运算结果;转入下一个子任务,返回步骤2,直至所有子 任务执行完毕或控制系统安全输出。2. 如权利要求1所述的非相似双余度四机自监控容错控制方法,其特征在于,所述步骤 1中,各处理器的优先级顺序按各处理器的处理速度快慢排序,处理速度最慢的处理器优先 级最高,处理速度最快的处理器优先级最低。3. 如权利要求1所述的非相似双余度四机自监控容错控制方法,其特征在于,所述步骤 2中,当4个处理器均未发生故障,即当前工作模式为四机模式时,如果各处理器在设定的时 间内接收到2个或2个以上的同步请求,则各处理器标识同步请求未送达的处理器为故障 机,各自产生自己的子任务启动信号,并根据自身时钟执行子任务;如果某处理器在设定的 时间内未收到2个或2个以上的同步请求,则该处理器不执行子任务,其他处理器在之后的 步骤中将该处理器标识为故障机; 当3个处理器未发生故障、1个处理器发生故障,即当前工作模式为三机模式时,如果各 处理器在设定的时间内接收到1个或1个以上的同步请求,贝各处理器标识同步请求未送达 的处理器为故障机,各自产生自己的子任务启动信号,并根据自身时钟执行子任务;如果某 各处理器在设定的时间内未收到1个或1个以上的同步请求,则该处理器不执行子任务,其 他处理器在之后的步骤中将该处理器标识为故障机; 当2个处理器未发生故障、2个处理器发生故障,即当前工作模式为双机模式时,如果各 处理器在设定的时间内接收到1个同步请求,则各处理器各自产生自己的子任务启动信号, 并根据自身时钟执行子任务;如果各处理器在设定的时间内未收到同步请求,则该处理器 不执行子任务,系统安全输出。4. 如权利要求1所述的非相似双余度四机自监控容错控制方法,其特征在于,所述步骤 3中,当4个处理器均未发生故障,即当前工作模式为四机模式时,如果各处理器在设定的时 间内接收到2个或2个以上的握手请求,则各处理器标识握手请求未送达的处理器为故障 机,并用无效数据代替其运算结果;如果某处理器在设定的时间内未收到2个或2个以上的 握手请求,则该处理器一直等待,其他处理器在之后的步骤中将该处理器标识为故障机; 当3个处理器未发生故障、1个处理器发生故障,即当前工作模式为三机模式时,如果各 处理器在设定的时间内接收到1个或1个以上的握手请求,则各处理器标识握手请求未送达 的处理器为故障机,并用无效数据代替其运算结果;如果某处理器在设定的时间内未收到1 个或1个以上的握手请求,则该处理器一直等待,其他处理器在之后的步骤中将该处理器标 识为故障机; 当2个处理器未发生故障、2个处理器发生故障,即当前工作模式为双机模式,如果各处 理器在设定的时间内接收到1个握手请求,则各处理器对接收到的所有运算结果进行表决; 如果各处理器在设定的时间内未收到握手请求,则该处理器一直等待,系统安全输出。5. 如权利要求1所述的非相似双余度四机自监控容错控制方法,其特征在于,所述步骤 4中,当4个处理器均未发生故障,即当前工作模式为四机模式时,如果各处理器在设定的时 间内接收到2个或2个以上的判断结果,则各处理器标识判断结果未送达的处理器为故障 机,并用无效数据代替其判断结果;如果某处理器在设定的时间内未收到2个或2个以上的 判断结果,则该处理器一直等待,其他处理器在之后的步骤中将该处理器标识为故障机; 当3个处理器未发生故障、1个处理器发生故障,即当前工作模式为三机模式时,如果各 处理器在设定的时间内接收到1个或1个以上的判断结果,则各处理器标识判断结果未送达 的处理器为故障机并用无效数据代替其判断结果;如果某处理器在设定的时间内未收到1 个或1个以上的判断结果,则该处理器一直等待,其他处理器在之后的步骤中将该处理器标 识为故障机; 当2个处理器未发生故障、2个处理器发生故障,即当前工作模式为双机模式,如果各处 理器在设定的时间内接收到1个判断结果,则各处理器对接收到的判断结果进行表决;如果 各处理器在设定的时间内未收到判断结果,则一直等待,系统安全输出。
【专利摘要】本发明公开了一种非相似双余度四机自监控容错控制方法。使用本发明能够充分利用系统资源,准确定位故障处理器,避免仲裁单元故障导致的单点故障,并能实现二次故障工作,三次故障安全,提高系统的可靠性及使用寿命。本发明将四个处理器系统之间采用同步串行通道进行连接,能够在各处理器间建立快速信息传输通道,用以传送状态请求及需要表决的信息;采用处理器状态同步的方式确保各处理器系统在各表决点能步调一致发出启动信号,达到任务级同步运行;根据同步和表决结果,识别是否存在故障处理器,确定哪个处理器是当班机;在发生故障的情况下,管理系统降级,隔离故障处理器系统,并在降级模式下继续工作。
【IPC分类】G06F11/16, G06F15/17
【公开号】CN105487945
【申请号】CN201510816755
【发明人】李 杰, 牟文秀, 邱庆林, 乔军卿, 曹振兴
【申请人】中国航天科技集团公司第五研究院第五一三研究所
【公开日】2016年4月13日
【申请日】2016年2月19日

最新回复(0)