CN111538369B - 一种三模冗余计算机时钟同步方法及其系统 - Google Patents
一种三模冗余计算机时钟同步方法及其系统 Download PDFInfo
- Publication number
- CN111538369B CN111538369B CN202010306309.9A CN202010306309A CN111538369B CN 111538369 B CN111538369 B CN 111538369B CN 202010306309 A CN202010306309 A CN 202010306309A CN 111538369 B CN111538369 B CN 111538369B
- Authority
- CN
- China
- Prior art keywords
- clock
- mcu
- cpu
- value
- backup
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012937 correction Methods 0.000 claims description 59
- 230000009633 clock regulation Effects 0.000 claims description 58
- 230000001360 synchronised effect Effects 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 33
- 230000003993 interaction Effects 0.000 claims description 22
- 230000000737 periodic effect Effects 0.000 claims description 12
- 230000009977 dual effect Effects 0.000 claims description 9
- 238000012790 confirmation Methods 0.000 claims description 2
- 230000002452 interceptive effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000015654 memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开了一种三模冗余计算机时钟同步方法及其系统,其中,三模冗余计算机时钟同步系统包括三个CPU子模块和双冗余MCU时钟配置单元;三个CPU子模块之间通过三机数据交换/同步/表决通道两两连接;双冗余MCU时钟配置单元通过时钟反馈通道分别与三个CPU子模块连接;双冗余MCU时钟配置单元还通过I2C总线分别与三个CPU子模块连接。本申请具有通过时钟计数值反馈,直接对时钟输出值进行补偿调试,补偿精度高,以及内部采用冗余结构,实现了时钟同步系统内部无单点失效环节,可靠性高的技术效果。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种三模冗余计算机时钟同步方法及其系统。
背景技术
三模冗余计算技术是一种高可靠,带有容错功能的计算技术,即三个完全独立的计算机(central processing unit,CPU)子模块对一个输入对象同时执行相同运算和操作,将处理结果同时送入输出表决器,表决器以各CPU子模块多数相同的计算结果作为表决输出,通常称为三取二表决输出。该技术可以有效的消除单点故障,实现了计算机系统级容错。其应用领域为对可靠性和安全性要求高的航空、航天和工业控制等领域。为保证三模冗余计算机正确和可靠的运行,即CPU子模块在相同时刻执行相同操作,三机(三个CPU子模块)同步技术是其必须解决的核心关键问题,而要实现三机同步,首先要实现三机时钟系统的同步。因为时钟系统是为计算机提供最基本的时基信号,是保证三模冗余计算机同步运行的基础信号。
目前工程上普遍采用的三机时钟同步技术如下:
(1)公共时钟方案:为了保证三模冗余计算机时钟的同步性,系统采用统一公共的主时钟,利用时钟缓冲器分成三路后为三个CPU子模块提供时钟,因三个CPU子模块时钟同源,从而保证了三个CPU子模块时钟精确同步。公共时钟方案虽然很好的解决了各CPU子模块时钟同步问题,但公共时钟是系统的单故障点,对系统的可靠性是一种威胁。
(2)基于逻辑电路的时基同步方法:该方法是三个CPU子模块使用独立时钟,因独立时钟存在异步性,这种异步性随工作时间增长不断累积增大,当达到一定阈值时会使三机不能正常同步,为解决该问题,采用逻辑电路(一般情况下是现场可编程门阵列(FieldProgrammable Gate Array,FPGA)逻辑电路在固定时间周期(同步心跳)内对三机进行时钟交互表决,交互表决后使三机的同步心跳一致。该同步心跳作为各CPU子模块时基信号,以该时基信号周期性对三机运行同步握手,从而保证了三机运行的同步性。
基于逻辑电路的时基同步方法使用独立时钟,虽然有效的避免了公用时钟引起的共因失效,但该方法却存在如下缺点:
(1)同步精度依赖于交互表决后三机的统一同步心跳,因同步心跳产生交互表决需要完成时间,同步心跳的时钟周期很难做到和CPU子模块工作时钟量级相当,同步精度不高,一般情况下该方案比公共时钟方案同步精度低几个数量级。
(2)同步逻辑电路工作同样需要时钟驱动,同样存在时钟异步性,当三机同步逻辑电路的驱动时钟初始或运行时偏差较大时,可能产生三机无法同步故障。
发明内容
本申请的目的在于提供一种三模冗余计算机时钟同步方法及其系统,具有通过时钟计数值反馈,直接对时钟输出值进行补偿调试,补偿精度高,以及内部采用冗余结构,实现了时钟同步系统内部无单点失效环节,可靠性高的技术效果。
为达到上述目的,本申请提供一种三模冗余计算机时钟同步系统,包括三个CPU子模块和双冗余MCU时钟配置单元;三个CPU子模块之间通过三机数据交换/同步/表决通道两两连接;双冗余MCU时钟配置单元通过时钟反馈通道分别与三个CPU子模块连接;双冗余MCU时钟配置单元还通过I2C总线分别与三个CPU子模块连接;其中,双冗余MCU时钟配置单元:用于接收三个CPU子模块反馈的时间差值或计数差值;对时间差值或计数差值进行计算,获得工作时钟补偿修正寄存器值或时钟调节数值,并将获得的工作时钟补偿修正寄存器值或时钟调节数值发送至相应的CPU子模块。
如上的,其中,每个CPU子模块均包括:CPU处理单元、FPGA逻辑电路、CPU时钟以及逻辑电路时钟;CPU处理单元分别与FPGA逻辑电路和CPU时钟连接;FPGA逻辑电路还与逻辑电路时钟连接;CPU时钟通过I2C总线与双冗余MCU时钟配置单元连接;逻辑电路时钟通过I2C总线与双冗余MCU时钟配置单元连接。
如上的,其中,双冗余MCU时钟配置单元包括:主份MCU和备份MCU;主份MCU包括主份I2C控制器;备份MCU包括备份I2C控制器;主份I2C控制器通过I2C接口与I2C总线连接;备份I2C控制器通过I2C接口与I2C总线连接;主份MCU与备份MCU之间具有数据交互通道。
本申请还提供一种三模冗余计算机时钟同步方法,包括:接收所有的时间差值;对每个时间差值进行计算,从而获得相应的工作时钟补偿修正寄存器值,并将该工作时钟补偿修正寄存器值反馈至相应的逻辑电路时钟完成时基同步,并将完成时基同步后的周期中断信号作为时间准源;接收根据时间准源执行CPU处理单元时钟同步获得的计数差值;对每个计数差值进行计算,获得相应的时钟调节数值,并将该时钟调节数值反馈至相应的CPU时钟,从而完成CPU处理单元时钟同步。
如上的,其中,获取时间差值的子步骤如下:预先设置一个周期中断信号;同时复位,并开始计数至计数到达预先设置的周期中断信号;当计数到达预先设置的周期中断信号时,分别将自身的到达后周期中断信号发送给另两个CPU子模块;接收到另外两个CPU子模块发送的到达后周期中断信号后,在本机中对所有到达后周期中断信号进行处理,从而获得同步周期中断信号;利用本机产生的到达后周期中断信号与同步周期中断信号进行计算,获取时间差值,并将时间差值发送至双冗余MCU时钟配置单元。
如上的,其中,对每个时间差值进行计算,从而获得相应的工作时钟补偿修正寄存器值,并将该工作时钟补偿修正寄存器值反馈至相应的逻辑电路时钟完成时基同步配置的子步骤如下:由自身内部的主份MCU和备份MCU同时对接收到的时间差值进行计算,并分别获得主份寄存器值和备份寄存器值;主份MCU和备份MCU彼此对主份寄存器值和备份寄存器值进行数据交互;完成数据交互后,主份MCU和备份MCU均对主份寄存器值和备份寄存器值进行比对处理,并获得比对结果,若比对结果为比对正确,则主份MCU和备份MCU分别将主份寄存器值和备份寄存器值作为工作时钟补偿修正寄存器值存储于自身的配置信息缓存区内;完成存储后,主份MCU将工作时钟补偿修正寄存器值发送至需要配置的逻辑电路时钟,并向备份MCU发送配置完成信号;备份MCU接收到配置完成信号后,对需要配置的逻辑电路时钟进行读取,并判断需要配置的逻辑电路时钟的工作时钟补偿修正寄存器值是否与自身存储的工作时钟补偿修正寄存器值相同,若相同,则向主份MCU反馈校对正确信号,完成时基同步,并通知各CPU子模块时基同步配置完成,可启动下次同步配置。
如上的,其中,根据时间准源执行CPU处理单元时钟同步获得的计数差值的子步骤如下:根据时间准源启动计数和停止计数,当停止计数时,将自身的时钟计数值分别发送至另外两个CPU子模块;接收到另外两个CPU子模块发送的时钟计数值后,在本机中对所有的时钟计数值进行处理,获得基准时钟计数器值;利用基准时钟计数器值与本机产生的时钟计数值进行计算,获得计数差值,并将计数差值发送至双冗余MCU时钟配置单元。
如上的,其中,如果CPU子模块输出的计数差值为零,则表示本机输出的时钟计数值等于基准时钟计数器值,无需对本机的CPU时钟进行调整;如果CPU子模块输出的计数差值为正,则表示本机的CPU时钟较快,需要将本机的CPU时钟调慢;如果CPU子模块输出的计数差值为负,则表示本机的CPU时钟较慢,需要将本机的CPU时钟调快。
如上的,其中,对每个计数差值进行计算,获得相应的时钟调节数值,并将该时钟调节数值反馈至相应的CPU时钟,从而完成CPU处理单元时钟同步配置的子步骤如下:由自身内部的主份MCU和备份MCU同时对接收到的计数差值进行计算,并分别获得主份时钟调节数值和备份时钟调节数值;主份MCU和备份MCU彼此对主份时钟调节数值和备份时钟调节数值进行数据交互;完成数据交互后,主份MCU和备份MCU均对主份时钟调节数值和备份时钟调节数值进行比对处理,并获得比对结果,若比对结果为比对正确,则主份MCU和备份MCU分别将主份时钟调节数值和备份时钟调节数值作为时钟调节数值存储于自身的配置信息缓存区内;完成存储后,主份MCU将时钟调节数值发送至需要配置的CPU时钟,并向备份MCU发送配置完成信号;备份MCU接收到配置完成信号后,对需要配置的CPU时钟进行读取,并判断需要配置的CPU时钟的时钟调节数值是否与自身存储的时钟调节数值相同,若相同,则向主份MCU反馈校对正确信号,完成CPU处理单元同步配置,并通知各CPU子模块CPU处理单元同步配置完成,可启动下次同步配置。
如上的,其中,当时基同步配置或CPU处理单元同步配置环节出现故障时,需要进行再确认,若确认后故障仍然存在,则启动主份MCU和备份MCU自检;若自检结果为存在一个MCU故障且不可修复,则停止主份MCU和备份MCU之间的数据交互,并双冗余MCU时钟配置单元将切换为单机运行模式。
本申请实现的有益效果如下:
(1)本申请的三模冗余计算机时钟同步方法及其系统通过对三机时钟进行两层交互表决,根据表决结果计算三机时钟异步度动态调整硬件时钟,使其精确同步,整个过程形成了CPU模块时钟调节闭环反馈控制系统。
(2)本申请的三模冗余计算机时钟同步系统通过采用独立时钟,双MCU冗余热备份时钟配置单元,消除了单点故障环节,实现了整个CPU时钟同步系统的全部件冗余,为三模冗余计算机实现高速、高精度计算提供了一种高可靠性,高精度的时钟同步解决方案,具有较高的实用价值。
(3)本申请的三模冗余计算机时钟同步方法在补偿过程中,通过时钟计数值反馈,直接对时钟输出值进行补偿调试,补偿精度可达时钟量级,补偿精度高。
(4)本申请的三模冗余计算机时钟同步方法通过灵活时钟配置,解决了因异步时钟随时间漂移引起同步可靠性降低的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为三模冗余计算机时钟同步系统一种实施例的结构示意图;
图2为三模冗余计算机时钟同步方法一种实施例的结构示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供一种三模冗余计算机时钟同步方法及其系统,具有通过时钟计数值反馈,直接对时钟输出值进行补偿调试,补偿精度高,以及内部采用冗余结构,实现了时钟同步系统内部无单点失效环节,可靠性高的技术效果。
如图1所示,本申请提供一种三模冗余计算机时钟同步系统,包括三个CPU子模块1和双冗余MCU时钟配置单元2;三个CPU子模块1之间通过三机数据交换/同步/表决通道两两连接;双冗余MCU(Microcontroller Unit,微控制单元)时钟配置单元通过时钟反馈通道分别与三个CPU子模块1连接;双冗余MCU时钟配置单元2还通过I2C总线分别与三个CPU子模块1连接;其中,双冗余MCU时钟配置单元2:用于接收三个CPU子模块1反馈的时间差值或计数差值;对时间差值或计数差值进行计算,获得工作时钟补偿修正寄存器值或时钟调节数值,并将获得的工作时钟补偿修正寄存器值或时钟调节数值发送至相应的CPU子模块1。
进一步的,每个CPU子模块1均包括:CPU处理单元、FPGA逻辑电路、CPU时钟以及逻辑电路时钟;CPU处理单元分别与FPGA逻辑电路和CPU时钟连接;FPGA逻辑电路还与逻辑电路时钟连接;CPU时钟通过I2C总线与双冗余MCU时钟配置单元连接;逻辑电路时钟通过I2C总线与双冗余MCU时钟配置单元2连接。
具体的,CPU时钟具有I2C接口;逻辑电路时钟具有I2C接口。CPU时钟通过I2C接口与I2C总线连接;逻辑电路时钟通过I2C接口与I2C总线连接。
进一步的,双冗余MCU时钟配置单元2包括:主份MCU和备份MCU;主份MCU包括主份I2C控制器;备份MCU包括备份I2C控制器;主份I2C控制器通过I2C接口与I2C总线连接;备份I2C控制器通过I2C接口与I2C总线连接;主份MCU与备份MCU之间具有数据交互通道,该数据交互通道用于信息交互。
具体的,将双冗余MCU时钟配置单元2设置为双MCU冗余热备份的电路结构。其中,主份MCU和备份MCU与时钟反馈通道采用并联方式连接,主份MCU和备份MCU共同接收CPU子模块发送的数据(该数据为时间差值或计数差值);双冗余MCU时钟配置单元2的数据输出端采用输出数据总线切换方式,只允许其中一个MCU的数据输出,例如:若主份MCU无故障时,则由主份MCU的数据输出;若主份MCU故障,则切换为备份MCU的数据输出。有利于保证本时钟同步实现方法的可靠性,消除单点失效环节。
进一步的,主份MCU和备份MCU的内存中均具有配置信息缓存区,用于存储每个时钟模块配置信息。其中,时钟配置信息包括:工作时钟补偿修正寄存器值和时钟调节数值。
如图2所示,本申请提供一种三模冗余计算机时钟同步方法,包括:
S1:接收所有的时间差值。
具体的,双冗余MCU时钟配置单元通过时钟反馈通道接收三个CPU子模块发送的时间差值,执行S2。其中,主份MCU和备份MCU同时接收时间差值。
进一步的,获取时间差值的子步骤如下:
S110:预先设置一个周期中断信号。
具体的,三个CPU子模块分别在各自的FPGA逻辑电路中预先设置一个周期中断信号,并执行S120。
其中,本申请以周期中断信号为20ms为例进行说明,但不仅限于周期中断信号为20ms,则三个CPU子模块分别在各自的FPGA逻辑电路中预先设置的周期中断信号为20ms,即CPU1时钟、CPU2时钟和CPU3时钟的周期中断信号相同,逻辑电路1时钟、逻辑电路2时钟和逻辑电路3时钟的时钟频率值相等,由于时钟电路存在固有初始偏差、温度环境变化引起的时钟温度误差和长时间存放引起的时钟漂移误差等误差,时钟初始值不可能完全相等,需进行时钟误差测量,根据时钟误差测量反馈值修正时钟频率,从而保证各时钟误差在时钟同步要求的误差范围内。
S120:同时复位,并开始计数至计数到达预先设置的周期中断信号。
具体的,三个CPU子模块使各自的逻辑电路时钟同时复位,并开始计数至计数到达预先设置的周期中断信号,即直到计数到达20ms计数时刻时,执行S130。
S130:当计数到达预先设置的周期中断信号时,分别将自身的到达后周期中断信号发送给另两个CPU子模块。
具体的,每个CPU子模块均通过三机数据交换/同步/表决通道将自身的到达后周期中断信号分别发送给另外两个CPU子模块。
S140:接收到另外两个CPU子模块发送的到达后周期中断信号后,在本机中对所有到达后周期中断信号进行处理,从而获得同步周期中断信号。
具体的,每个CPU子模块接收到另外两个CPU子模块发送的到达后周期中断信号后,在本机的FPGA逻辑电路中利用本机产生的到达后周期中断信号和接收到的两个到达后周期中断信号进行三取二交互表决,交互表决后产生一个同步周期中断信号,该同步周期中断信号为20ms。
S150:利用本机产生的到达后周期中断信号与同步周期中断信号进行计算,获取时间差值,并将时间差值发送至双冗余MCU时钟配置单元。
具体的,每个CPU子模块中获得同步中断信号后,在本机中对本机产生的到达后周期中断信号和同步周期中断信号进行计算,从而获取到本机产生的到达后周期中断信号与同步周期中断信号之间的差值,并将该差值作为时间差值。每个CPU子模块获取到时间差值后,通过时钟反馈通道将该时间差值发送至双冗余MCU时钟配置单元,执行S2。
进一步的,如果CPU子模块本机产生的到达后周期中断信号与同步周期中断信号的时间差值为零,则表示两个信号同步,无需对本机的逻辑电路时钟进行调整;如果CPU子模块获取的时间差值为正,则表示本机的逻辑电路时钟较慢,需将本机的逻辑电路时钟调快;如果CPU子模块获取的时间差值为负,则表示本机的逻辑电路时钟较快,需将本机的逻辑电路时钟调慢。
S2:对每个时间差值进行计算,从而获得相应的工作时钟补偿修正寄存器值,并将该工作时钟补偿修正寄存器值反馈至相应的逻辑电路时钟完成时基同步,并将完成时基同步后的周期中断信号作为时间准源。
具体的,逻辑电路时钟需要调节的具体数值即为工作时钟补偿修正寄存器值。双冗余MCU时钟配置单元接收到所有的时间差值后,对每个时间差值进行计算,从而获得相应的工作时钟补偿修正寄存器值,并通过I2C总线将工作时钟补偿修正寄存器值发送至相应的逻辑电路时钟内,重复步骤S1进行时基同步,直到各个CPU子模块的FPGA逻辑电路自身产生的达到后周期中断信号与同步周期中断信号的时间差值均为零,且各CPU子模块的逻辑电路时钟偏差均在一个时钟周期范围内为止,即完成时基同步,并将完成时基同步后的周期中断信号作为时间准源,并执行S3。其中,时间准源用于为所有的CPU时钟的时钟计数器提供开启和停止信号。
进一步的,对每个时间差值进行计算,从而获得相应的工作时钟补偿修正寄存器值,并将该工作时钟补偿修正寄存器值反馈至相应的逻辑电路时钟完成时基同步配置的子步骤如下:
T1:由自身内部的主份MCU和备份MCU同时对接收到的时间差值进行计算,并分别获得主份寄存器值和备份寄存器值。
具体的,双冗余MCU时钟配置单元由自身内部的主份MCU和备份MCU同时对接收到的时间差值进行计算,并分别获得主份寄存器值和备份寄存器值。
T2:主份MCU和备份MCU彼此对主份寄存器值和备份寄存器值进行数据交互。
具体的,主份MCU将主份寄存器值发送至备份MCU;备份MCU将备份寄存器值发送至主份MCU。
T3:完成数据交互后,主份MCU和备份MCU均对主份寄存器值和备份寄存器值进行比对处理,并获得比对结果,若比对结果为比对正确,则主份MCU和备份MCU分别将主份寄存器值和备份寄存器值作为工作时钟补偿修正寄存器值存储于自身的配置信息缓存区内。
T4:完成存储后,主份MCU将工作时钟补偿修正寄存器值发送至需要配置的逻辑电路时钟,并向备份MCU发送配置完成信号。
具体的,主份MCU通过I2C总线将工作时钟补偿修正寄存器值发送至需要配置的逻辑电路时钟。
T5:备份MCU接收到配置完成信号后,对需要配置的逻辑电路时钟进行读取,并判断需要配置的逻辑电路时钟的工作时钟补偿修正寄存器值是否与自身存储的工作时钟补偿修正寄存器值相同,若相同,则向主份MCU反馈校对正确信号,完成时基同步,并通知各CPU子模块时基同步配置完成,可启动下次同步配置。
具体的,备份MCU通过I2C总线读取需要配置的逻辑电路时钟的工作时钟补偿修正寄存器值。
S3:接收根据时间准源执行CPU处理单元时钟同步获得的计数差值。
进一步的,根据时间准源执行CPU处理单元时钟同步获得的计数差值的子步骤如下:
S310:根据时间准源启动计数和停止计数,当停止计数时,将自身的时钟计数值分别发送至另外两个CPU子模块。
具体的,三个CPU时钟根据时间准源同时清零并启动计数,并同时停止计数。当各CPU子模块中的CPU时钟停止计数时,各CPU子模块通过三机数据交换/同步/表决通道将自身的时钟计数值分别发送至另外两个CPU子模块,并执行S320。
S320:接收到另外两个CPU子模块发送的时钟计数值后,在本机中对所有的时钟计数值进行处理,获得基准时钟计数器值。
具体的,每个CPU子模块接收到另外两个CPU子模块发送的时钟计数值后,在本机中将接收到的两个时钟计数值与自身产生的时钟计数器值进行排列比较。排列比较后,取数值位于中间位置的时钟计数值作为基准时钟计数器值,并执行S330。
S330:利用基准时钟计数器值与本机产生的时钟计数值进行计算,获得计数差值,并将计数差值发送至双冗余MCU时钟配置单元。
具体的,每个CPU子模块在本机中对基准时钟计数值和本机产生的时钟计数值进行计算,从而输出基准时钟计数值与本机产生的时钟计数值之间的差值作为计数差值,并通过时钟反馈通道将该计数差值发送至双冗余MCU时钟配置单元,执行S4。
进一步的,如果CPU子模块输出的计数差值为零,则表示本机输出的时钟计数值等于基准时钟计数器值,无需对本机的CPU时钟进行调整;如果CPU子模块输出的计数差值为正,则表示本机的CPU时钟较快,需要将本机的CPU时钟调慢;如果CPU子模块输出的计数差值为负,则表示本机的CPU时钟较慢,需要将本机的CPU时钟调快。
S4:对每个计数差值进行计算,获得相应的时钟调节数值,并将该时钟调节数值反馈至相应的CPU时钟,从而完成CPU处理单元时钟同步。
具体的,CPU时钟需要调节的具体数值即为时钟调节数值。双冗余MCU时钟配置单元接收到所有的计数差值后,对每个计数差值进行计算,从而获得相应的时钟调节数值,并通过I2C总线将时钟调节数值发送至相应的CPU时钟内,重复步骤S3进行CPU处理单元时钟同步,直到各个CPU子模块的CPU时钟的时钟计数值交互后无偏差为止,即完成CPU处理单元时钟同步。该CPU处理单元时钟同步方法利用了时钟计数反馈,直接调节CPU处理单元的CPU时钟的频率,其同步精度可达时钟量级。
进一步的,对每个计数差值进行计算,获得相应的时钟调节数值,并将该时钟调节数值反馈至相应的CPU时钟,从而完成CPU处理单元时钟同步配置的子步骤如下:
F1:由自身内部的主份MCU和备份MCU同时对接收到的计数差值进行计算,并分别获得主份时钟调节数值和备份时钟调节数值。
具体的,双冗余MCU时钟配置单元由自身内部的主份MCU和备份MCU同时对接收到的计数差值进行计算,并分别获得主份时钟调节数值和备份时钟调节数值。
F2:主份MCU和备份MCU彼此对主份时钟调节数值和备份时钟调节数值进行数据交互。
具体的,主份MCU将主份时钟调节数值发送至备份MCU;备份MCU将备份时钟调节数值发送至主份MCU。
F3:完成数据交互后,主份MCU和备份MCU均对主份时钟调节数值和备份时钟调节数值进行比对处理,并获得比对结果,若比对结果为比对正确,则主份MCU和备份MCU分别将主份时钟调节数值和备份时钟调节数值作为时钟调节数值存储于自身的配置信息缓存区内。
F4:完成存储后,主份MCU将时钟调节数值发送至需要配置的CPU时钟,并向备份MCU发送配置完成信号。
具体的,主份MCU通过I2C总线将时钟调节数值发送至需要配置的CPU时钟。
F5:备份MCU接收到配置完成信号后,对需要配置的CPU时钟进行读取,并判断需要配置的CPU时钟的时钟调节数值是否与自身存储的时钟调节数值相同,若相同,则向主份MCU反馈校对正确信号,完成CPU处理单元同步配置,并通知各CPU子模块CPU处理单元同步配置完成,可启动下次同步配置。
具体的,备份MCU通过I2C总线读取需要配置的CPU时钟的时钟调节数值。
进一步的,当时基同步配置或CPU处理单元同步配置环节出现故障时,需要进行再确认,若确认后故障仍然存在,则启动主份MCU和备份MCU自检;若自检结果为存在一个MCU故障且不可修复,则停止主份MCU和备份MCU之间的数据交互,并双冗余MCU时钟配置单元将切换为单机运行模式。
具体的,作为一个实施例,若自检结果为备份MCU发生故障,则由主份MCU单机运行完成配置的相关功能。
当故障发生在数据交互对比环节时,主份MCU将以自身计算的时钟补偿修正寄存器值或时钟调节数值为准,将其存入自身的配置信息缓存区,继续完成时钟配置功能,并接替备份MCU完成通过I2C总线读取逻辑电路时钟的时钟补偿修正寄存器值或CPU时钟的时钟调节数值,与主份MCU本地配置信息缓冲区中的时钟补偿修正寄存器值或时钟调节数值进行对比,若对比正确,通知各CPU子模块配置完成,目前是单主份MCU运行,可启动下次同步配置。
当故障发生在备份MCU读取时钟补偿修正寄存器值或时钟调节数值进行对比环节时,主份MCU将直接替代备份MCU完成通过I2C总线读取时钟补偿修正寄存器值或时钟调节数值与主份MCU本地配置信息缓冲区的时钟补偿修正寄存器值或时钟调节数值进行对比,若对比正确,则通知各CPU子模块配置完成,目前是单主MCU运行,可启动下次同步配置。
具体的,作为另一个实施例,若自检结果为主份MCU发生故障,则将原主份MCU停止工作,并将备份MCU切换为新主份MCU,由新主份MCU单机运行。
当故障发生在数据交互对比环节时,新主份MCU单机以自身计算的时钟补偿修正寄存器值或时钟调节数值为准,将其存入自身的配置信息缓冲区,接替原主份MCU完成时钟配置功能,通过I2C总线读取时钟补偿修正寄存器值或时钟调节数值与本地配置信息缓冲区的时钟补偿修正寄存器值或时钟调节数值进行对比,对比正确后,通知各CPU子模块配置完成,目前是由原备份MCU单机运行,可启动下次同步配置。
当数据异常发生在备份MCU读取时钟补偿修正寄存器值或时钟调节数值进行对比环节时,新主份MCU单机重新通过I2C进行时钟补偿修正寄存器值或时钟调节数值的配置,配置值以新主份MCU配置信息缓冲区的时钟补偿修正寄存器值或时钟调节数值为准,配置完成后读取时钟补偿修正寄存器值或时钟调节数值与本地配置信息缓冲区的时钟补偿修正寄存器值或时钟调节数值进行对比,对比正确后,通知各CPU子模块配置完成,目前是由原备份MCU单机运行,可启动下次同步配置。
主份MCU和备份MCU可对时钟配置信息进行互相校对,在单MCU失效时,可切换成单MCU运行模式,不影响时钟配置MCU单元正常工作,并有效的保证了配置功能的正常工作。
本申请实现的有益效果如下:
(1)本申请的三模冗余计算机时钟同步方法及其系统通过对三机时钟进行两层交互表决,根据表决结果计算三机时钟异步度动态调整硬件时钟,使其精确同步,整个过程形成了CPU模块时钟调节闭环反馈控制系统。
(2)本申请的三模冗余计算机时钟同步系统通过采用独立时钟,双MCU冗余热备份时钟配置单元,消除了单点故障环节,实现了整个CPU时钟同步系统的全部件冗余,为三模冗余计算机实现高速、高精度计算提供了一种高可靠性,高精度的时钟同步解决方案,具有较高的实用价值。
(3)本申请的三模冗余计算机时钟同步方法在补偿过程中,通过时钟计数值反馈,直接对时钟输出值进行补偿调试,补偿精度可达时钟量级,补偿精度高。
(4)本申请的三模冗余计算机时钟同步方法通过灵活时钟配置,解决了因异步时钟随时间漂移引起同步可靠性降低的问题。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,本申请的保护范围意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请保护范围及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种三模冗余计算机时钟同步系统,其特征在于,包括三个CPU子模块和双冗余MCU时钟配置单元;所述三个CPU子模块之间通过三机数据交换/同步/表决通道两两连接;所述双冗余MCU时钟配置单元通过时钟反馈通道分别与三个CPU子模块连接;所述双冗余MCU时钟配置单元还通过I2C总线分别与三个CPU子模块连接;
其中,所述双冗余MCU时钟配置单元:用于接收三个CPU子模块反馈的时间差值或计数差值;对时间差值或计数差值进行计算,获得工作时钟补偿修正寄存器值或时钟调节数值,并将获得的工作时钟补偿修正寄存器值或时钟调节数值发送至相应的CPU子模块。
2.根据权利要求1所述的三模冗余计算机时钟同步系统,其特征在于,每个CPU子模块均包括:CPU处理单元、FPGA逻辑电路、CPU时钟以及逻辑电路时钟;CPU处理单元分别与FPGA逻辑电路和CPU时钟连接;FPGA逻辑电路还与逻辑电路时钟连接;CPU时钟通过I2C总线与双冗余MCU时钟配置单元连接;逻辑电路时钟通过I2C总线与双冗余MCU时钟配置单元连接。
3.根据权利要求1所述的三模冗余计算机时钟同步系统,其特征在于,双冗余MCU时钟配置单元包括:主份MCU和备份MCU;主份MCU包括主份I2C控制器;备份MCU包括备份I2C控制器;主份I2C控制器通过I2C接口与I2C总线连接;备份I2C控制器通过I2C接口与I2C总线连接;主份MCU与备份MCU之间具有数据交互通道。
4.一种三模冗余计算机时钟同步方法,其特征在于,包括:
接收三个CPU子模块反馈的所有的时间差值;
对每个时间差值进行计算,从而获得相应的工作时钟补偿修正寄存器值,并将该工作时钟补偿修正寄存器值反馈至相应的逻辑电路时钟完成时基同步,并将完成时基同步后的周期中断信号作为时间准源;
接收根据时间准源执行CPU处理单元时钟同步获得的计数差值;
对每个计数差值进行计算,获得相应的时钟调节数值,并将该时钟调节数值反馈至相应的CPU时钟,从而完成CPU处理单元时钟同步。
5.根据权利要求4所述的三模冗余计算机时钟同步方法,其特征在于,获取时间差值的子步骤如下:
预先设置一个周期中断信号;
同时复位,并开始计数至计数到达预先设置的周期中断信号;
当计数到达预先设置的周期中断信号时,分别将自身的到达后周期中断信号发送给另两个CPU子模块;
接收到另外两个CPU子模块发送的到达后周期中断信号后,在本机中对所有到达后周期中断信号进行处理,从而获得同步周期中断信号;
利用本机产生的到达后周期中断信号与同步周期中断信号进行计算,获取时间差值,并将时间差值发送至双冗余MCU时钟配置单元。
6.根据权利要求4所述的三模冗余计算机时钟同步方法,其特征在于,对每个时间差值进行计算,从而获得相应的工作时钟补偿修正寄存器值,并将该工作时钟补偿修正寄存器值反馈至相应的逻辑电路时钟完成时基同步配置的子步骤如下:
由自身内部的主份MCU和备份MCU同时对接收到的时间差值进行计算,并分别获得主份寄存器值和备份寄存器值;
主份MCU和备份MCU彼此对主份寄存器值和备份寄存器值进行数据交互;
完成数据交互后,主份MCU和备份MCU均对主份寄存器值和备份寄存器值进行比对处理,并获得比对结果,若比对结果为比对正确,则主份MCU和备份MCU分别将主份寄存器值和备份寄存器值作为工作时钟补偿修正寄存器值存储于自身的配置信息缓存区内;
完成存储后,主份MCU将工作时钟补偿修正寄存器值发送至需要配置的逻辑电路时钟,并向备份MCU发送配置完成信号;
备份MCU接收到配置完成信号后,对需要配置的逻辑电路时钟进行读取,并判断需要配置的逻辑电路时钟的工作时钟补偿修正寄存器值是否与自身存储的工作时钟补偿修正寄存器值相同,若相同,则向主份MCU反馈校对正确信号,完成时基同步,并通知各CPU子模块时基同步配置完成,可启动下次同步配置。
7.根据权利要求4所述的三模冗余计算机时钟同步方法,其特征在于,根据时间准源执行CPU处理单元时钟同步获得的计数差值的子步骤如下:
根据时间准源启动计数和停止计数,当停止计数时,将自身的时钟计数值分别发送至另外两个CPU子模块;
接收到另外两个CPU子模块发送的时钟计数值后,在本机中对所有的时钟计数值进行处理,获得基准时钟计数器值;
利用基准时钟计数器值与本机产生的时钟计数值进行计算,获得计数差值,并将计数差值发送至双冗余MCU时钟配置单元。
8.根据权利要求7所述的三模冗余计算机时钟同步方法,其特征在于,如果CPU子模块输出的计数差值为零,则表示本机输出的时钟计数值等于基准时钟计数器值,无需对本机的CPU时钟进行调整;如果CPU子模块输出的计数差值为正,则表示本机的CPU时钟较快,需要将本机的CPU时钟调慢;如果CPU子模块输出的计数差值为负,则表示本机的CPU时钟较慢,需要将本机的CPU时钟调快。
9.根据权利要求6所述的三模冗余计算机时钟同步方法,其特征在于,对每个计数差值进行计算,获得相应的时钟调节数值,并将该时钟调节数值反馈至相应的CPU时钟,从而完成CPU处理单元时钟同步配置的子步骤如下:
由自身内部的主份MCU和备份MCU同时对接收到的计数差值进行计算,并分别获得主份时钟调节数值和备份时钟调节数值;
主份MCU和备份MCU彼此对主份时钟调节数值和备份时钟调节数值进行数据交互;
完成数据交互后,主份MCU和备份MCU均对主份时钟调节数值和备份时钟调节数值进行比对处理,并获得比对结果,若比对结果为比对正确,则主份MCU和备份MCU分别将主份时钟调节数值和备份时钟调节数值作为时钟调节数值存储于自身的配置信息缓存区内;
完成存储后,主份MCU将时钟调节数值发送至需要配置的CPU时钟,并向备份MCU发送配置完成信号;
备份MCU接收到配置完成信号后,对需要配置的CPU时钟进行读取,并判断需要配置的CPU时钟的时钟调节数值是否与自身存储的时钟调节数值相同,若相同,则向主份MCU反馈校对正确信号,完成CPU处理单元同步配置,并通知各CPU子模块CPU处理单元同步配置完成,可启动下次同步配置。
10.根据权利要求6或9所述的三模冗余计算机时钟同步方法,其特征在于,当时基同步配置或CPU处理单元同步配置环节出现故障时,需要进行再确认,若确认后故障仍然存在,则启动主份MCU和备份MCU自检;若自检结果为存在一个MCU故障且不可修复,则停止主份MCU和备份MCU之间的数据交互,并双冗余MCU时钟配置单元将切换为单机运行模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010306309.9A CN111538369B (zh) | 2020-04-17 | 2020-04-17 | 一种三模冗余计算机时钟同步方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010306309.9A CN111538369B (zh) | 2020-04-17 | 2020-04-17 | 一种三模冗余计算机时钟同步方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538369A CN111538369A (zh) | 2020-08-14 |
CN111538369B true CN111538369B (zh) | 2021-09-24 |
Family
ID=71976783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010306309.9A Active CN111538369B (zh) | 2020-04-17 | 2020-04-17 | 一种三模冗余计算机时钟同步方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538369B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162820A (zh) * | 2020-09-23 | 2021-01-01 | 广州六环信息科技有限公司 | 计时器的计时方法和装置 |
CN112328002A (zh) * | 2020-10-27 | 2021-02-05 | 许继集团有限公司 | 一种继电保护装置多板卡时间同步方法及系统 |
CN112506701B (zh) * | 2020-12-02 | 2022-01-21 | 广东电网有限责任公司佛山供电局 | 一种基于三模lockstep的多处理器芯片错误恢复方法 |
CN112462717B (zh) * | 2020-12-03 | 2021-11-30 | 摩通传动与控制(深圳)有限公司 | 一种基于EtherCAT的高精度多轴时钟同步方法 |
CN112671498B (zh) * | 2020-12-30 | 2025-02-11 | 北京龙鼎源科技股份有限公司 | 信号同步的方法和系统 |
CN113132045A (zh) * | 2021-03-25 | 2021-07-16 | 井芯微电子技术(天津)有限公司 | 冗余系统的时钟同步方法、冗余系统及网络系统 |
CN113190082B (zh) * | 2021-05-27 | 2023-02-07 | 上海航天计算机技术研究所 | 三冗余计算机时钟中断检测和同步方法及计算机系统 |
CN114115005B (zh) * | 2021-11-12 | 2024-05-03 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于三cpu冗余架构的飞行控制任务同步系统及方法 |
CN114385757B (zh) * | 2022-01-12 | 2024-05-17 | 北京中科宇航技术有限公司 | 一种三模冗余计算机软件数据同步方法 |
CN115757267A (zh) * | 2022-07-29 | 2023-03-07 | 苏州联讯仪器有限公司 | 协同工作方法、系统、电子设备及计算机可读存储介质 |
CN115632754B (zh) * | 2022-10-24 | 2025-01-21 | 国核自仪系统工程有限公司 | 三模冗余时钟同步设备、方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845060A (en) * | 1993-03-02 | 1998-12-01 | Tandem Computers, Incorporated | High-performance fault tolerant computer system with clock length synchronization of loosely coupled processors |
CN102508745A (zh) * | 2011-10-21 | 2012-06-20 | 上海交通大学 | 一种基于两级松散同步的三模冗余系统及其实现方法 |
CN103049038A (zh) * | 2011-10-17 | 2013-04-17 | 卡斯柯信号有限公司 | 用于三取二安全系统的硬件时钟同步电路 |
CN103389914A (zh) * | 2013-07-03 | 2013-11-13 | 浙江大学 | 基于时钟同步技术的星载三模冗余系统 |
CN110855396A (zh) * | 2019-11-27 | 2020-02-28 | 北京计算机技术及应用研究所 | 一种基于以太网和秒脉冲的高精度双冗余时间同步系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4683570A (en) * | 1985-09-03 | 1987-07-28 | General Electric Company | Self-checking digital fault detector for modular redundant real time clock |
CN201540565U (zh) * | 2009-12-04 | 2010-08-04 | 北京航天自动控制研究所 | 一种三机同步的中断实现电路 |
US8791718B2 (en) * | 2011-06-02 | 2014-07-29 | Arizona Board Of Regents For And On Behalf Of Arizona State University | Sequential state elements in triple-mode redundant (TMR) state machines |
CN103326716B (zh) * | 2013-07-11 | 2016-06-15 | 杭州和利时自动化有限公司 | 一种时钟同步系统 |
CN103605303B (zh) * | 2013-10-31 | 2016-06-01 | 杭州电子科技大学 | 一种带冗余检测的注塑机数字io转接线盒 |
DE102016104767B4 (de) * | 2016-03-15 | 2017-10-12 | Pilz Gmbh & Co. Kg | Vorrichtung und Verfahren zum Steuern einer automatisierten Anlage |
CN106533601A (zh) * | 2016-10-27 | 2017-03-22 | 中国电子科技集团公司第三十二研究所 | 模块冗余系统中时钟同步的方法 |
CN106774635B (zh) * | 2016-12-05 | 2019-11-29 | 上海航天控制技术研究所 | 一种三冗余计算机同步方法 |
CN107505883B (zh) * | 2017-07-31 | 2020-05-19 | 北京航天自动控制研究所 | 一种基于微控制器的高可靠双冗余集成控制模块 |
CN110958073B (zh) * | 2019-11-06 | 2021-07-09 | 上海航天控制技术研究所 | 一种基于三套1553b总线冗余的时间同步表决方法 |
-
2020
- 2020-04-17 CN CN202010306309.9A patent/CN111538369B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845060A (en) * | 1993-03-02 | 1998-12-01 | Tandem Computers, Incorporated | High-performance fault tolerant computer system with clock length synchronization of loosely coupled processors |
CN103049038A (zh) * | 2011-10-17 | 2013-04-17 | 卡斯柯信号有限公司 | 用于三取二安全系统的硬件时钟同步电路 |
CN102508745A (zh) * | 2011-10-21 | 2012-06-20 | 上海交通大学 | 一种基于两级松散同步的三模冗余系统及其实现方法 |
CN103389914A (zh) * | 2013-07-03 | 2013-11-13 | 浙江大学 | 基于时钟同步技术的星载三模冗余系统 |
CN110855396A (zh) * | 2019-11-27 | 2020-02-28 | 北京计算机技术及应用研究所 | 一种基于以太网和秒脉冲的高精度双冗余时间同步系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111538369A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538369B (zh) | 一种三模冗余计算机时钟同步方法及其系统 | |
KR100566338B1 (ko) | 폴트 톨러런트 컴퓨터 시스템, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체 | |
US5901281A (en) | Processing unit for a computer and a computer system incorporating such a processing unit | |
US5742753A (en) | Mesh interconnected array in a fault-tolerant computer system | |
CN100375044C (zh) | 信息处理系统及其控制方法、控制程序以及冗余控制装置 | |
US5784386A (en) | Fault tolerant synchronous clock distribution | |
CN112667450B (zh) | 一种可动态配置的多核处理器容错系统 | |
US20070240028A1 (en) | Vehicle including a processor system having fault tolerance | |
US20070220367A1 (en) | Fault tolerant computing system | |
US20070128895A1 (en) | Redundant automation system for controlling a techinical device, and method for operating such an automation system | |
JPH0683660A (ja) | モジュール化プロセッサ・システム | |
US20100229034A1 (en) | Clock supply method and information processing apparatus | |
CN103684734B (zh) | 一种热备份冗余计算机时间同步系统及方法 | |
Fayyaz et al. | Survey and future directions of fault-tolerant distributed computing on board spacecraft | |
CN106796541A (zh) | 数据处理装置 | |
CN113485185B (zh) | N倍冗余控制系统的方法 | |
CN117573609A (zh) | 一种具有冗余功能的片上系统及其控制方法 | |
JPH06161798A (ja) | 情報処理装置 | |
CN117970778A (zh) | 一种可编程控制器系统及其控制方法 | |
US20230055743A1 (en) | Information processing device, control method, and non-transitory computer readable medium | |
JPS62187901A (ja) | 2重化コントロ−ラの制御方法 | |
Gamer et al. | Increasing Efficiency of M-out-of-N Redundancy | |
Wang et al. | Check for updates Research and Application of Multi-processor Fault-Tolerant Algorithms for China Space Station Full Digital Simulation Platform | |
JP7605697B2 (ja) | 演算装置 | |
JP5604799B2 (ja) | フォールトトレラントコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |