CN103399807B - 一种用于三模冗余计算机的动态现场自主恢复方法 - Google Patents

一种用于三模冗余计算机的动态现场自主恢复方法 Download PDF

Info

Publication number
CN103399807B
CN103399807B CN201310270153.3A CN201310270153A CN103399807B CN 103399807 B CN103399807 B CN 103399807B CN 201310270153 A CN201310270153 A CN 201310270153A CN 103399807 B CN103399807 B CN 103399807B
Authority
CN
China
Prior art keywords
computer
data
faulty
reconstruct
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310270153.3A
Other languages
English (en)
Other versions
CN103399807A (zh
Inventor
谭沛
靳加农
曹振兴
牟文秀
邱庆林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
513 Research Institute of 5th Academy of CASC
Original Assignee
513 Research Institute of 5th Academy of CASC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 513 Research Institute of 5th Academy of CASC filed Critical 513 Research Institute of 5th Academy of CASC
Priority to CN201310270153.3A priority Critical patent/CN103399807B/zh
Publication of CN103399807A publication Critical patent/CN103399807A/zh
Application granted granted Critical
Publication of CN103399807B publication Critical patent/CN103399807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种用于三模冗余计算机的动态现场自主恢复方法,系统正常工作时为三机工作模式,在其中一个计算机模块出现故障后,正常工作的计算机模块会对故障计算机进行故障检测,并进行降级处理,变为双机工作模式,然后对故障计算机进行系统重构恢复,通过三机通讯接口,正常计算机将重构数据发送至故障计算机。重构完成后,故障计算机重新进入系统并恢复正常工作,使系统恢复为三机工作模式,使系统可靠性和安全性得到极大的提升。该方法能够解决目前三模冗余容错计算机重构恢复时因CPU板运行不同代码和软件运行现场变更所带来的问题。

Description

一种用于三模冗余计算机的动态现场自主恢复方法
技术领域
本发明涉及面向容错系统的动态现场自主恢复技术领域,具体涉及一种用于三模冗余计算机的动态现场自主恢复方法。
背景技术
三模冗余容错计算机与目前常用的双冗余计算机结构相比,三模冗余容错计算机具有更高的安全性能,在安全关键的控制领域有较为迫切的应用需求。三模冗余容错计算机具有以下特点:通过时间与任务的同步,保证三个单机完全同步运行;在系统设计中完全消除了单点故障;通过三机的表决机制屏蔽单机的故障,在单机故障时不需要中断当前的任务;并能够将故障单机从系统摘除,实现双机降级使用;通过三机间的通信机制,具备在线修复能力,在单机故障时可通过系统的自主重构对故障的单机进行恢复。
目前三模冗余容错计算机自主恢复的缺点和不足是:
(1)只能用于三模计算机三个CPU板运行相同软件的工况,而在实际应用中,由于应用需求的不同,三模计算机三个CPU板有可能需要运行不同软件代码,比如一个CPU板的1553B总线的工作模式需要作为BC(总线控制器)应用,其余两个CPU板的1553B总线需要作为MT(总线监控器)应用,因此在三个CPU模块中所运行的软件代码不同。
(2)目前的三模冗余计算机重构技术,是将恢复数据更新至故障计算机,恢复完成后,故障计算机进入预设的软件运行代码处等待正常计算机的同步唤醒,重新进入三机模式,即恢复完成时,故障计算机的软件现场并不是与正常计算机一致。如果正常计算机的软件运行现场发生变化,而故障计算机重构完成后却还在预设的软件运行代码处等待唤醒,此时会导致故障计算机重构完成后所运行的软件现场与正常计算机不一致,导致故障重构失败。
发明内容
本发明提供了一种面向容错系统的动态现场自主恢复方法,用于三模冗余容错计算机,能够解决目前三模冗余容错计算机重构恢复时因CPU板运行不同代码和软件运行现场变更所带来的问题,并且此方法可还用于双机或多机冗余容错系统。
本发明的目的是通过下述技术方案实现的:三模冗余容错计算机系统包括三个计算机,具有三个主CPU,CPU编号分别为1、2、3,只有一个主机权,上电初始默认为1号机,主机工作模式为总线通讯模式即BC模式,其余两机工作模式为总线监控模式即MT模式,主机权移交依次为1>2>3>1,该方法的步骤为:
1)每个周期所述计算机系统都会对三个计算机进行容错检测,当检测到一个计算机故障后,对故障计算机进行断电关机处理,然后将整个计算机系统降级为双机工作模式,在计算机系统降级后,每个正常计算机将故障信息更新至各自的本机故障记录表,然后计算机系统对故障计算机进行重新加电;所述双机工作模式分为两种情况:1)故障计算机为MT模式的计算机,则双机工作模式为一台主机与一台MT模式的正常计算机正常工作;2)故障计算机为主机,主机权按设定的移交次序进行移交后,剩余的两个正常计算机同步工作,
2)故障计算机加电后进行系统初始化后,向两个正常计算机发出握手通讯数据,三个计算机握手成功后,三个计算机分别获取本机所处工作状态进行再次确认,即根据握手信息,故障计算机获取当前主机号信息,确认总线工作模式为MT模式的正常计算机的CPU编号,然后进入重构流程;
3)在重构流程中,故障计算机将重构通信数据串口初始化为与MT模式的正常计算机的串口即选通重构数据获取通道,从此串口接收MT模式的正常计算机提供的重构数据,所述重构数据包括故障记录表、关键内存数据、FPGA寄存器数据、计数器数据、CPU中断屏蔽寄存器数据和正常计算机堆栈数据;
4)故障计算机收取重构数据后,根据数据类型,将故障记录表、关键内存数据、FPGA寄存器数据、计数器数据、和CPU中断屏蔽寄存器数据更新相应位置;
5)以上数据更新完成后,故障计算机首先进行堆栈数据区的更新即将堆栈数据更新至堆栈空间,然后故障计算机开始进行现场恢复工作,即根据堆栈数据区数据更新CPU的内部寄存器以及堆栈基址及堆栈指针数据,最后根据更新后的npc指针(指向下一条程序的运行指令的地址),进行pc指针(指向当前程序运行指令的地址)的跳转,跳转完成后,故障计算机的软件现场恢复完成,此时故障计算机的软件运行现场、故障记录表、关键内存数据、主机号、FPGA寄存器、计数器、和CPU中断屏蔽寄存器等数据与正常计算机完全一致,重构完成;
6)退出重构流程,系统恢复为三机工作模式;恢复三机工作模式后,故障计算机所运行的软件指令和流程与正常计算机完全一致。
本发明的有益效果:
利用此方法恢复的计算机系统,保证了重构恢复后,故障计算机与正常计算机的软件运行现场、工作模式、内存数据及关键寄存器配置完全一致,故障计算机能够立即恢复正常工作,不需等待特定的时间点或外部激励再与正常计算机同时进入三机工作模式,避免了因CPU板运行软件不同和软件运行现场变化带来的问题,提高了系统可靠性和安全性,并提高了系统重构工作效率。
附图说明
图1为本发明的流程图;
具体实施方式
为了更好地理解本发明的技术方案,下面结合附图及具体实施例对本发明做进一步详细描述。
假设某项目箭载计算机是应用于上面级控制任务的三模冗余容错计算机,采用基于三模冗余容错设计方案,具有三个主CPU,CPU编号分别为1、2、3,即三个相互冗余的计算机,其中只有一个主机权,上电初始默认为1号机,主机的1553B总线工作模式为BC模式,其余两机为MT工作模式,BC模式进行总线通讯,MT模式进行总线监控,如主机出现异常,主机权转移交至2号机,此时2号机转变为BC工作模式,主级权移交依次为1>2>3>1。三模冗余容错计算机每个计算机模块能够同时运行并且独立工作,相互之间通过三机通讯接口进行数据交互。系统正常工作时为三机工作模式,在其中一个计算机模块出现故障后,正常工作的计算机模块会对故障计算机进行故障检测,并进行降级处理,变为双机工作模式,然后对故障计算机进行系统重构恢复,通过三机通讯接口,正常计算机将重构数据发送至故障计算机。重构完成后,故障计算机重新进入系统并恢复正常工作,使系统恢复为三机工作模式,使系统可靠性和安全性得到极大的提升。
动态现场自主恢复步骤如下:
1)每个周期所述计算机系统都会对三个计算机进行容错检测,当检测到一个计算机故障后,对故障计算机进行断电关机处理,然后将整个计算机系统降级为双机工作模式,即将主机权按移交次序进行移交后两个正常计算机同步工作,在计算机系统降级后,每个正常计算机将故障信息更新至各自的本机故障记录表,然后计算机系统对故障计算机进行重新加电。
在发出断电指令时,必须两个正常计算机都向计算机系统发出断电指令,故障计算机才会断电;
2)故障计算机加电后进行系统初始化后,通过三机通讯接口向两个正常计算机发出握手通讯数据,三个计算机握手成功后,根据握手信息,三个计算机分别获取本机所处工作状态进行确认:正常计算机确认本机为重构机,需要对故障计算机发出重构数据帮助其进行重构,故障计算机确认本机为被重构机,需要接收重构机发来的重构数据以重构本机;当确认需重构故障计算机后,则三个计算机都进入重构流程,正常计算机进入重构流程,故障计算机进入被重构流程;
在进行重构恢复之前,故障计算机需要先将当前运行软件的堆栈基址重新指定至别的内存空间,防止进行重构恢复时,因在恢复堆栈数据区时改写堆栈区影响当前运行软件的堆栈空间,导致软件运行错误。
3)在重构流程中,正常计算机首先通过握手信息将当前主机号通知故障计算机,由于故障计算机重构后的总线工作模式为MT模式,所以在重构流程中,故障计算机的重构数据需要由处于MT工作模式的正常计算机提供,故障计算机获取当前主机号信息后,确认总线工作模式为MT模式的正常计算机的CPU编号,然后将重构通信数据串口初始化为与MT模式的正常计算机的串口即选通重构数据获取通道,从此串口接收正常计算机提供的重构数据,对本机进行重构。
然后两个正常计算机根据重构通讯协议,均向故障计算机发送重构数据,包括故障记录表、关键内存数据、FPGA寄存器、计数器、CPU中断屏蔽寄存器和正常计算机堆栈数据区;故障计算机选择接收处于MT工作模式的正常计算机发来的重构数据;以上重构数据是构成CPU软件现场的必要组成部分:故障记录表记录了三个CPU的故障次数及故障种类,三个CPU的故障记录表相同,都能查到本机或者另外两个计算机的故障情况;关键内存数据包含了数据段所有变量及软件运行过程中操作过的内存区域的数据;FPGA的某些寄存器在软件运行过程中有可能会重新赋值而产生变化;计数器在设备上电后开始计数,故障计算机重启后会重新计数,因此需要重构;CPU中断屏蔽寄存器在软件运行过程中有可能会被修改;正常计算机堆栈数据区是动态现场恢复的关键数据,堆栈数据区包含了CPU内部寄存器、pc指针、npc指针、堆栈基址及堆栈指针等信息,只有保证堆栈数据区保持一致,故障计算机的现场才能真正意义称得上与正常计算机一致。
其中关键内存数据和正常计算机堆栈数据区在恢复过程中每个恢复周期都会及时更新,保证发给故障计算机的重构数据都为最新数据。
4)故障计算机收取重构数据后,根据数据类型,将故障记录表、关键内存数据、FPGA寄存器、计数器、和CPU中断屏蔽寄存器更新相应位置。
5)以上数据更新完成后,故障计算机首先进行堆栈数据区的更新即将堆栈数据更新至堆栈空间,然后故障计算机开始进行现场恢复工作,即根据堆栈数据区数据更新CPU的内部寄存器以及堆栈基址及堆栈指针数据,最后根据更新后的npc指针,进行pc指针的跳转,跳转完成后,故障计算机的软件现场恢复完成,此时故障计算机的软件运行现场、故障记录表、关键内存数据、主机号、FPGA寄存器、计数器、和CPU中断屏蔽寄存器等数据与正常计算机完全一致,重构完成。
6)退出重构流程,系统恢复为三机工作模式。恢复三机工作模式后,故障计算机所运行的软件指令和流程与正常计算机完全一致。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种用于三模冗余计算机的动态现场自主恢复方法,三模冗余容错计算机系统包括三个计算机,具有三个主CPU,CPU编号分别为1、2、3,只有一个主机权,上电初始默认为1号机,主机工作模式为总线通讯模式即BC模式,其余两机工作模式为总线监控模式即MT模式,主机权移交依次为1>2>3>1,其特征在于,该方法的步骤为:
1)每个周期所述计算机系统都会对三个计算机进行容错检测,当检测到一个计算机故障后,对故障计算机进行断电关机处理,然后将整个计算机系统降级为双机工作模式,在计算机系统降级后,每个正常计算机将故障信息更新至各自的本机故障记录表,然后计算机系统对故障计算机进行重新加电;所述双机工作模式分为两种情况:1)故障计算机为MT模式的计算机,则双机工作模式为一台主机与一台MT模式的正常计算机正常工作;2)故障计算机为主机,主机权按设定的移交次序进行移交后,剩余的两个正常计算机同步工作,
2)故障计算机加电后进行系统初始化后,向两个正常计算机发出握手通讯数据,三个计算机握手成功后,三个计算机分别获取本机所处工作状态进行再次确认,即根据握手信息,故障计算机获取当前主机号信息,确认总线工作模式为MT模式的正常计算机的CPU编号,然后进入重构流程;
在进行重构恢复之前,故障计算机需要先将当前运行软件的堆栈基址重新指定至别的内存空间;
3)在重构流程中,故障计算机将重构通信数据串口初始化为与MT模式的正常计算机的串口即选通重构数据获取通道,从此串口接收MT模式的正常计算机提供的重构数据,所述重构数据包括故障记录表、关键内存数据、FPGA寄存器数据、计数器数据、CPU中断屏蔽寄存器数据和正常计算机堆栈数据;
4)故障计算机收取重构数据后,根据数据类型,将故障记录表、关键内存数据、FPGA寄存器数据、计数器数据、和CPU中断屏蔽寄存器数据更新相应位置;
5)以上数据更新完成后,故障计算机首先进行堆栈数据区的更新即将堆栈数据更新至堆栈空间,然后故障计算机开始进行现场恢复工作,即根据堆栈数据区数据更新CPU的内部寄存器以及堆栈基址及堆栈指针数据,最后根据更新后的npc指针,进行pc指针的跳转,跳转完成后,故障计算机的软件现场恢复完成,此时故障计算机的软件运行现场、故障记录表、关键内存数据、主机号、FPGA寄存器、计数器和CPU中断屏蔽寄存器的数据与正常计算机完全一致,重构完成;
6)退出重构流程,系统恢复为三机工作模式;恢复三机工作模式后,故障计算机所运行的软件指令和流程与正常计算机完全一致。
CN201310270153.3A 2013-06-28 2013-06-28 一种用于三模冗余计算机的动态现场自主恢复方法 Active CN103399807B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310270153.3A CN103399807B (zh) 2013-06-28 2013-06-28 一种用于三模冗余计算机的动态现场自主恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310270153.3A CN103399807B (zh) 2013-06-28 2013-06-28 一种用于三模冗余计算机的动态现场自主恢复方法

