CN101441585B - 三模冗余容错计算机精确同步的方法 - Google Patents
三模冗余容错计算机精确同步的方法 Download PDFInfo
- Publication number
- CN101441585B CN101441585B CN200910000651XA CN200910000651A CN101441585B CN 101441585 B CN101441585 B CN 101441585B CN 200910000651X A CN200910000651X A CN 200910000651XA CN 200910000651 A CN200910000651 A CN 200910000651A CN 101441585 B CN101441585 B CN 101441585B
- Authority
- CN
- China
- Prior art keywords
- state
- synchronization
- synchronous
- synchronizer
- machine
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
一种三模冗余容错计算机精确同步的方法,其中,在三个计算机模块的每个中嵌入一个完全相同的同步器,利用一组共享信号线跟踪三机的同步状态,通过状态锁定或状态插入,实现三个计算机模块在执行状态、时间片定时及时基计数上的精确同步。
Description
技术领域
本发明涉及一种冗余容错计算机同步的方法,尤其涉及一种嵌入式三模冗余容错计算机的精确同步的方法。
背景技术
嵌入式计算机作为自动控制系统的核心装置,广泛应用于国民经济的各个领域,其可靠性与安全性一直备受关注。三模冗余容错计算机通过三中取二表决,在单个计算机模块出现故障的情况下,可以输出正确的结果,保证系统在故障状态下的正确性与安全性,是提高嵌入式计算机安全性与可靠性最为有效的手段之一。在航天、航空、铁路、化工等国民经济重要领域有着强烈的应用需求。
同步技术是嵌入式三模冗余容错计算机的核心基础技术之一,在高速运行的控制场合更是如此。它用来消除系统中三个计算机模块之间因时钟、输入延迟等因素造成的异步度,使得系统中三个计算机模块在程序执行状态、周期定时及时间基准上达到相对一致的状态。只有这样系统中三个计算机模块才能采集到相同的输入信号,在计算后同时将输出送给表决器进行表决输出,真正地完成三模冗余容错功能。在一些高速、精确的嵌入式控制场合(比如时速达到300km/h的列车控制),对系统输出的控制信号的频率、时间精度都有很高的需求。这就要求三模冗余容错计算机系统必须能够达到很高的同步精度。
在三模冗余容错计算机诞生以后,人们就在不断地研究各种同步技术,提出了包括任务同步、中断同步、公共时钟、锁相同步、多级同步在内的多种同步方法。同步精度因具体实现不同而各有差异,多在数十us到数ms之间。
任务同步是以系统中独立运行、具有一定逻辑功能的任务的一次运行作为同步基础,在任务中设置一个或多个关键点。任务运行到达关键点时,通过数据交换通道,在三机之间交换任务进程的状态数据和(或)应用数据。在相同的关键点,正常任务的状态数据及应用数据应当具有较好的一致性,通过对状态与应用数据的比较、表决,可以使三个计算机模块的程序执行状态同步到一定的时间范围内。任务同步的基本原理如图3所示,核心思想是通过三机之间的相互等待,在运行较快的两个机器上的任务中插入一定的等待时间,使他们与最慢的机器实现同步。任务同步的关键点可以是数据表决比较点,也可以是专门设置的同步点。任务同步属于一种松散同步,从用户参与程序上可分为操作系统级、程序库和用户级三种,从硬件支持上可分为共享存储器、并行通信、串行通信等形式,以串行通信为基础的程序库实现方式比较常见。无论那种方式,其同步精度取决于数据交换速度及状态判断时间,一般只能达到μS级,共享存储器还会给系统引入新的单点故障失效模式。
中断同步利用一个公用的外部中断源作为系统同步的触发点。当外部中断到达后,三个计算机模块互相判断对方的中断识别状态,同步进入中断服务程序,在中断服务程序中进行状态与数据交换,使三个计算机模块时间基准实现同步。
这种同步方式通过使三机在同一个指令周期中识别外部中断源,可以使系统的时间基准的同步精度达到一个指令执行周期。虽然也可以在中断服务程序中进行控制信号的输出及输入信号的采集,保证三机输入、输出过程的同步性,但无法使三机的执行状态达到同步,不能适应嵌入式控制系统的应用场合。公共外部中断源也给系统引入了新的单点故障失效模式。
公共时钟同步属于一种紧耦合的硬件同步方式,其核心思想是让系统中所有计算机模块采用同一个公共时钟源,可以保证系统时钟及时间基准同步的精确性,但时钟源模块故障时会导致系统失效,引入了单点故障失效模式。通过冗余时钟的方式可以提高时钟模块的可靠性,但无法完全消除单点故障失效模式。同时这种同步方式也不能保证三个计算机模块执行状态的一致性,必须结合其他同步技术,才能保证三模冗余容错计算机系统的完全同步。这种同步方式目前已很少使用。
锁相同步是利用三个计算机时钟信号进行互反馈,生成一个基准信号,并以此基准信号为依据校正自身的时钟漂移,从而达到时钟同步的目的。该方法不存在单点故障失效模式,同时可以实现各计算机模块时钟的精确同步,但其实现相对复杂,也只能实现时钟自身的同步,不能保证机器执行状态的同步。
综上所述,尽管人们在三模冗余容错计算机的同步技术方面取得了大量的研究成果,但随着嵌入式控制系统应用的不断深入和嵌入式数据处理及控制精度的提高,现有同步技术已不能很好地嵌入式控制高速精确的应用需求,急需研究低成本高可靠的三模冗余容错计算机精确同步技术。
发明内容
本发明旨在研究一种精确同步技术,通过双状态机跟踪与锁定,以使三模冗余容错计算机的状态同步精度和时基同步精度达到30ns以下,并节省宝贵的互连资源,降低实现成本和其他系统资源开销。
本发明是通过采用如下技术方案实现的。
一种三模冗余容错计算机精确同步的方法,其特征在于,在三个计算机模块的每个中嵌入一个完全相同的同步器,以实现三个计算机模块的状态同步、周期同步和时基同步,所述的同步器包括同步状态跟踪器及与该同步状态跟踪器相连的状态锁定器、时间片定时器和时基计数器,所述的同步状态跟踪器通过一组共享的同步信号线,采用双环状态机监视三个同步器的请求状态和时基计数器的工作状态,该双环状态机包括状态同步状态机和时基同步状态机,
所述的状态同步状态机用于实现状态同步,该状态同步的方法包括:
(1)当需要进行状态同步时,计算机模块向同步器发出同步请求,启动同步状态跟踪器进入搜索;
(2)同步状态跟踪器启动后,送出本机的状态同步请求,并开始在共享同步信号线上搜索其他两个同步器的同步请求,利用状态锁定器使计算机模块进入一个维持状态;
(3)当搜索来自任何一个同步器的同步请求后,立即转入跟踪搜索状态(4),跟踪本机与已发出同步请求的同步器的请求状态,并继续搜索第三个同步器的同步请求;
(4)搜索到第三个同步器的同步请求后,转入步骤(5)的跟踪状态;若在规定的时间内未能搜索到第三个同步器的同步请求,则认为第三个计算机模块发生同步故障,也转入步骤(5)的跟踪状态;
(5)记录当前搜索结果,继续跟踪已有同步请求1个周期,若无异常情况转入步骤(6);如果已经搜索到的同步请求失效,则转入步骤(2)重新跟踪;
(6)解除状态锁定器的锁定状态,完成状态同步;
所述的时基同步状态机用于实现时基同步,该时基同步采用逐渐逼近的方法,假设每次同步消除的时间误差为N个时基同步状态机时钟周期,该时基同步的方法包括:
(1)时基计数器工作中,不断地通过同步状态跟踪器向其他同步器广播自身的工作状态,同步状态跟踪器在每次广播时基计数器工作状态的同时,启动时基跟踪;
(2)进行必要的状态延迟后,在共享同步信号线上搜索其他同步器送来的时基状态信号;
(3)根据其他同步器发送时基状态的延迟时间,在本机时基计数器上插入N-1个或零个等待周期;
(4)如果其他同步器在规定的时钟周期内没有送出时基状态信号,则在本机的时基计数器中插入N个等待状态。
优选地,在状态同步过程中,如果搜索到时基状态信号,同步状态跟踪器将状态同步过程锁定起来,立即启动时基同步状态机执行时基同步的状态跟踪。
优选地,状态同步通过软件和硬件两个层次实现,当系统到达同步点时,首先由软件通过数据交换通路交换三机的执行状态及同步信息,实现三机的粗同步,然后,再启动同步器进行硬件同步,实现三机的精确同步。
优选地,周期同步的步骤包括:
(1)在状态同步过程中,将时间片定时器强制置零;
(2)状态同步结束后才允许时间片定时器开始计数;
(3)时间片定时器在其计数值达到规定值后,产生时间片中断请求。
附图说明
图1是本发明的基于状态跟踪的同步电路组成框图;
图2是本发明的双环状态机的流程图;
图3是现有技术中任务同步的时间流程图。
具体实施方式
一般来讲,三模冗余容错计算机的同步包括状态同步、周期同步、系统时间基准(时基)同步三个方面。状态同步是通过一个同步过程,使三个计算机模块的指令执行状态达到相对一致;嵌入式计算机一般采用固定时间片执行周期性控制或数据采集任务,周期同步就是保证三模冗余容错计算机中各计算机模块的任务执行周期的一致性,它一般在任务周期的起始处进行,是状态同步的一种特殊形式;时基同步用来使各计算机模块能够维持一个相同的时间基准。状态同步的精度决定了嵌入式三模冗余计算机数据采集及控制信号输出的精度,直接影响着三模冗余计算机的控制精确度与控制信号的最高输出速度。
为了提高三机同步的精确度,本发明采用图1所示的同步机构,在每个计算机模块中嵌入一个完全相同的硬件同步器,利用一组共享信号线跟踪三机的同步状态,通过状态锁定或状态插入,实现三个计算机模块在执行状态、时间片定时及时基计数上的精确同步。
同步器包括同步状态跟踪器(SSTU)及与该SSTU相连的状态锁定器、时间片定时器和时基计数器。SSTU通过一组共享的同步信号线(SSL),采用一个如图2所示的双环状态机一直监视着三个同步器的请求状态和时基计数器的工作状态。该双环状态机包括状态同步状态机和时基同步状态机。该状态同步状态机用于实现状态同步。状态同步方法如下:
(1)当需要进行状态同步时,计算机模块向同步器发出同步请求,启动SSTU进入搜索;
(2)SSTU启动后,送出本机的状态同步请求,并开始在SSL上搜索其他两个同步器的同步请求,利用状态锁定器(SLU)使计算机模块进入一个维持状态;
(3)当搜索来自任何一个同步器的同步请求后,立即转入跟踪搜索状态(4),跟踪本机与已发出同步请求的同步器的请求状态,并继续搜索第三个同步器的同步请求;
(4)搜索到第三个同步器的同步请求后,转入步骤(5)的跟踪状态;若在规定的时间内(如256个状态机时钟)未能搜索到第三个同步器的同步请求,则认为第三个计算机模块发生同步故障,也转入步骤(5)的跟踪状态;
(5)记录当前搜索结果,继续跟踪已有同步请求1个周期,若无异常情况转入步骤(6);如果已经搜索到的同步请求失效,则转入步骤(2)重新跟踪;
(6)解除SLU的锁定状态,完成状态同步。
所述的时基同步状态机用于实现时基同步。时基同步采用逐渐逼近的方法,当三个计算机模块时间基准计数器存在较大误差时,每次同步过程只消除一部分误差,多次同步后,三机的时间基准将逐渐达到完全同步。假设每次同步消除的时间误差为N个时基同步状态机时钟周期,时基同步方法如下:
(1)时基计数器工作中,不断地通过SSTU向其他同步器广播自身的工作状态。SSTU在每次广播时基计数器工作状态的同时,启动双环状态机的时基跟踪环;
(2)进行必要的状态延迟后,在SSL上搜索其他同步器送来的时基状态信号;
(3)根据其他同步器发送时基状态的延迟时间,在本机时基计数器上插入N-1个或零个等待周期;
(4)如果其他同步器在规定的时钟周期内没有送出时基状态信号,则在本机的时基计数器中插入N个等待状态。
时基计数器一旦达到同步后,它们就会实现一种状态锁定,不断消除三机时钟差异带来的误差,保持一种同步状态,使三个计算机模块上的时基计数器误差不会超过1个状态机时钟。由于采用了硬件状态锁定方式,同步器也能够保证在同步完成后使三个计算机模块执行状态的误差不超过一个时基同步状态机时钟。当同步器工作时钟为33MHz时,就可以保证三机的状态同步与时基同步的精度达到30ns以下。
需要说明的是,在状态同步过程中,如果搜索到时基状态信号,SSTU会将状态同步过程锁定起来,立即启动时基同步状态机执行时基同步的状态跟踪,也就是说时基同步的优先级要高于状态同步。
还需要说明的是,周期同步的步骤通常包括:
(1)在状态同步过程中,将时间片定时器强制置零;
(2)状态同步结束后才允许时间片定时器开始计数;
(3)时间片定时器在其计数值达到规定值后,产生时间片中断请求。
考虑SSTU硬件资源的限制和系统重构等方面的要求,将状态同步分为软件和硬件两个层次进行实现。系统到达同步点时,首先由软件按照传统的任务同步方法,通过数据交换通路交换三机的执行状态及同步信息,实现三机的粗同步,将三个计算机模块的执行异步度减小到一定的范围。然后,再启动同步器进行硬件同步,实现三机的精确同步。
下面是对测试结果进行的分析。
根据上述基于状态跟踪与锁定的新型同步方法,采用80X86处理器,实现了一个三模冗余容错计算机,包含了10路开关量输出和一个32位的时基定时器。系统工作时钟频率为33MHz,精度100ppm,三机数据交换采用串行通信方式,通信速率为8MHz。任务周期设定为100ms,周期开始时进行一次周期同步。开关量输出操作设置在任务执行的第80ms左右,输出前进行状态同步。该三模冗余容错计算机同步相关参数测量结果如表1所示。
表1主要同步参数测量结果
测量参数 | 测量值 |
状态同步精度 | <30ns |
时基同步精度 | <30ns |
同步时间开销 | <200ns |
开关量信号最大误差 | <32ns |
从表1可以看出,该三模冗余容错计算机的状态同步精度与时基同步精度均达到了30ns以下,这说明本发明给出的同步方法具有很好的三机同步精度。开关量信号输出的误差大于状态同步精度大约2ns,这部分误差是由于开关量输出程序执行过程中三机时钟漂移造成的新的积累误差。
与以往的同步方法相比,本发明给出的基于状态跟踪与锁定机制的同步方法,可以有效地提高三模冗余容错计算机的同步精度,在使用普通精度时钟振荡器(100ppm)的情况下,使三机的时基同步与状态同步精度达到30ns以下,同时不会给系统引入新的单点失效故障模式。该方法采用纯数字状态机实现方式,可以方便地利用CPLD/FPGA等先进器件实现低成本高可靠的工程实现,有利于构建一种标准化的嵌入式三模冗余容错计算机内核。
Claims (4)
1.一种三模冗余容错计算机精确同步的方法,其特征在于,在三个计算机模块的每个中嵌入一个完全相同的同步器,以实现三个计算机模块的状态同步、周期同步和时基同步,所述的同步器包括同步状态跟踪器及与该同步状态跟踪器相连的状态锁定器、时间片定时器和时基计数器,所述的同步状态跟踪器通过一组共享的同步信号线,采用双环状态机监视三个同步器的请求状态和时基计数器的工作状态,该双环状态机包括状态同步状态机和时基同步状态机,所述的状态同步状态机用于实现状态同步,该状态同步的方法包括:
(1)当需要进行状态同步时,计算机模块向同步器发出同步请求,启动同步状态跟踪器进入搜索;
(2)同步状态跟踪器启动后,送出本机的状态同步请求,并开始在共享同步信号线上搜索其他两个同步器的同步请求,利用状态锁定器使计算机模块进入一个维持状态;
(3)当搜索到来自任何一个同步器的同步请求后,立即转入跟踪搜索状态步骤(4),跟踪本机与已发出同步请求的同步器的请求状态,并继续搜索第三个同步器的同步请求;
(4)搜索到第三个同步器的同步请求后,转入步骤(5)的跟踪状态;若在规定的时间内未能搜索到第三个同步器的同步请求,则认为第三个计算机模块发生同步故障,也转入步骤(5)的跟踪状态;
(5)记录当前搜索结果,继续跟踪已有同步请求1个周期,若无异常情况转入步骤(6);如果已经搜索到的同步请求失效,则转入步骤(2)重新跟踪;
(6)解除状态锁定器的锁定状态,完成状态同步;
所述的时基同步状态机用于实现时基同步,该时基同步采用逐渐逼近的方法,假设每次同步消除的时间误差为N个时基同步状态机时钟周期,该时基同步的方法包括:
(1)时基计数器工作中,不断地通过同步状态跟踪器向其他同步器广播自身的工作状态,同步状态跟踪器在每次广播时基计数器工作状态的同时,启动时基跟踪;
(2)进行必要的状态延迟后,在共享同步信号线上搜索其他同步器送来的时基状态信号;
(3)根据其他同步器发送的时基状态的延迟时间,在本机时基计数器上插入N-1个或零个等待周期;
(4)如果其他同步器在规定的时钟周期内没有送出时基状态信号,则在本机的时基计数器中插入N个等待状态。
2.根据权利要求1所述的方法,其特征在于:在状态同步过程中,如果搜索到时基状态信号,同步状态跟踪器将状态同步过程锁定起来,立即启动时基同步状态机执行时基同步的状态跟踪。
3.根据权利要求1所述的方法,其特征在于:所述状态同步通过软件和硬件两个层次实现,当系统到达同步点时,首先由软件通过数据交换通路交换三个计算机模块的执行状态及同步信息,实现三个计算机模块的粗同步,然后,再启动同步器进行硬件同步,实现三个计算机模块的精确同步。
4.根据权利要求1所述的方法,其特征在于:所述周期同步的步骤包括:
(1)在状态同步过程中,将时间片定时器强制置零;
(2)状态同步结束后才允许时间片定时器开始计数;
(3)时间片定时器在其计数值达到规定值后,产生时间片中断请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910000651XA CN101441585B (zh) | 2009-01-13 | 2009-01-13 | 三模冗余容错计算机精确同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910000651XA CN101441585B (zh) | 2009-01-13 | 2009-01-13 | 三模冗余容错计算机精确同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101441585A CN101441585A (zh) | 2009-05-27 |
CN101441585B true CN101441585B (zh) | 2010-07-14 |
Family
ID=40726032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910000651XA Expired - Fee Related CN101441585B (zh) | 2009-01-13 | 2009-01-13 | 三模冗余容错计算机精确同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101441585B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610145B (zh) * | 2009-07-03 | 2013-08-07 | 中兴通讯股份有限公司 | 一种实现分布式系统的同步控制的方法和系统 |
CN102621938A (zh) * | 2011-01-28 | 2012-08-01 | 上海新华控制技术(集团)有限公司 | 过程控制中的三重冗余控制系统及其方法 |
CN102724083A (zh) * | 2012-05-25 | 2012-10-10 | 哈尔滨工程大学 | 基于软件同步的可降级三模冗余计算机系统 |
CN103473154B (zh) * | 2013-08-23 | 2015-08-19 | 北京控制工程研究所 | 一种三机热备份计算机的当班机确定系统 |
CN103473156B (zh) * | 2013-09-24 | 2015-07-08 | 北京控制工程研究所 | 一种基于实时操作系统的星载计算机三机热备份容错方法 |
CN106533601A (zh) * | 2016-10-27 | 2017-03-22 | 中国电子科技集团公司第三十二研究所 | 模块冗余系统中时钟同步的方法 |
CN106656396A (zh) * | 2017-01-16 | 2017-05-10 | 南京恩瑞特实业有限公司 | 车载系统中时钟同步方法 |
CN107894706B (zh) * | 2017-12-05 | 2021-04-06 | 山东航天电子技术研究所 | 一种基于fpga和cpu综合控制的星上时间管理系统 |
CN109951087B (zh) * | 2019-03-22 | 2020-08-18 | 中国长江电力股份有限公司 | 基于fpga和通信网络的智能整流桥高冗余度同步方法 |
CN110134554B (zh) * | 2019-05-21 | 2023-08-22 | 上海航天电子通讯设备研究所 | 同步和自检表决电路 |
US12019166B2 (en) | 2021-07-13 | 2024-06-25 | Orolia Usa Inc. | Multiple redundant disciplined oscillator systems in a spoofing resistant reference time source system and methods thereof |
-
2009
- 2009-01-13 CN CN200910000651XA patent/CN101441585B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101441585A (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101441585B (zh) | 三模冗余容错计算机精确同步的方法 | |
US20220012264A1 (en) | Pipelining Paxos State Machines | |
CN101931580B (zh) | Arinc 659背板数据总线接口芯片片上系统 | |
CN102111261B (zh) | 基于tdmow串行总线的分布录波器同步方法 | |
CN102361356B (zh) | 一种变电所测控装置遥信量测试系统及其测试方法 | |
CN102055544A (zh) | 电力系统二次设备时间同步监测系统及监测方法 | |
CN109656239B (zh) | 一种轨道机车网络控制系统故障诊断方法及其诊断装置 | |
CN103684734B (zh) | 一种热备份冗余计算机时间同步系统及方法 | |
CN102752065A (zh) | 一种时间同步方法及系统 | |
US6981063B1 (en) | Method for time synchronization of a computer network, and computer network with time synchronization | |
CN107239433A (zh) | 一种三冗余计算机同步方法 | |
CN102195769A (zh) | 一种用于汽车can网络的时钟同步方法 | |
CN101441586B (zh) | 基于微包协议的三模冗余容错计算机无缝重构方法 | |
CN100595716C (zh) | 分布式处理系统的时钟同步方法及装置 | |
CN103457716A (zh) | 多时源寻优时间同步装置 | |
CN104724145B (zh) | 一种列车测速测距系统 | |
CN110879549B (zh) | 一种基于交叉互比方法的余度测量架构及余度管理方法 | |
CN101694579B (zh) | Soe智能模件 | |
CN109241189A (zh) | 数据的存储方法、装置及设备 | |
CN106647228B (zh) | 一种换流站主时钟故障判断系统 | |
CN106774397A (zh) | 一种四余度飞行控制计算机同步方法 | |
CN110988599A (zh) | 配电故障指示器分布式录波高精度同步方法 | |
CN106814596B (zh) | 一种运载火箭控制系统半实物仿真试验地面设备时间同步方法 | |
CN103699103B (zh) | 分散控制系统中事件顺序记录的方法 | |
RU2279707C2 (ru) | Отказоустойчивое вычислительное устройство и способ функционирования подобного устройства |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100714 Termination date: 20180113 |