首页> 中国专利> 基于微包协议的三模冗余容错计算机无缝重构方法

基于微包协议的三模冗余容错计算机无缝重构方法

摘要

本发明提出一种采用微包协议结构的重构恢复方法,其以三模冗余容错计算机作为目标系统,该目标系统由三个冗余(同构或异构均可)计算机模块组成,每个冗余计算机模块中都包含三机同步模块、串行数据交换模块和电源管理模块,其特征在于:对某一从故障中恢复的计算机模块进行重构恢复时,将重构恢复数据分成适当的数据包,每个数据包包括类型域、长度域、目标地址域、数据块和校验域,根据类型域的不同,结合不同状态重构的需要,可以将所述数据包的格式扩展为重构命令包协议。通过在空闲时间传送数据包,该方法可以在重构过程中保持系统的连续工作。

著录项

  • 公开/公告号CN101441586A

    专利类型发明专利

  • 公开/公告日2009-05-27

    原文格式PDF

  • 申请/专利权人 首都师范大学;

    申请/专利号CN200910000652.4

  • 申请日2009-01-13

  • 分类号G06F11/18;G06F11/00;

  • 代理机构

  • 代理人

  • 地址 100048 北京市海淀区西三环北路105号

  • 入库时间 2023-12-17 22:01:59

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-28

    未缴年费专利权终止 IPC(主分类):G06F11/18 授权公告日:20100602 终止日期:20180113 申请日:20090113

    专利权的终止

  • 2010-06-02

    授权

    授权

  • 2009-07-22

    实质审查的生效

    实质审查的生效

  • 2009-05-27

    公开

    公开

说明书

技术领域

本发明涉及一种基于微包协议的冗余容错计算机无缝重构方法,尤其涉及一种基于微包协议的三模冗余容错计算机无缝重构方法。

背景技术

三模冗余容错计算机(TMR)可以在单模故障时保证系统任务执行的正确性,可以有效地提高实时嵌入式系统的安全性与可靠性,在航天、航空、铁路控制等领域有着广泛的应用需求。当单个计算机模块出现故障后,TMR计算机会降级为双机工作模式,如果不进行修复,系统将无法对后续的故障进行容错,安全性与可靠性都会随之降低。引起系统降级的故障可能是瞬态故障,也可能是永久故障。瞬态故障经过一段时间或重新复位后可以自动修复,永久故障则需要经过人工修复。不论哪种情况,如果修复后的机器能够重新进入系统,使系统恢复为三模冗余工作模式,将会大大提高TMR计算机在长时间连续工作环境下的安全性与可靠性。

系统重构就是三模冗余容错计算机从故障状态恢复为三模运行状态的过程,主要包括故障修复、重构识别、工作现场恢复、重新同步等环节。工作现场恢复包括机器状态与内存数据区的恢复,是实现系统重构的基础。根据恢复策略的不同,现场恢复可分为向后回卷和前向恢复两种方式。

向后回卷是在系统任务中设置一些检查点,将系统的关键状态保存下来,故障恢复时,用这些保存的关键状态数据使三个计算机模块均回退到相同的状态,重新开始运行。这种恢复方式三机之间交换数据量少,但需要耗费大量的系统时间开销,会使系统运行中断。

前向恢复是通过将正常运行的机器的当前状态及内存数据拷贝到故障机器上,使故障机器与正常机器的状态一致后,从当前点继续运行。这种恢复方式需要在三机之间交换大量的数据,重构时间与三机数据交换速率及数据交换量密切相关。常见的恢复方法是通过串行数据通道进行集中数据恢复,恢复过程中暂时停止系统的运行,恢复数据量大时,可使系统中断运行时间达到数分钟。有文献给出了一种基于存储器双机窃取拷贝的恢复方案,可以不中断系统运行,快速实现大量内存数据的传送,但需要复杂的硬件支持,更适合在双机系统中进行实现。另有文献提供了一种部分恢复方案,在数据/输出表决时一旦检查到故障状态,立即对故障机器故障区域进行恢复,可实现对瞬态故障的状态恢复,但不适用于模块级恢复。此外,还有文献提出阶梯型恢复方法,该方法以进程为单位逐步恢复系统到三模冗余状态。恢复过程中,系统采用双机与三模混合运行模工,管理复杂,不适合在三模冗余容错计算机中应用。

发明内容

本发明针对一般的嵌入式三模冗余容错计算机研究系统重构策略与重构恢复方法,提出一种采用微包协议结构的重构恢复方法,可以在重构过程中保持系统的连续工作。

本发明通过如下的方案实现。

一种基于微包协议的三模冗余容错计算机无缝重构方法,其以三模冗余容错计算机作为目标系统,该目标系统由三个冗余(同构或异构均可)计算机模块组成,每个冗余计算机模块中都包含三机同步模块、串行数据交换模块和电源管理模块,其特征在于:对某一从故障中恢复的计算机模块进行重构恢复时,将重构恢复数据分成适当的数据包,每个数据包包括类型域、长度域、目标地址域、数据块和校验域,根据类型域的不同,结合不同状态重构的需要,可以将所述数据包的格式扩展为重构命令包协议;当故障机器完成上电自检后,通过同步模块向两个正常机器发出带有重构请求标志的同步请求序列,两个正常计算机模块在识别到重构请求后,设置一个重构标志,继续执行正常的系统任务,待系统任务执行完成进入空闲状态后,若重构标志有效,则进入重构流程,按以下步骤执行系统重构过程:

(1)若剩余的空闲时间小于特定数据包传送时间,不进行重构恢复,返回系统空闲态;若剩余时间大于特定数据包传送时间,执行步骤(2);

(2)向故障机器发送一个重构命令包,然后等待故障机器的应答;

(3)若故障机器的应答不正确,返回步骤(1)执行下一次重构命令包发送过程;若故障机器返回正确应答,转步骤(4);

(4)成功完成一个重构命令包的传送后,将关键数据区及重构状态指针进行相应的修正,转步骤(1);

当所有需要重构的数据均已传送完成,则在步骤(2)构造一个重构结束命令包发送给故障机器,同时在步骤(4)清除重构标志,将本机同步模式改为三机同步模式,返回系统空闲态,等待下次同步时完成系统的重构恢复;

故障机器收到正常机器的重构允许应答同步字后,进入重构等待状态,等待正常机器进入空闲态后发送的重构命令包,重构恢复处理过程如下:

(1)故障机器进入重构等待状态后,一直等待接收其他两个正常机器的重构命令包;

(2)收到一个重构命令包后,故障机器按照协议约定,对命令包进行正确性校验,若两个机器的重构命令包均不正确,向两个正常机器回送通信故障应答字后,转步骤(1)继续等待新的重构命令包,若至少一个机器的重构命令包是正确的,则向正常机器回送通信成功应答字,转步骤(3);

(3)若收到的是重构结束命令包,设置三机同步工作模式,转步骤(5),否则转步骤(4);

(4)解析重构命令包的类型字,根据重构命令转移表调用相应的子程序恢复相应的机器状态或内存数据区,然后转步骤(1)继续等待新的重构命令包;

(5)退出重构状态,发送本机的同步请求,进入同步等待状态。

优选地,所述数据包的大小由三机数据交换速率确定,以使一个数据包能够在所述特定数据包传送时间内传送完成。

优选地,所述数据块的长度可变。

附图说明

图1表示本发明的目标系统组成框图;

图2表示本发明的重构命令包格式;

图3表示系统重构数据恢复流程,其中图3(a)表示正常机器重构工作流程,图3(b)表示故障机器重构工作流程。

具体实施方式

不失一般性,本实施方式采用一个以80X86处理器组成的三模冗余容错计算机作为目标系统,系统结构如图1所示。系统由三个同构计算机模块组成,CPU主频为100MHz,内存64MB,包括一个32位精度1μs的时基定时器和若干开关量输出。每个计算机模块中都包含三机同步模块、串行数据交换模块和电源管理等三个容错管理相关功能模块。三机同步模块在系统执行过程中用来维持三机的同步。电源管理模块在正常计算机模块的控制下可对故障机器进行开关电控制。三个计算机模块的串行数据交换通道构成一个三机两两互连的同步串行通信总线系统,通信速率为8Mbps,用来实现三机状态与数据交换,是三机进行数据表决与故障重构的基础。

当三模冗余容错计算机中某一计算机模块不能正确同步,连续多次表决数据均不正确,或软件看门狗溢出时,都认为它发生了严重故障,就要进行系统重试,对故障机器进行重构。重试时,两个正常计算机模块先将故障机器从系统中切除,使系统降级为双机工作模式,然后通过电源管理模块将故障机器关电,再加电。故障机器再加电后,若自检合格,它向其机器发送一个带有重构请求状态的同步请求,使系统从故障重试过程进入到重构识别过程。若故障机器加电后不能正常运行,在具备条件时,可对其进行人工修复后,再使其加电向其他机器发送重构请求。若不能进行人工修复,则保持系统在双机运行模式。

系统中各计算机模块只有在进入周期同步过程中以后,才会对附加在同步请求中的重构请求状态进行判断和识别,如果一个同步请求带有重构请求状态,则认为发出该同步请求的那个计算机模块需要被重构。这种识别方式不仅可以实现对故障重试机器的重构,也可以适应对人工修复后重新投入运行的模块的重构。

识别到重构请求以后,系统将会进入工作现场恢复状态,但并不立即开始现场恢复过程。正常机器只是设置一个重构标志,即开始运行正常的任务程序,待恢复机器则保持在重构等待状态。进入空闲时间后,正常机器才会将它们的关键数据区与关键状态通过三机数据交换通道发送给要恢复的故障机器,故障机器对接收数据进行正确性校验后,用它来恢复自身的执行现场。当系统空闲时间结束时,无论重构恢复是否全部完成,系统都会退出重构恢复过程,进入正常的任务执行过程。再次进入空闲时间后,才会重新启动现场恢复的数据传送过程。

现场恢复完成后,故障机器重新进入一个正常的同步等待状态,等待与其他机器一起开始三模冗余的正常执行过程。

系统重构的核心问题是将正常机器的内存数据与机器状态复制到故障机器上,使其能够恢复到与正常机器相同的状态。为了有效地利用系统任务的空闲时间,并能够提供较强的系统扩展能力,本发明将重构恢复数据分成适当的小包,结合不同状态重构的需要,制定一套具有扩展能力的重构恢复命令包协议,然后在此基础上研究一种无缝重构恢复方法。

协议制定时,首先根据三机数据交换速率确定数据包的大小,使一个数据包可以在特定数据包传送时间内传送完成,本例中,该特定数据包传送时间为0.1ms~0.5ms,当剩余的空闲时间不足时,禁止重构数据的传送。这样就可以使得重构数据传送时间可以得到较为精确的控制,尽可能地减小重构恢复模式下数据传送对系统任务的影响,同时又能够最大限度地利用系统的空闲时间进行重构恢复。考虑目标系统三机数据交换速率为8Mbps,我们将重构恢复命令包的最大长度规定为128字节,包括接收端协议解析时间的延迟,单个命令包的最大传输时间约为0.2ms,要求剩余空闲时间大于0.5ms时才进行命令包的传送。

为了提高数据交换通道的利用率,数据包采用如图2所示的可变长格式,最长不超过128字节,包括类型字、长度字、目标地址、数据和校验字节五个部分。类型字表示数据包的类型,它是一个重构命令控制字,使得数据包可以用来恢复故障机器的不同状态或数据区域;长度字表示数据包从类型字开始到校验字结束的总长度;目标地址域在内存数据包中表示数据存储的起始地址,在其他类型包中可以用来表示短信息;数据只在数据包中以可变长形式出现,用来传送内存数据,在其他类型包中该字段长度为0;校验字是数据包中除校验字以外所有数据的字节累加和,用来在接收端对数据包传输的正确性进行校验。

根据目标机器的实际需要,目前定义了图2所示的时基数据恢复、数字量输出状态恢复、模拟量恢复、内存数据恢复、重构结束命令包数据格式。

有了如上的协议包规定,重构软件可以分成标准框架和诸多相应的命令程序段两部分。标准框架完成协议包的接收与命令解析,根据不同的命令通过命令转移表调用不同的恢复子程序完成相应的恢复工作。当系统扩展时,只需要增加相应的命令包定义,并扩展相应的子程序即可。这使得系统重构软件可以采用面向对象方法以标准构件库的形式进行开发,可以极大地提高系统的标准化程度。

故障机器完成上电自检后,通过同步模块向两个正常机器发出带有重构请求标志的同步请求序列。正常机器在同步过程中识别故障机器的重构请求标志,一旦识别到重构请求后,向故障机器发送带有重构允许的同步应答字,使系统完成重构识别过程,进入重构恢复状态。图3给出了重构现场恢复方法的流程图,下面从正常机器与故障机器两个方面对方法进行描述。

对于两个正常计算机模块,它们在识别到重构请求后,设置一个重构标志RCF,继续执行正常的系统任务。待系统任务执行完成进入空闲状态后,若RCF标志有效,说明有故障机器需要重构,进入重构流程,按以下步骤执行系统重构过程。

(1)若剩余的空闲时间小于特定数据包传送时间,例如0.5ms,不进行重构恢复,返回系统空闲态;若剩余时间大于特定数据包传送时间,例如0.5ms,执行步骤(2);

(2)向故障机器发送一个重构命令包(可以是内存数据包,也可以是状态恢复命令包),然后等待故障机器的应答;

(3)若故障机器的应答不正确,返回步骤(1)执行下一次重构命令包发送过程;若故障机器返回正确应答,转步骤(4);

(4)成功完成一个重构命令包的传送后,将关键数据区及重构状态指针进行相应的修正,转步骤(1)。

如果所有需要重构的数据均已传送完成,则在步骤(2)构造一个重构结束命令包发送给故障机器,同时在步骤(4)清除RCF标志,将本机同步模式改为三机同步模式,返回系统空闲态,等待下次同步时完成系统的重构恢复。

故障机器收到正常机器的重构允许应答同步字后,进入重构等待状态,等待正常机器进入空闲态后发送的重构命令包,重构恢复处理过程如下:

(1)故障机器进入重构状态后,一直等待接收其他两个正常机器的重构命令包;

(2)收到一个重构命令包后,故障机器按照协议约定,对命令包进行正确性校验。若两个机器的重构命令包均不正确,向两个正常机器回送通信故障应答字后,转步骤(1)继续等待新的重构命令包。若至少一个机器的重构命令包是正确的,则向正常机器回送通信成功应答字,转步骤(3);

(3)若收到的是重构结束命令包,设置三机同步工作模式,转步骤(5),否则转步骤(4);

(4)解析重构命令包的类型字,根据重构命令转移表调用相应的子程序恢复相应的机器状态或内存数据区。然后转步骤(1)继续等待新的重构命令包;

(5)退出重构状态,发送本机的同步请求,进入同步等待状态。

上面给出的基于微包协议的重构恢复方法,利用系统任务的空闲时间进行数据恢复,是一种后台恢复模式。如果需要进行集中恢复,可以在系统进入空闲状态以后,让重构程序停止系统时间片定时器,使系统的剩余空闲时间保持不变,待重构恢复完成后,再重新启动时间片定时器,从而实现集中重构。

采用上述重构方法,在目标机上将任务周期设为100ms,重构数据量50KB(其中8KB数据在每个任务周期都会变化,另有10KB数据每三个周期变化一次,其他数据每8周期变化一次),任务空闲时间约为18%。程序执行中,通过软件方式在某一机器上注入故障,使其不能正常同步,导致系统通过开关电方式对它进行故障重试,从而对系统重构过程进行测试。测试结果如表1所示。

表1  系统重构测试结果

 

系统恢复时间5.1s重构恢复时间607ms时基恢复精度<4us

表中系统恢复时间包括故障机器的关电恢复与上电启动时间,其中关电恢复时间为3s,上电复位时间为1.2s,其他时间为自检、重构识别、重新同步及重构恢复的时间总和。重构恢复时间是从第一个重构命令包开始传送到最后一个重构命令包传送结束的时间。时基恢复精度是系统重构完成后,三机时基定时器的误差,主要是由于通信延迟及三机同步误差引入的。

从测试情况可以看出,本发明提出的重构方法可以利用系统空闲时间与串行数据通道,在不中断系统工作的情况下,对三模冗余容错计算机进行无缝重构。这种重构方法,不需要增加特别的硬件支持,也不会增加系统的软件时间开销。同时,完善的重构命令协议使得重构软件的开发可以采用面向对象思想构成标准化的中间件,具有很强的扩展能力,对构建标准化嵌入三模冗余容错计算机内核奠定了良好技术基础。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号