Publications (2)

Publication Number Publication Date
CN103399807A CN103399807A (zh) 2013-11-20
CN103399807B true CN103399807B (zh) 2015-03-25

Family

ID=49563440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310270153.3A Active CN103399807B (zh) 2013-06-28 2013-06-28 一种用于三模冗余计算机的动态现场自主恢复方法

Country Status (1)

Country Link
CN (1) CN103399807B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107347018A (zh) * 2017-04-14 2017-11-14 上海航天控制技术研究所 一种三冗余1553b总线动态切换方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105607698B (zh) * 2015-12-17 2019-01-04 哈尔滨工业大学 一种星载计算机系统方案设计方法
CN109522155B (zh) * 2018-10-29 2020-11-03 中国科学院长春光学精密机械与物理研究所 基于动态切换的空间应用嵌入式软件自修复系统
CN115390097B (zh) * 2022-08-31 2023-10-13 中航机载系统共性技术有限公司 双余度卫星导航接收机、故障检测及处理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441586A (zh) * 2009-01-13 2009-05-27 首都师范大学 基于微包协议的三模冗余容错计算机无缝重构方法
CN102012850A (zh) * 2010-12-09 2011-04-13 首都师范大学 基于硬件监视和微包协议的关键数据恢复方法
DE102011005800A1 (de) * 2010-03-23 2011-09-29 Continental Teves Ag & Co. Ohg Kontrollrechnersystem, Verfahren zur Steuerung eines Kontrollrechnersystems, sowie Verwendung eines Kontrollrechnersystems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441586A (zh) * 2009-01-13 2009-05-27 首都师范大学 基于微包协议的三模冗余容错计算机无缝重构方法
DE102011005800A1 (de) * 2010-03-23 2011-09-29 Continental Teves Ag & Co. Ohg Kontrollrechnersystem, Verfahren zur Steuerung eines Kontrollrechnersystems, sowie Verwendung eines Kontrollrechnersystems
CN102012850A (zh) * 2010-12-09 2011-04-13 首都师范大学 基于硬件监视和微包协议的关键数据恢复方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107347018A (zh) * 2017-04-14 2017-11-14 上海航天控制技术研究所 一种三冗余1553b总线动态切换方法
CN107347018B (zh) * 2017-04-14 2019-12-20 上海航天控制技术研究所 一种三冗余1553b总线动态切换方法

