一种基于两级松散同步的三模冗余系统及其实现方法转让专利

申请号 : CN201110321500.1

文献号 : CN102508745B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭碧洲蒋江付宇卓刘婷

申请人 : 上海交通大学

摘要 :

本发明提供一种基于两级松散同步的三模冗余系统及其实现方法,其中所述的方法包括以下步骤:步骤1、三个计算单元根据系统任务调度策略从存储器调度执行同一高可靠性任务;步骤2、某计算单元到达表决点后,给其他两个单元发送比较数据,同时等待接收其他两个单元发送的待比较数据;步骤3、三个计算单元调用比较程序进行数据比较,根据表决结果对各个计算单元设置故障评价;步骤4、系统故障处理模块接收各个模块的故障评价,得到各个计算单元的故障情况;步骤5、故障处理模块依据事先设定的故障处理原则对故障单元进行相应的故障处理。本发明在比较输出过程中引入了两级松散同步过程,进行了两次比较表决,使得系统相对传统的松散同步方式可靠性更高。

权利要求 :

1.一种基于两级松散同步的三模冗余实现方法,其特征在于,包括以下步骤:步骤1、三个计算单元根据系统任务调度策略从存储器调度执行同一高可靠性任务;

步骤2、某计算单元到达表决点后,给其他两个单元发送比较数据,同时等待接收其他两个单元发送的待比较数据;

步骤3、三个计算单元调用比较程序进行数据比较,根据表决结果对各个计算单元设置故障评价;

步骤4、系统故障处理模块接收各个模块的故障评价,得到各个计算单元的故障情况;

步骤5、故障处理模块依据事先设定的故障处理原则对故障单元进行相应的故障处理;

所述步骤5中对故障单元进行相应的故障处理包括:若某个计算单元被认定为故障单元,故障处理模块会关断其输出,结束本次处理;否则输出正确处理后的信息;

所述步骤5中的故障处理原则包括:对瞬时故障,暂时封锁其本次表决的输出结果;对永久故障,封锁其输出,直到该故障单元恢复正常并提出恢复请求为止。

2.根据权利要求1所述的基于两级松散同步的三模冗余实现方法,其特征在于,所述的步骤4是通过对三个计算单元的故障情况依据三选二原则进行比较,从而得到各个计算单元的故障情况。

3.根据权利要求1所述的基于两级松散同步的三模冗余实现方法,其特征在于,所述步骤2中的表决点设置方式可通过人为预先在程序当中设定;依据任务重要程度和系统的实时性要求,可设置不同的表决点频率。

4.根据权利要求1所述的基于两级松散同步的三模冗余实现方法,其特征在于,所述步骤5表决后系统选择输出还包括步骤:保存正确的计算单元的检查点信息到外部共享存储模块。

5.根据权利要求1所述的基于两级松散同步的三模冗余实现方法,其特征在于,还包括自检步骤:三个计算单元上电初始化,先完成三个独立模块中的系统硬件和软件自检,若计算单元自检成功,相互发送成功信号,同时接收其他两个单元的自检成功信号,根据信号对其他两个单元设置故障评价,如果某单元自检失败或者信号发送不成功,则其他两个单元对其设置故障评价为发生故障。

6.一种基于两级松散同步的三模冗余系统,包括三个计算单元,其特征在于,所述的计算单元分别均设有:调度执行模块、根据系统任务调度策略从存储器调度执行同一高可靠性任务;

第一级同步模块、用于某计算单元到达表决点后,给其他两个单元发送比较数据,同时等待接收其他两个单元发送的待比较数据,系统进行第一级同步;

数据比较模块、用于进行数据比较,根据表决结果对各个计算单元设置故障评价;

以及,还包括与三个计算单元分别联接的系统故障处理模块、用于等待接收各个模块的故障评价,得到各个计算单元的故障情况,依据事先设定的故障处理原则对故障单元进行相应的故障处理;

所述故障处理包括:若某个计算单元被认定为故障单元,故障处理模块会关断其输出,结束本次处理;否则输出正确处理后的信息;

所述故障处理原则包括:对瞬时故障,暂时封锁其本次表决的输出结果;对永久故障,封锁其输出,直到该故障单元恢复正常并提出恢复请求为止。

7.根据权利要求6所述的基于两级松散同步的三模冗余系统,其特征在于,所述的计算单元还包括存储器,用来保存计算单元工作过程中所要调用的程序数据。

8.根据权利要求7所述的基于两级松散同步的三模冗余系统,其特征在于,所述的计算单元还包括计时设备,用于判断任务执行是否超时。

说明书 :

一种基于两级松散同步的三模冗余系统及其实现方法

技术领域

[0001] 本发明涉及一种三模冗余系统及其实现方法,尤其涉及一种基于两级松散同步的三模冗余系统及其实现方法。

背景技术

[0002] 计算机系统的安全性和可靠性对整个系统的正常运行起着至关重要的作用。一些重要的行业领域,往往对计算机系统的可靠性有着极高的要求。如图1所示的是三模冗余系统的原理结构,M1、M2、M3中三个相同的模块,可以是三台相同的计算机,也可以是三个相同的部件,三个模块同时执行一样的操作,其输出送到表决器的输入端,然后把表决器的输出作为系统的输出,可见,三模冗余系统通过三选二表决,可以在系统出现单个错误的情况下仍然保障输出结果的正确性,很好的满足了系统高可靠性、安全性的要求,在高可靠性领域有着强烈的应用需求。
[0003] 同步技术是决定三模冗余系统能否成功实现的关键,同步性能的好坏直接关系到三模冗余系统的运行可靠性。现有的同步方法主要包括时钟级同步和任务级松散同步两种。基于时钟级的同步方式不仅对系统硬件提出了额外要求,实现起来难度比较大。特别是在当前系统处理器频率不断提高的情况下,利用时钟同步来开发三模冗余系统的难度也越来越大。基于任务级的松散同步,允许处理机的时钟间存在一定的异步度,根据具体的运行任务取定一个适合同步周期和失步阀值,各冗余模块共同并发完成同一任务,严格在同步周期内完成它们之间的容错表决等等的处理。松散同步是以松散的算法替代硬件时钟同频的实现方法,系统中各冗余模块都采用自已的时钟,它们之间工作在接近同步的方式下。因此,传统的基于任务级的松散同步的同步程度在很大程度上取决于模块之间的通讯能力,时钟之间的精确程度和同步的频率等,导致系统的可靠性差。

发明内容

[0004] 本发明所要解决的技术问题是提供一种基于两级松散同步的三模冗余系统及其实现方法,在比较输出过程中引入了两级松散同步过程,进行了两次比较表决,使得系统相对传统的松散同步方式可靠性更高。
[0005] 一种基于两级松散同步的三模冗余实现方法,包括以下步骤:
[0006] 步骤1、三个计算单元根据系统任务调度策略从存储器调度执行同一高可靠性任务;
[0007] 步骤2、某计算单元到达表决点后,给其他两个单元发送比较数据,同时等待接收其他两个单元发送的待比较数据;
[0008] 步骤3、三个计算单元调用比较程序进行数据比较,根据表决结果对各个计算单元设置故障评价;
[0009] 步骤4、系统故障处理模块接收各个模块的故障评价,得到各个计算单元的故障情况;
[0010] 步骤5、故障处理模块依据事先设定的故障处理原则对故障单元进行相应的故障处理。
[0011] 进一步地,所述步骤6中对故障单元进行相应的故障处理包括:若某个计算单元被认定为故障单元,故障处理模块会关断其输出,结束本次处理;否则输出正确处理后的信息。
[0012] 进一步地,所述的步骤4是通过对三个计算单元的故障情况依据三选二原则进行比较,从而得到各个计算单元的故障情况。
[0013] 进一步地,所述步骤2中的表决点设置方式可通过人为预先在程序当中设定;依据任务重要程度和系统的实时性要求,可设置不同的表决点频率。
[0014] 进一步的,所述步骤6中的故障处理原则包括:对瞬时故障,暂时封锁其本次表决的输出结果;对永久故障,封锁其输出,直到该故障单元恢复正常并提出恢复请求为止。
[0015] 进一步地,所述步骤6表决后系统选择输出还包括步骤:保存正确的计算单元的检查点信息到外部共享存储模块。
[0016] 同时本发明还提供一种基于两级松散同步的三模冗余系统,包括:
[0017] 三个计算单元,分别均设有:
[0018] 调度执行模块、根据系统任务调度策略从存储器调度执行同一高可靠性任务;
[0019] 第一级同步模块、用于某计算单元到达表决点后,给其他两个单元发送比较数据,同时等待接收其他两个单元发送的待比较数据,系统进行第一级同步;
[0020] 数据比较模块、用于进行数据比较,根据表决结果对各个计算单元设置故障评价;
[0021] 以及,还包括与三个计算单元分别联接的系统故障处理模块、用于等待接收各个模块的故障评价,得到各个计算单元的故障情况,依据事先设定的故障处理原则对故障单元进行相应的故障处理。
[0022] 进一步地,所述的计算单元还包括存储器,用来保存计算单元工作过程中所要调用的程序数据。
[0023] 进一步地,所述的计算单元还包括计时设备,用于判断任务执行是否超时。
[0024] 本发明的三模冗余系统实现方法,相比传统的松散同步方式,引入两级松散同步和比较表决,采用故障处理模块故障单元对进行相应的处理,极大的提高了系统的可靠性。

附图说明

[0025] 图1是现有的三模冗余系统的结构示意图。
[0026] 图2是本发明的三模冗余系统的结构示意图。
[0027] 图3是本发明的三模冗余实现方法的系统流程图。

具体实施方式

[0028] 为了更好地理解本发明的技术方案,下面结合附图,对本发明的具体实施方式作进一步的详细描述。如图1所示,本实施方式对计算单元做三模冗余,三个计算单元A,B,C为相互独立的三个模块,之间通过通信链路链进行数据通信。经过计算单元处理后的输出数据通过故障处理单元与外部总线相连。其中,三个计算单元,分别均设有:
[0029] 调度执行模块、根据系统任务调度策略从存储器调度执行同一高可靠性任务;
[0030] 第一级同步模块、用于某计算单元到达表决点后,给其他两个单元发送比较数据,同时等待接收其他两个单元发送的待比较数据,系统进行第一级同步;
[0031] 数据比较模块、用于进行数据比较,根据表决结果对各个计算单元设置故障评价;
[0032] 所述的系统故障处理模块、用于等待接收各个模块的故障评价,得到各个计算单元的故障情况,依据事先设定的故障处理原则对故障单元进行相应的故障处理。
[0033] 其中每个计算单元还包括私有存储器,用来保存计算单元工作过程中所要调用的程序数据。同时为保证三个计算单元能调度到相同的高可靠性任务,每个计算单元应保存一张相同的高可靠任务列表。
[0034] 同时,本发明还提供一种基于两级松散同步的三模冗余实现方法流程如图2所示:
[0035] 步骤S1:三个计算单元上电初始化,完成三个独立模块中的系统硬件和软件自检。若计算单元自检成功,相互发送成功信号,同时接收其他两个单元的自检成功信号,根据信号对其他两个单元设置故障评价。如果某单元自检失败或者信号发送不成功,则其他两个单元对其设置故障评价为发生故障。
[0036] 步骤S2:三个计算单元调度执行同一高可靠性任务,当某计算单元(A)任务调度完成,向其他两个计算单元(B,C)发送通知信号,告之其高可靠性任务的任务号,并启动看门狗计时等待接收其他两个单元(B,C)的应答信号。其它两个单元(B,C)接收到通知信号后,同时发送调度成功的应答信号给其他两个单元(B发应答给A,C;C发应答给A,B)。如果某计算单元(A)没有收到其他单元(B)的应答信号或者接收应答超时,则对其(B)设置故障评价为故障,并同时记录到本单元(A)的故障记录表里面。此时,系统进行任务执行前的初始同步。
[0037] 步骤S3:当某计算单元(A)执行任务到达检查点时,将检查点信息发往其他两个计算单元(B,C),同时启动计时等待接收其他两个单元的检查点信息。当其他两个计算单元执行到相同的检查点时,相互发送检查点信息,实现三个计算单元之间两两交换检查点信息。此时,系统进行了任务执行过程中的同步,也就是第一级同步。
[0038] 步骤S4:检查点信息交换完成之后,每个计算单元都保存了三个单元的检查点信息。调用比较程序按照三选二的原则进行数据比较表决。
[0039] 步骤S5:表决完成后,每个计算单元按相应的表决结果,对三个计算单元做出相应的故障评价,同时记录到各自的故障记录表里。
[0040] 步骤S6:各个计算单元将各自的故障记录表发到故障处理单元,之后计算单元继续执行高可靠性任务,直到下一次检查点。故障处理单元检查接收三个计算单元的故障记录表。当故障处理单元接收到第一个故障记录表(比如A单元的故障记录表)时,启动看门狗电路进行计时,如果在规定时间内没有接收到其他故障记录表(比如B单元的),则设置单元B发生故障。此时,系统进行第二级的松散同步。
[0041] 步骤S7:故障处理单元综合自己的三个故障记录表,按照三选二的原则对计算单元做出最终的故障评价。
[0042] 步骤S8:故障处理单元根据最终的故障评价,对故障单元进行故障处理。对于永久故障,故障处理单元时钟置其故障评价一直价置为故障状态。此时系统降级为双模运行,直到故障单元恢复,发送恢复信号将其故障评价置为正常状态。对瞬时故障,故障处理单元封锁其本次输出。
[0043] 步骤9:故障处理单元根据故障情况选择正确的计算单元,将其检查点信息输出保存到外部存储模块flash中,方便其卷回到上一个正确的检查点,以供系统进行故障恢复使用。为方便选择,可对三个计算单元的输出设置优先级,当单元A的结果正确时,总是优先选择A的信息。
[0044] 步骤10:系统根据优先级选择原则选择正确的输出,输出到外部总线上,以供外部设备使用。
[0045] 与传统的基于松散同步方式相比,本发明给出的方法在系统实现过程中,实施了两级松散同步,可以有效提高系统的可靠性。同时,计算单元只负责第一级的同步,并没有降低其计算性能。
[0046] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。