Also Published As

Publication number Publication date
CN103399807A (zh) 2013-11-20

Similar Documents

Publication Publication Date Title
CN100517246C (zh) 一种计算机远程控制方法及系统
CN107347018B (zh) 一种三冗余1553b总线动态切换方法
CN110376876B (zh) 一种双系同步的安全计算机平台
CN103399807B (zh) 一种用于三模冗余计算机的动态现场自主恢复方法
US20070128895A1 (en) Redundant automation system for controlling a techinical device, and method for operating such an automation system
CN100492305C (zh) 一种计算机系统的快速恢复方法及设备
CN100465907C (zh) 一种cmos参数的设置维护装置及方法
US8990632B2 (en) System for monitoring state information in a multiplex system
CN102880527B (zh) 一种基板管理控制器的数据恢复方法
US20130262917A1 (en) Redundant system control method
CN104407556A (zh) 一种热备冗余的模块切换装置
CN102662803A (zh) 一种双控双活冗余设备
CN102708027B (zh) 一种避免通信设备运行中断的方法及系统
EP2813912B1 (en) Fault tolerant industrial automation control system
CN103853147B (zh) 一种嵌入式系统的在线调试系统
CN105760241A (zh) 一种内存数据导出方法和系统
CN109324818A (zh) 虚拟化服务器上位机系统及相关升级技术
CN103455393A (zh) 一种基于进程冗余的容错系统设计方法
CN109188895A (zh) 一种基于冗余设计的伺服控制系统
CN117573609B (zh) 一种具有冗余功能的片上系统及其控制方法
CN103873516A (zh) 提高云计算资源池中物理服务器使用率的ha方法和系统
CN212541329U (zh) 基于国产龙芯平台的双冗余计算机设备
CN105009086A (zh) 一种实现处理器切换的方法、计算机和切换装置
CN204406385U (zh) 计算机系统的管理装置
US20120331199A1 (en) Computer system, host-bus-adaptor control method, and program thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant