CN104714517A - 用于安全关键系统的可靠、低延迟的硬件和软件进程间通信通道 - Google Patents
用于安全关键系统的可靠、低延迟的硬件和软件进程间通信通道 Download PDFInfo
- Publication number
- CN104714517A CN104714517A CN201410784049.0A CN201410784049A CN104714517A CN 104714517 A CN104714517 A CN 104714517A CN 201410784049 A CN201410784049 A CN 201410784049A CN 104714517 A CN104714517 A CN 104714517A
- Authority
- CN
- China
- Prior art keywords
- packet
- module
- copy
- fsc
- scrambling
- 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.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 33
- 238000004891 communication Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims description 59
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 238000012937 correction Methods 0.000 claims description 9
- 230000036541 health Effects 0.000 description 97
- 238000012545 processing Methods 0.000 description 33
- 230000003862 health status Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 230000033001 locomotion Effects 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000007480 spreading Effects 0.000 description 5
- 238000003892 spreading Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- VNWKTOKETHGBQD-UHFFFAOYSA-N methane Chemical compound C VNWKTOKETHGBQD-UHFFFAOYSA-N 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000003345 natural gas Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Manufacturing & Machinery (AREA)
- Automation & Control Theory (AREA)
- Hardware Redundancy (AREA)
- Probability & Statistics with Applications (AREA)
Abstract
本发明提供了用于安全关键系统的可靠、低延迟的硬件和软件进程间通信通道。包括处理器间通信通道的容错失效保护计算机系统包括:发送控制模块,用于将第一数据包编码,并传送第一数据包的第一编码拷贝和第一数据包的第二编码拷贝。该系统还包括接收器控制模块,用于i)接收第二数据包的第一编码拷贝和第二数据包的第二编码拷贝,并且ii)将第一编码拷贝和第二编码拷贝解码。该系统进一步包括重复删除模块,用于接收多个数据包,并传送所述多个数据包中的至少一个唯一数据包。
Description
相关申请的交叉引用
本申请要求2013年12月16日递交的美国临时申请No.61/916,445的权益。
技术领域
本公开涉及容错的失效保护计算机系统。
背景技术
本部分提供涉及本公开的背景信息,其不一定是现有技术。
这里提供的背景描述的目的是为了大体呈现本公开的环境。到本背景部分中描述的程度的现署名发明人的工作,以及在递交时可能没有资格作为现有技术的描述方面,既不明确也不隐含地被接纳为针对本公开的现有技术。
外部安全系统,诸如铁路系统,可以包括被配置为实施安全应用程序的容错失效保护计算机系统。容错失效保护计算机系统可以包括电联接且逻辑联接以便实施安全应用程序的多个硬件部件。安全应用程序与安全关键硬件和软件选择性通信。安全关键硬件和软件被配置为控制铁路系统的安全相关功能。
例如,在铁路系统上行驶的火车包括制动系统。制动系统被配置为实施至少一个安全相关功能,诸如制动功能。制动系统包括制动器和被配置为启动制动器的软件。软件接收指令以启动制动器。例如,火车的操作员可以操作制动系统用户界面以便命令软件启动制动器。偶尔,铁路系统的故障部件可能会产生启动制动器的错误指令。因此,期望被配置为验证由外部安全系统接收的指令的容错失效保护计算机系统。
发明内容
本部分提供本公开的一般总结,并不是其全部范围或全部特征的全面公开。
一种包括处理器间通信通道的容错失效保护计算机系统,包括发送控制模块,用于将第一数据包编码,并传送所述第一数据包的第一编码拷贝和所述第一数据包的第二编码拷贝。该系统还包括接收器控制模块,用于i)接收第二数据包的第一编码拷贝和第二数据包的第二编码拷贝,并且ii)将所述第一编码拷贝和所述第二编码拷贝解码。该系统进一步包括重复删除模块,用于接收多个数据包,并传送所述多个数据包中的至少一个唯一数据包。
在其他特征中,一种方法包括将第一数据包编码,传送所述第一数据包的第一编码拷贝和所述第一数据包的第二编码拷贝,接收第二数据包的第一编码拷贝和所述第二数据包的第二编码拷贝,将所述第一编码拷贝和所述第二编码拷贝解码,接收多个数据包,传送所述多个数据包中的至少一个唯一数据包。
根据这里提供的描述,另外的应用领域将显而易见。本总结中的描述和具体示例仅打算为了说明的目的,并不打算限制本公开的范围。
附图说明
这里所述的附图仅用于所选实施例而不是全部可能实施方式的示意性目的,并且不致力于限制本公开的范围。
图1是根据本公开的原理的容错失效保护计算机系统的功能框图;
图2是根据本公开的原理的失效保护底盘的功能框图;
图3是根据本公开的原理的表决子系统的替代例的功能框图;
图4是根据本公开的原理的处理器间通信通道的功能框图;
图5是示出根据本公开的原理的处理器间通信通道方法的流程图;以及
图6是示出根据本公开的替代处理器间通信通道方法的流程图。
在附图的几个视图中,对应的参考标记指代对应的部分。
具体实施方式
现在将结合附图更充分地描述示例实施例。
现在参见图1,示出了示例性容错失效保护计算机系统100的功能框图。系统100被布置为与安全应用程序交互。例如,系统100被布置为与安全关键硬件和相关联的软件通信,通过非限制性示例,系统100为铁路系统。安全关键硬件和软件控制铁路系统的安全相关部件。例如,安全关键硬件可以被联接至在铁路系统上运行的火车的制动系统。此外,系统100能够根据行业认可的安全标准被证明合格。
安全关键硬件从安全关键软件接收数据元以启动制动系统的制动器。系统100与安全关键硬件和软件配合,以确保安全关键硬件和软件根据预定操作标准操作。可以理解的是,虽然只描述了火车的制动系统,但是本公开的原理适用于任何安全关键硬件和软件。这里描述的实施例的其他可能应用包括但不限于航空系统的部件、医疗系统的部件、石油和天然气控制系统的部件、智能网格系统的部件和各种制造系统的部件。
在一些实施方式中,系统100从诸如铁路系统的外部安全系统接收多个输入数据包。系统100被配置为处理多个输入数据包,并且将多个传出数据包传送至外部安全系统的安全相关部件。例如,系统100确定多个输入数据包中的第一数据包是否为有效数据包。在系统100确定第一数据包是有效数据包时,系统100将传出数据包传送至铁路系统的至少一个安全相关部件。
第一数据包包括通过铁路系统的至少一个安全相关部件起作用的数据元。数据元可以包括传感器数据和/或输入/输出(I/O)点状态。至少一个安全相关部件可以是联接至铁路系统上行驶的火车的制动器。可以理解的是,虽然只描述了外部安全系统的安全相关部件,但是第一数据包可以包括通过外部安全系统的非安全相关部件起作用的数据元。数据元根据传输协议被格式化。例如,铁路系统被配置为根据预定封装标准将数据元封装为可传输数据包。然后,铁路系统根据传输协议传输多个输入数据包。
系统100被配置为接收根据传输协议发送的数据包。此外,系统100被配置为解译预定封装标准。然后,系统100从第一数据包提取数据元并基于数据元产生传出数据包。传出数据包包括基于数据元的指令集。虽然仅讨论指令,但是传出数据包还可以包括控制I/O的操作指令、读取输入以收集信息的请求、健康状态消息通信、进程间通信的请求或其他适合的元素。指令集包括命令安全关键硬件和软件中的至少一个执行一程序的至少一个指令。
例如,指令集可以命令安全关键软件执行制动程序。制动程序包括硬件制动指令。硬件制动指令被传送至安全关键硬件。安全关键硬件执行制动指令。例如,安全关键硬件实施制动。
系统100确定是否将传出数据包和数据元传送至安全关键硬件和软件。例如,系统100确保多个输入数据包中的每一个都满足预定安全标准。预定安全标准包括确定铁路系统是否根据预定义的操作标准集操作。系统100查证多个输入数据包中的每一个是由铁路系统100有意传输。仅仅是例如,由于铁路系统内的硬件或软件故障(fault),铁路系统可能传输错误的输入数据包。
安全关键硬件和软件响应于铁路系统的操作员的命令,接收多个输入数据包中的第一数据包。由于铁路系统中的故障,安全关键硬件和软件接收多个输入数据包中的第二数据包。仅通过非限制性示例,铁路系统中的故障可以包括硬件失效(failure),诸如由于长期暴露至热或湿气而导致的劣化电连接。安全关键硬件和软件将包括第一和第二数据包的多个输入数据包传送至系统100。系统100被配置为确定多个输入数据包中的每一个是否作为铁路系统中的故障的结果而被安全关键硬件和软件接收。
在系统100确定多个输入数据包中的一个响应于操作员的命令而接收时,系统100产生与所接收的输入数据包相对应的传出数据包。例如,系统100产生基于第一数据包的第一传出数据包。第一传出数据包包括与第一数据包内的数据元相对应的指令集。在系统100确定第一数据包是有效数据包时,系统100将第一传出数据包传送至安全关键硬件和软件。例如,系统100确定第一数据包响应于操作员的命令而被接收。系统100将第一传出数据包传送至安全关键硬件和软件。安全关键硬件和软件执行包括在第一传出数据包中的指令集。
相反,在系统100确定多个输入数据包中的一个响应于铁路系统内的故障而被接收时,系统100不向安全关键硬件和软件传送传出数据包。例如,系统100确定第二数据包由于铁路系统中的故障而被接收。系统100不向安全关键硬件和软件传送与第二数据包相对应的传出数据包。结果,安全关键硬件和软件不执行与包括在第二数据包中的数据元相对应的指令。
进一步地,系统100基于在铁路系统内发生故障的确定而产生故障指示。通过这种方法,安全关键硬件和软件执行的数据元首先被系统100查证。这种查证确保铁路系统根据预定安全标准而操作。
在一些实施方式中,系统100接收多个输入数据包中的第一数据包。同时,系统100接收多个输入数据包中的第二数据包。然后,系统100对第一和第二数据包执行表决逻辑。表决逻辑可以被实施为双重二选二(2oo2)系统。下文中更详细地解释2oo2表决逻辑。系统100确定第一和第二数据包是否相同。在系统100确定第一和第二数据包相同时,系统100产生第一传出数据包,并且将第一传出数据包传送至安全关键硬件和软件的至少一个部件。
然后,至少一个部件执行包括在第一传出数据包内的操作数据元。相反,在第一和第二数据包不同时,系统100将系统100或铁路系统中的至少一个部件识别为故障。可以理解的是,虽然描述了铁路系统,但本公开的原理适用于任何外部安全系统。
系统100还产生安全指示。安全指示可以指示系统100或安全关键硬件和软件内的失效。进一步地,系统100命令所述至少一个部件以预定安全状态操作。例如,安全状态可以包括被布置为维持铁路系统的安全操作环境的安全状态数据元集。
安全状态数据元包括命令铁路系统以确保铁路系统总体安全的预定操作模式操作。仅仅作为示例,预定操作模式包括将铁路系统上运行的火车导入车站。在一些实施方式中,安全状态包括禁用全部安全相关的通信界面。例如,在安全状态下操作的失效保护计算机不能与安全关键硬件和软件通信。通过这种方法,在安全状态下操作的失效保护计算机不能错误地命令安全关键硬件和软件。
系统100包括活动的失效保护底盘(FSC)104和备用FSC 108。为了提高系统100的可用性和可靠性,活动FSC 104和备用FSC 108是冗余FSC。例如,活动FSC 104被配置为执行备用FSC 108的任意和全部操作。通过这种方法,在活动FSC 104和备用FSC 108中的一个遭遇硬件或软件失效时,活动FSC 104和备用FSC 108中的另一个被配置为代替失效FSC而操作。
活动FSC 104实施用于检测表决失配的二选二(2oo2)表决架构,并在表决失配发生时执行失效保护操作。2oo2表决架构包括双重冗余处理和表决子系统。冗余处理和表决子系统对进入或离开活动FSC 104的数据包进行表决。例如,活动FSC 104接收多个输入数据包。活动FSC 104接收多个输入数据包中的第一数据包的两个拷贝。
活动FSC 104确定第一数据包的有效性。活动FSC 104基于第一数据包是否有效的确定,连续产生第一健康状态信号和第二健康状态信号。在一些实施方式中,连续产生一信号可以包括将该信号设定为第一预定值。然后,连续产生的信号被维持在第一预定值,直到该信号被无效为第二预定值。
活动FSC 104比较第一数据包的两个拷贝中的每一个。在两个拷贝相同时,活动FSC 104确定第一数据包有效。在活动FSC 104确定第一数据包有效时,活动FSC 104连续产生第一健康状态信号和第二健康状态信号。第一和第二健康状态信号可以被有效为第一值。在一些实施方式中,第一值等于1。在另一个实施方式中,第一值可以是指示FSC 104为健康的字符串。
相反,在活动FSC 104确定第一数据包的两个拷贝不相同时,活动FSC 104使第一和第二健康状态信号无效。可以理解的是,第一和第二健康状态信号可以被无效为第二值。例如,第二值可以等于0。在另一个实施方式中,第二值可以是指示FSC 104为不健康的字符串。如下文中更详细的描述,活动FSC 104包括第一处理器和第二处理器。在第一处理器确定第一数据包的拷贝有效时,第一处理器连续产生第一健康状态信号。类似地,在第二处理器确定第一数据包的第二拷贝有效时,第二处理器连续产生第二健康状态信号。
活动FSC 104将第一和第二健康状态信号传送至系统100。系统100监测第一和第二健康状态信号以确定活动FSC 104是否健康。例如,在系统100接收到第一和第二健康状态信号时,系统100确定活动FSC 104健康。相反,在系统100没有接收到第一健康状态信号和第二健康状态信号中的一个时,系统100确定活动FSC 104不健康。
如下文中详细描述,系统100命令活动FSC 104在安全状态下操作,以维持系统100的安全。可以理解的是,虽然关于第一和第二状态信号被无效仅讨论了表决失配,但是系统100内的任何硬件或软件失效都可能导致第一和第二状态信号中的一个被无效。健康状态信号可以指示系统100正在根据预定操作标准而操作。通过这种方式,健康状态信号指示系统100健康。
在活动FSC 104确定第一数据包的两个拷贝不同时,活动FSC 104确定表决故障已经发生。基于表决故障已经发生的确定,活动FSC 104产生故障信号。故障信号指示在系统100内检测到的故障。故障可以归因于系统100或外部安全系统内的硬件或软件失效。为了可用性原因,如果活动FSC 104遭遇硬件或软件失效,则系统100将活动FSC 104强制为预定安全状态。然后,备用FSC 108作为活动FSC操作。
活动FSC 104和备用FSC 108中的每一个可以包括多个通信链路。通信链路包括但不限于上行链路、下行链路和用户界面。上行链路是通往较高级设备的双向通信通道。较高级设备可以是包括在整个系统架构中的系统硬件。例如,较高级设备可以是铁路系统的铁路制动系统的部件。
下行链路是通往较低级硬件的双向通信通道。例如,较低级硬件可以包括与较高级设备通信的交换机和转发器。下行链路可以按照任何适合的硬件标准来实现。例如,下行链路可以被实现为RS-232、RS-422、RS-485、CAN、MVB、以太网、以太网HSR环或其他适合的技术。用户界面是被设计为允许系统100的用户访问系统100的部件和子系统的界面。只为示例,用户界面可以被实施为多个发光二极管(LED)。
通信链路与系统100外部的硬件部件和软件应用程序通信。进一步地,系统100被配置为接收输入,并将输出传送给现场工程师。例如,现场工程师可以通过与系统100的用户界面进行通信,选择性地配置系统100。
活动FSC 104和备用FSC 108中的每一个被布置为执行健康和安全应用程序。例如,活动FSC 104和备用FSC 108包括存储器和处理器。健康和安全应用程序可以是被载入活动FSC 104和备用FSC 108的存储器中的软件。然后,健康和安全应用程序可以由活动FSC 104和备用FSC 108的处理器执行。
健康和安全应用程序监测并控制活动FSC 104和备用FSC 108。例如,健康和安全应用程序产生多个健康信号。多个健康信号可以包括但不限于模块健康信号和屏蔽信号。例如,健康和安全应用程序基于活动FSC 104中的故障产生多个信号。健康和安全应用程序是被设计为通过将活动FSC 104或备用FSC 108中的一个强制为安全状态来检测并响应于失效的功能性安全子系统。
可以理解的是,健康和安全应用程序可以包括在外部安全系统上执行的任何安全应用程序。这可以包括:在数据元集被铁路系统的硬件和软件执行之前,确保数据元集的有效性和安全性。健康和安全应用程序还被配置为在健康和安全应用程序检测到系统100中的失效时,确保铁路系统以预定安全状态操作。
活动FSC 104和备用FSC 108中的每一个包括处理子系统。活动FSC 104处理子系统包括主控中央处理单元(CPU)116a和校验器CPU 120a。类似地,备用FSC 108处理子系统包括主控CPU 116b和校验器CPU 120b。主控CPU 116a和116b中的每一个都被配置为相同。类似地,校验器CPU 120a和120b中的每一个被配置为相同。通过这种方式,主控CPU 116a、主控CPU 116b、校验器CPU 120a和校验器CPU 120b用于提高系统100的可用性和可靠性。
为了监测和控制系统100的总体健康和安全,主控CPU 116a和校验器CPU120a也被配置为相同。例如,主控CPU 116a和校验器CPU 120a执行相同的软件并实施相同的处理功能。主控CPU 116a和校验器CPU 120a被配置为执行相同的功能,以便维持安全关键硬件和软件的硬件故障和错误检测的完全覆盖,并允许以正确的顺序对传出数据包进行表决。
在一些实施方式中,主控CPU 116a从铁路系统的安全关键硬件或软件中的至少一个接收执行任务的请求。执行任务的请求基于由安全关键硬件和软件从外部安全系统的操作员接收的命令。例如,铁路系统的操作员可以命令在铁路系统上行驶的火车提高速度。操作员可以启动火车内的物理控制杆。物理控制杆被布置为产生指示提高火车速度的命令的信号。该信号被传送至安全关键硬件和软件。
在执行命令之前,安全关键硬件和软件将安全相关任务传送至系统100。系统100被配置为解译该信号并确定与该信号关联的请求任务。然后,系统100确定请求任务是否指示安全相关任务。例如,请求任务可以是安全相关任务或非安全相关任务。在一个示例中,非安全相关任务包括命令安全关键硬件和软件返回在铁路系统中运行的火车的当前状态的指令。在另一个示例中,安全相关任务包括命令安全关键硬件和软件提高火车速度的指令。
系统100将请求任务与预定义任务列表相比较。系统100基于预定义任务确定请求任务是否是安全相关。在系统100确定请求任务为安全相关任务时,系统100产生对应于请求任务的数据包。可以理解的是,虽然这里只描述了安全相关任务,但是系统100可以根据任何任务产生数据包。系统100将该数据包传送至主控CPU 116a。主控CPU 116a和校验器CPU 120a都被配置为在安全关键硬件和软件执行请求任务之前查证该数据包的有效性。例如,执行任务的请求可以是多个输入数据包中的一个。
同时,校验器CPU 120a接收与请求任务相对应的相同数据包的拷贝。主控CPU 116a和校验器CPU 120a中的每一个被配置为将数据包的拷贝传送至主控CPU 116a和校验器CPU 120a中的另一个。在主控CPU 116a命令安全关键硬件和软件执行请求任务之前,主控CPU 116a和校验器CPU 120a比较主控CPU 116a和校验器CPU 120a中的每一个所接收的数据包。例如,主控CPU 116a和校验器CPU 120a对数据包执行2oo2表决。
在数据包相同时,主控CPU 116a命令安全关键硬件和软件执行请求任务。例如,主控CPU 116a和校验器CPU 120a产生与请求任务关联的传出数据包。在表决成功时(即,数据包相同),主控CPU 116a将传出数据包传送至安全关键硬件和软件以执行请求任务。
传出数据包可以包括操作数据元以控制I/O、读取输入以收集数据的请求、健康状况消息、进程间通信的请求、或者与安全关键硬件和软件关联的其他适合的请求。操作数据元可以包括命令安全关键硬件和软件中的一个执行预定程序的指令集。例如,操作数据元可以命令安全关键软件执行加速程序。加速程序包括控制至少一个安全关键硬件部件。至少一个硬件部件包括火车的节流机构。
相反,在数据包不同时,主控CPU 116a和校验器CPU 120a不命令安全关键硬件和软件执行请求任务。主控CPU 116a产生故障信号。故障信号指示系统100、安全关键硬件和软件或外部安全系统内的故障。通过这种方式,主控CPU 116a查证请求任务是来自有效源(即,外部硬件部件或软件应用程序)的有效请求。
只为示例,由于外部硬件失效、软件错误、或整个系统失灵,主控CPU 116a接收执行任务的错误请求。可以理解的是,虽然只描述了主控CPU 116a和校验器CPU 120a,但是上面描述的原理也适用于主控CPU 116b和校验器CPU 120b。
活动FSC 104和备用FSC 108中的每一个包括多个输入/输出(IOU)模块。活动FSC 104包括IOU模块128a-128f。此后,IOU模块128a-128f将被称作IOU模块128。类似地,备用FSC 108包括IOU模块132a-132f,其与IOU模块128a-128f相同。此后,IOU模块132a-132f将被称作IOU模块132。
活动FSC 104和备用FSC 108各自还包括表决子系统、输入/输出(I/O)子系统,并且分别包括交换模块124a和交换模块124b。交换模块124a和交换模块124b被配置为相同。交换模块124a和交换模块124b将从I/O子系统接收的数据包路由至主控CPU 116a和116b以及校验器CPU 120a和120b。
例如,交换模块124a可以将从主控CPU 116a接收的数据包路由至外部网络部件。此外,交换模块124a从外部部件接收数据包并将接收的数据包路由至主控CPU 116a、校验器CPU 120b和I/O子系统。此外,交换模块124a将接收的数据包传送至表决子系统。应当理解的是,虽然只描述了交换模块124a,但是上面描述的原理也适用于交换模块124b。
IOU模块128实现活动FSC 104中的I/O子系统。I/O系统被配置为提供较低级网络设备与主控CPU 116a和校验器CPU 120a之间的网关。IOU模块128将主控CPU 116a和校验器CPU 120a与外部硬件和软件所需的低级协议隔离。通过这种方式,IOU模块128在局域以太网上添加安全层,以支持主控CPU 116a、校验器CPU 120a与外部硬件和软件之间的安全通信。IOU模块128和交换模块124a可以一起被称作前刀片(front blade)124a-128f。类似地,IOU模块132和交换模块124b可以一起被称作前刀片124b-132f。
活动FSC 104和备用FSC 108还包括多个后转换模块(RTM)。活动FSC 104包括RTM 136a-136i。备用FSC 108包括RTM 140a-140i。应当理解的是,因为备用FSC 108是活动FSC 104的冗余配置,所以RTM 136a-136i与RTM 140a-140i相同。在一些实施方式中,RTM 136a-136i中的每一个可以是热可交换现场可更换单元(FRU)。
例如,RTM 136a-136i中的每一个可以在无需先使整个系统100断电的情况下由现场工程师卸下并更换。RTM 136a-136i允许活动FSC 104与外部硬件和软件部件通信。例如,RTM 136a将主控CPU 116a电联接且逻辑联接至活动FSC 104外部的部件。类似地,RTM 136b将备用FSC 108电联接且逻辑联接至外部硬件和软件部件。
前刀片124a-128f各自包括第一存储器位置和第二存储器位置。第一和第二存储器位置存储从活动FSC 104的对应硬件部件接收的值。例如,主控CPU 116a连续产生指示主控CPU 116a的模块健康状况的模块健康信号(以上所述)。在模块健康信号指示主控CPU 116a健康时,主控CPU 116a将1存储在第一存储器位置。
前刀片124a-128f和主控CPU 116a中的每一个都产生模块健康信号。前刀片124a-128f中的每一个将指示模块健康信号的值存储在第一存储器位置。只为示例,在模块健康信号指示交换模块124a健康时,交换模块124a将1存储在与交换模块124a关联的第一存储器位置。
相反,在模块健康信号指示交换模块124a不健康时,交换模块124a将0存储在第一存储器位置。可以理解的是,虽然只描述了交换模块124a,但是这里讨论的原理适用于系统100内的所有模块。可以进一步理解的是,虽然只描述了基于模块健康信号存储1和0,但是任何适合的指示符可以被用于指示系统100内的模块中每一个的健康。然后,系统100内的模块中的每一个将存储在关联的第一存储器位置中的值传送至主控CPU 116a。
主控CPU 116a基于与前刀片124a-128f中的每一个所产生的模块健康信号和主控CPU 116a所产生的模块健康信号相对应的多个值的接收,确定活动FSC 104是否健康。只为示例,主控CPU 116a在接收的对应于模块健康信号的值中的每一个指示系统100内的模块中的每一个健康时,确定活动FSC 104健康。相反,主控CPU 116a在接收的对应于模块健康信号的值中的至少一个指示系统100内的模块中的至少一个不健康时,确定活动FSC 104不健康。
在另一个实施方式中,指示模块健康信号的值被存储于配置在系统100前端的模块中。例如,在模块健康信号指示主控CPU 116a健康时,配置在系统100中RTM 136对侧上的模块将1存储在第一存储器位置。可以理解的是,虽然只描述了主控CPU 116a,但是这里描述的原理适用于校验器CPU 120a。
主控CPU 116a接收多个输入数据包中的第一数据包。同时,校验器CPU 120a接收第一数据包的拷贝。主控CPU 116a和校验器CPU 120a确定第一数据包和第一数据包的拷贝是否相同。在第一数据包和第一数据包的拷贝相同时,主控CPU116a连续产生模块健康信号。模块健康信号可以被设置为1或高信号值。模块健康信号的值指示活动FSC 104的健康状况。主控CPU 116a将1存储在第一存储器位置。
相反,在第一数据包和第一数据包的拷贝不相同时,主控CPU 116a产生无效的模块健康信号。例如,主控CPU 116a使模块健康信号无效。主控CPU 116a将0存储在第一存储器位置。主控CPU 116a接收指示主控CPU 116a内的屏蔽寄存器的状态的屏蔽信号。例如,屏蔽寄存器是主控CPU 116a和校验器CPU 120a中的每一个内的可编程位。
在请求任务为安全相关任务时,设定屏蔽寄存器。例如,在系统100确定请求任务是安全相关任务时,屏蔽寄存器被设定为1。在屏蔽信号指示主控CPU 116a内的屏蔽寄存器被设定为1时,RTM 136a将1存储在第二存储器位置。相反,在屏蔽信号指示主控CPU 116a内的屏蔽寄存器被设定为0时,RTM 136a将0存储在第二存储器位置。
系统100还包括看门狗定时器应用程序。看门狗定时器应用程序是指示主控CPU 116a是否已停止执行代码的连续运行的看门狗功能。例如,看门狗定时器应用程序监测主控CPU 116a。主控CPU 116a产生看门狗定时器重置信号。主控CPU116a将看门狗定时器重置信号传送至看门狗定时器应用程序。看门狗定时器应用程序确定是否在预定时段内接收到看门狗定时器重置信号。例如,预定时段可以是1分钟。预定时段可以是可配置项目。
看门狗定时器应用程序基于看门狗定时器重置信号产生看门狗健康信号。例如,在主控CPU 116a在预定时段之后传送看门狗定时器重置信号时,看门狗定时器应用程序将看门狗健康信号设定为0。相反,在主控CPU 116a在预定时段内传送看门狗定时器重置信号时,看门狗定时器应用程序将看门狗健康信号设定为1。换言之,在主控CPU 116a不能在预定时段内与看门狗应用程序通信时,看门狗定时器应用程序确定主控CPU 116a中的故障。例如,故障可以是主控CPU 116a被卡在软件循环中的结果。可以理解的是,虽然上面只描述了主控CPU 116a,但是校验器CPU 120a被配置以与主控CPU 116a相同的任务。
RTM 136a传送指示主控CPU 116a的整体健康状况的模块健康值。例如,RTM136a被配置为对存储在第一存储器位置中的值和存储在第二存储器位置中的值执行逻辑或。例如,在存储在第一存储器位置中的值为0并且存储在第二存储器位置中的值为0时,RTM 136a传送0的模块健康值。
在存储在第一存储器位置中的值为1并且存储在第二存储器位置中的值为0时,RTM 136a传送1的模块健康值。可以理解的是,RTM 136a-136i中的每一个被配置为对存储在与前刀片124a-128f中的每一个关联的存储器内的值执行逻辑或。
RTM 136a和136b将底盘健康值传送至安全转发盒模块144。安全转发盒模块144基于多个底盘健康值,选择性确定系统100内的FSC中的哪一个会是活动FSC并且哪一个会是备用FSC。例如,安全转发盒模块144从RTM 136a、RTM 136b、RTM 140a和RTM 140b接收多个底盘健康值。RTM 136a基于主控CPU 116a和前刀片124a-128f产生的模块健康信号的累加结果以及存储在屏蔽寄存器中的值而产生第一底盘健康值。
RTM 136a将底盘健康值传送至安全转发盒模块144。类似地,RTM 136b基于校验器CPU 120a和前刀片124a-128f产生的模块健康信号的累加结果以及存储在屏蔽寄存器中的值而产生第二底盘健康值。RTM 140a基于主控CPU 116b和前刀片124b-132f产生的模块健康信号的累加结果以及存储在屏蔽寄存器中的值而产生第三底盘健康值。类似地,RTM 140b基于校验器CPU 120b和前刀片124b-132f产生的模块健康信号的累加结果以及存储在屏蔽寄存器中的值而产生第四底盘健康值。
安全转发盒模块144确定活动FSC 104和备用FSC 108中的哪一个将作为系统100中的活动FSC而操作。例如,安全转发盒模块144基于第一至第四底盘健康值确定活动FSC 104将作为系统100内的活动FSC而操作。在第一和第二底盘健康信号指示活动FSC 104健康时,安全转发盒模块144确定活动FSC 104将是系统100内的活动FSC。
安全转发盒模块144基于活动FSC确定产生活动FSC信号和备用FSC信号。例如,安全转发盒模块144产生第一活动FSC信号和第二活动FSC信号。第一和第二活动FSC信号都是指示哪个FSC被选定为活动FSC而操作的冗余信号。安全转发盒模块144还产生第一备用FSC信号和第二备用FSC信号。
第一和第二备用FSC信号都是指示哪个FSC被选定为备用FSC而操作的冗余信号。安全转发盒模块144将第一活动FSC信号和第一备用FSC信号传送至活动FSC 104。类似地,安全转发盒模块将第二活动FSC信号和第二备用FSC信号传送至备用FSC 108。
安全转发盒模块144还基于第一至第四底盘健康信号确定活动FSC 104和备用FSC 108中的一个中是否发生故障。例如,安全转发盒模块144在安全转发盒模块144从RTM 136a和136b中的一个接收到无效底盘健康信号时,确定在活动FSC 104中发生故障。例如,无效底盘健康信号可以为0的底盘健康值。安全转发盒模块144基于无效底盘健康信号产生备用信号。安全转发盒模块144将备用信号传送至活动FSC 104。活动FSC 104基于备用信号确定是否进入失效保护状态。例如,在活动FSC 104接收到备用信号时,活动FSC 104确定进入失效保护状态。
安全转发盒模块144基于底盘健康值产生活动信号。安全转发盒模块144将活动信号传送至备用FSC 108。活动信号向备用FSC 108指示活动FSC 104正在失效保护状态或备用状态下操作。在备用FSC 108接收到活动信号时,备用FSC 108开始作为活动FSC操作。通过这种方式,安全转发盒模块144将失效的活动FSC强制进入失效保护状态,并通知备用FSC担任活动FSC的角色。
在一些实施方式中,安全转发盒模块144被配置为与多个商业成品组件(COTS)产品通信。例如,活动FSC 104和备用FSC 108可以是在系统100内实现的COTS产品。活动FSC 104和备用FSC 108根据预定实施标准被配置。实施标准包括预定义的通信协议。
安全转发盒模块144被配置为根据通信协议从活动FSC 104和备用FSC 108接收信号和消息,并解译信号和消息。通过这种方式,安全转发盒模块144不考虑活动FSC 104和备用FSC 108的物理特性而与活动FSC 104和备用FSC 108通信,只要活动FSC 104和备用FSC 108遵循通信协议即可。可以理解的是,安全转发盒模块144与系统100内的任何部件通信。此外,只要任意部件遵循通信协议,系统100内的任何部件都可以使用COTS产品来实现。
在一些实施方式中,I/O子系统还从诸如铁路系统的硬件和软件部件之类的外部源接收数据包。接收到的数据包可以包括多个上面所讨论的输入数据包。然后,I/O子系统将接收到的数据包传送至表决系统。
表决子系统是功能性安全子系统,并且被配置为检测失效,并对失效作出响应。在表决子系统在活动FSC 104和备用FSC 108中的一个FSC中检测到错误时,表决子系统强制活动FSC 104和备用FSC 108中的这一个FSC进入失效保护状态。表决子系统执行处理子系统的故障检测。例如,主控CPU 116a和校验器CPU 120a基于请求任务产生传出数据包。
表决子系统将主控CPU 116a产生的传出数据包与校验器CPU 120a产生的传出数据包相比较。在传出数据包相同时,表决子系统将数据包的单个拷贝传送至交换模块124a并传送至I/O子系统。在传出数据包不相同时,表决子系统强制活动FSC 104进入失效保护状态。通过这种方式,表决子系统检测活动FSC 104和备用FSC 108中的一个FSC中的故障。一旦检测到活动FSC 104和备用FSC 108中的这一个FSC中的故障,表决子系统就通过强制故障FSC进入失效保护状态而使系统100进入安全状态。
表决子系统还从I/O子系统接收数据包。例如,IOU模块128经由交换模块124a与表决子系统通信。IOU模块128将第一数据包传送至交换模块124a。交换模块124a复制第一数据包。例如,交换模块124a产生第二数据包。第二数据包是第一数据包的拷贝。交换模块124a将第一数据包传送至主控CPU 116a和校验器CPU 120a。如上所述,主控CPU 116a和校验器CPU 120a对第一和第二数据包执行表决逻辑。通过这种方式,表决子系统查证所接收的数据包的有效性。
在另一个示例中,由于外部部件中的硬件失灵,诸如铁路系统的安全关键硬件失灵,第一数据包会不同于第二数据包。在表决子系统确定第一数据包不同于第二数据包时,安全应用程序强制活动FSC 104进入失效保护状态。此外或可替代地,失配的数据包可以悄悄地被丢弃。例如,主控CPU 116a和校验器120a都不会基于第一和第二数据包产生传出数据包。通过这种方式,系统100可以避免由于其他可恢复错误而导致的过多的失效备援/失效保护转换。在另一个实施方式中,输入表决可以被配置为导致失效备援/失效保护转换。
现在参见图2,在200示出了根据本公开的原理的示例性失效保护底盘(FSC)的框图。FSC 200包括主控CPU 204和校验器CPU 208。主控CPU 204a和校验器CPU 208执行相同的软件并实施相同的处理功能。主控CPU 204和校验器CPU 208被配置为执行相同的功能,以便维持安全关键硬件和软件的硬件故障和错误检测的完全覆盖。
例如,主控CPU 204从外部安全系统的安全关键硬件或软件中的至少一个接收执行任务的请求。外部安全系统可以是被要求根据预定安全标准而操作的系统,诸如铁路系统。铁路系统包括安全关键硬件和软件。安全关键硬件和软件与铁路系统的各部件交互,以控制铁路系统的多个方面。例如,安全关键硬件和软件控制在铁路系统内运行的火车。
执行任务的请求包括但不限于确定硬件部件的状态、啮合铁路系统的制动器、或者向铁路系统的操作员指示在铁路系统内运行的火车的位置。以数据包的形式接收执行任务的请求。例如,执行任务的请求可以是多个输入数据包中的一个。
同时,校验器CPU 208接收同一请求的拷贝。主控CPU 204和校验器CPU 208中的每一个被配置为将请求任务的拷贝传送至主控CPU 204和校验器CPU 208中的另一个。在主控CPU 204执行请求任务之前,主控CPU 204和校验器CPU 208比较由主控CPU 204和校验器CPU 208中的每一个接收的请求任务。
在请求任务相同时,主控CPU 204和校验器CPU 208将请求任务传送至安全关键硬件和软件。例如,主控CPU 204和校验器CPU 208产生与请求任务关联的传出数据包。传出数据包包括操作数据元。操作数据元可以包括命令安全关键硬件和软件中的一个执行预定程序的指令集。例如,操作数据元可以命令安全关键软件执行制动器啮合程序。制动器啮合程序包括控制至少一个安全关键硬件部件。所述至少一个硬件部件可以包括铁路系统的制动机构。
相反,在请求任务不相同时,主控CPU 204和校验器CPU 208不将请求任务传送至安全关键硬件和软件。通过这种方式,主控CPU 204查证请求任务是来自有效源(即,外部硬件部件或软件应用程序)的有效请求。只为示例,主控CPU 204由于外部硬件失效、软件错误或整个系统失灵而接收到执行任务的错误请求。
主控CPU 204和校验器CPU 208包括屏蔽寄存器。屏蔽寄存器是主控CPU 204和校验器CPU 208内的可编程位。存储在屏蔽寄存器中的值指示请求任务是否为安全相关任务。例如,在系统100确定请求任务是安全相关任务时,屏蔽寄存器被设定为1。此外,在系统100被最初启动时,健康和安全应用程序设定屏蔽寄存器。
基于请求任务是否相同的确定,主控CPU 204和校验器CPU 208各自连续产生模块健康信号。在主控CPU 204和校验器CPU 208确定请求任务相同时,主控CPU 204和校验器CPU 208连续产生模块健康信号脉冲。在主控CPU 204和校验器CPU 208确定请求任务不相同时,主控CPU 204和校验器CPU 208使模块健康信号脉冲无效。
主控CPU 204和校验器CPU 208基于与FSC 200关联的多个模块中的每一个所产生的多个模块健康信号脉冲产生底盘健康信号脉冲。FSC 200包括与结合活动FSC 104描述的那些类似的特征。例如,FSC 200包括如上所述的前刀片124a-128f。FSC 200内的模块中的每一个连续产生模块健康信号(如上所述)。在多个模块健康信号指示FSC 200健康时,主控CPU 204产生第一底盘健康信号脉冲。换言之,在屏蔽寄存器指示请求任务为安全相关并且多个模块健康信号指示FSC 200健康时,第一底盘健康信号脉冲被连续有效(即,设定为1)。
可以理解的是,在屏蔽寄存器指示请求任务不是安全相关(即,屏蔽寄存器被设定为0)时,第一模块健康信号脉冲可以被无效。然而,安全相关程序(即,强制活动FSC 204进入安全状态)将不被执行。通过这种方式,仅在安全相关任务期间发生故障时,实施失效备援/失效保护程序。底盘健康信号脉冲指示FSC 200的整体健康状况。
可以理解的是,结合主控CPU 204描述的原理适用于校验器CPU 208。校验器CPU 208基于与FSC 200关联的多个模块中的每一个所产生的多个模块健康信号脉冲产生第二底盘健康信号脉冲。在多个模块健康信号指示FSC 200为健康时,校验器CPU 208连续产生第二底盘健康信号脉冲。主控CPU 204将第一底盘健康信号脉冲传送至安全转发盒212。类似地,校验器CPU 208将第二底盘健康信号脉冲传送至安全转发盒212。
安全转发盒模块212基于多个底盘健康信号选择性确定FSC 200是否将作为活动FSC操作。例如,在FSC 200被初始化时,安全转发盒模块212开始从主控CPU 204接收底盘健康信号脉冲。安全转发盒212也开始从校验器CPU 208接收底盘健康信号脉冲。安全转发盒模块212基于底盘健康信号确定FSC 200是否被选中为活动FSC。
在一些实施方式中,安全转发盒模块212还从另一个FSC接收多个底盘健康信号脉冲。安全转发盒模块212基于多个底盘健康信号脉冲确定FSC 200或其他FSC是否被选中为活动FSC。例如,安全转发盒模块212首先确定FSC 200或其他FSC中的一个是否健康。在从FSC 200接收到的底盘健康信号脉冲指示FSC 200为健康时,安全转发盒模块212确定FSC 200健康。例如,在安全转发盒212从FSC 200接收到底盘健康信号时,安全转发盒212确定FSC 200健康。
类似地,在从其他FSC接收的多个底盘健康信号脉冲指示其他FSC健康时,安全转发盒模块212确定其他FSC为健康。在安全转发盒模块212确定FSC 200和其他FSC都健康时,安全转发盒模块212基于FSC 200和其他FSC中首先传送多个底盘健康信号脉冲中的一个的那一个FSC而选出活动FSC。例如,当在其他FSC将信号传送至安全转发盒模块212之前FSC 200将信号传送至安全转发盒模块212时,安全转发盒模块212将FSC 200选中为活动FSC。
安全转发盒模块212监测活动FSC的健康状况。例如,安全转发盒模块212从FSC 200接收第一和第二底盘健康信号脉冲。安全转发盒模块212基于第一和第二底盘健康信号脉冲确定在FSC 200中是否发生故障。在第一和第二底盘健康信号脉冲中的至少一个指示请求任务失配时,安全转发盒212确定在FSC 200中已发生故障。换言之,在安全转发盒模块212没有接收到第一和第二底盘健康信号脉冲中的一个时,安全转发盒模块212确定故障已经发生。
在安全转发盒模块212确定在FSC 200中发生故障时,安全转发盒模块212产生失效保护信号。安全转发盒模块212将失效保护信号传送至FSC 200。FSC 200基于失效保护信号确定是否进入安全状态。例如,在FSC 200接收到失效保护信号时,FSC 200进入安全状态。相反,FSC 200将继续以活动FSC模式操作,除非FSC 200接收到失效保护信号。
可替代地,在FSC 200未接收到活动信号时,FSC 200可以进入备用状态。在安全转发盒模块212确定FSC 200将作为活动FSC操作时,安全转发盒模块212传送活动信号。安全转发盒模块212将活动信号连续传送至FSC 200。在安全转发盒模块212确定FSC 200故障时,安全转发盒模块212不将活动信号传送至FSC200。然后,FSC 200在备用状态下操作。
在一些实施方式中,多个底盘健康信号脉冲被实现为动态脉冲信号,以消除未被检测到的潜在的故障模式。安全转发盒模块212被配置为确定脉冲信号是被固定在0还是1。例如,安全转发盒212从主控CPU 204接收第一脉冲信号。安全转发盒模块212被配置为等待预定时间段。
例如,预定时间段可以是与足够长以用于重置动态脉冲的时间相对应的时段。当第一脉冲信号在预定时段之后还没有被重置时,安全转发盒模块212确定第一脉冲信号被卡住。在安全转发盒模块212确定第一脉冲信号被卡住时,安全转发盒模块212确定主控CPU 204中的故障。安全转发盒模块212基于确定主控CPU204中的故障而产生失效保护信号。
结合图3,示出了包括主控CPU 204和校验器CPU 208的表决子系统的替代实施方式的功能性框图。如结合图1所述,主控CPU 204和校验器CPU 208中的每一个包括处理和表决子系统。例如,主控CPU 204和校验器CPU 208中的每一个包括处理模块和表决模块。在示例实施方式中,主控CPU 204包括处理模块304a和表决模块308a。类似地,校验器CPU 208包括处理模块304b和表决模块308b。
如结合图2所述,主控CPU 204和校验器CPU 208中的每一个被配置为相同。主控CPU 204和校验器CPU 208执行相同的软件并实施相同的处理功能。主控CPU204和校验器CPU 208被配置为执行相同功能以维持安全关键硬件和软件的硬件故障和错误检测的完全覆盖。因此,可以理解的是,处理模块304a和304b相同。类似地,表决模块308a和308b相同。
如结合图1和2所述,主控CPU 204和校验器CPU 208中的每一个都从诸如铁路系统的外部安全系统接收多个输入数据包。主控CPU 204和校验器CPU 208被配置为处理多个输入数据包,并且将多个传出数据包传送至外部安全系统的安全相关部件。例如,外部安全系统产生第一数据包。
第一数据包被传送至交换模块,诸如结合图1所述的交换模块124a。交换模块124a复制第一数据包。例如,交换模块124a可以使用端口镜像,以产生第一数据包的第一拷贝和第一数据包的第二拷贝。第一拷贝和第二拷贝包括相同的包头信息。例如,第一拷贝和第二拷贝使用同样的MAC地址和同样的IP地址。此外,第一拷贝和第二拷贝维持第一数据包的序号。例如,第一数据包包括顺序标识符。顺序标识符可以为数值、字符串或任何其他适合的标识符。顺序标识符指示第一数据包相对于多个输入数据包中的其他数据包的处理顺序。
在示例实施方式中,不要求主控CPU 204和校验器CPU 208与参考时钟同步。换言之,主控CPU 204和校验器CPU 208不是同步的处理器。然而,为了使主控CPU 204和校验器CPU 208以相同的顺序执行任务,主控CPU 204和校验器CPU208基于顺序标识符对接收到的数据包进行处理。在交换模块124a产生第一和第二拷贝时,交换模块124a包括具有第一和第二拷贝的第一数据包的顺序标识符。通过这种方式,第一和第二拷贝维持第一数据包的顺序。
然后,交换模块124a将第一数据包的第一拷贝传送至处理模块304a。类似地,交换模块124a将第一数据包的第二拷贝传送至处理模块304b。在示例实施方式中,在处理模块304a和304b处理第一和第二拷贝之前,表决模块308a和308b对第一和第二拷贝执行表决逻辑。例如,在处理模块304a接收第一拷贝之前,表决模块308a解译第一拷贝。类似地,在处理模块304接收第二拷贝之前,表决模块308b解译第二拷贝。
表决模块308a包括输入表决模块312a。类似地,表决模块308b包括输入表决模块312b。输入表决模块312a和312b分别就主控CPU 204和校验器CPU 208接收的数据包进行表决。例如,输入表决模块312a和312b确定第一拷贝和第二拷贝是否相同。
在示例实施方式中,输入表决模块312a基于第一拷贝产生第一数据包签名。第一数据包签名可以是基于与第一拷贝一起包括的包头信息产生的唯一字符串。换言之,第一数据包签名对于第一数据包是唯一的。因此,因为第一拷贝与第一数据包相同,第一拷贝和第一数据包的第一数据包签名相同。
类似地,输入表决模块312b基于第二拷贝产生第二数据包签名。第二数据包签名可以是基于与第二拷贝一起包括的包头信息产生的唯一字符串。换言之,第二数据包签名对于第一数据包是唯一的。因此,因为第二拷贝与第一数据包相同,第二拷贝和第一数据包的第二数据包签名相同。输入表决模块312a将第一数据包签名传送至输入表决模块312b。输入表决模块312b将第二数据包签名传送至输入表决模块312a。
输入表决模块312a基于第一数据包签名和第二数据包签名是否相同的确定,产生第一表决信号。在输入表决模块312a确定第一数据包签名和第二数据包签名相同(即,表决成功)时,输入表决模块312a产生第一表决信号。输入表决模块312a将第一表决信号传送至输入表决模块312b。类似地,输入表决模块312b基于第一数据包签名和第二数据包签名是否相同的确定,产生第二表决信号。在输入表决模块312b确定第一数据包签名和第二数据包签名相同(即,表决成功)时,输入表决模块312b产生第二表决信号。输入表决模块312b将第二表决信号传送至输入表决模块312a。
相反,在输入表决模块312a确定第一数据包签名和第二数据包签名不相同(即,表决不成功)时,输入表决模块312a不产生第一表决信号。类似地,在输入表决模块312b确定第一数据包签名和第二数据包签名不相同(即,表决不成功)时,输入表决模块312b不产生第二表决信号。在示例实施方式中,只为示例,由于数据包的拷贝丢失、错误产生的数据包、或者第一和第二拷贝的包头信息的失配,表决可能不成功。在输入表决模块312a和312b中的一个确定第一和第二数据包签名不相同(即,表决不成功)时,第一数据包被放弃,并且没什么被转发给处理模块304a和304b。
输入表决模块312a将第一数据包传送至处理模块304a以基于第一和第二表决信号进行进一步处理。例如,在输入表决模块312a产生第一表决信号并且输入表决模块312a接收到第二表决信号时,输入表决模块312a将第一拷贝传送至处理模块304a。类似地,在输入表决模块312b产生第二表决信号并且输入表决模块312b接收到第一表决信号时,输入表决模块312b将第二拷贝传送至处理模块304b。
处理模块304a基于第一拷贝产生第一传出数据包。例如,第一数据包的第一拷贝包括通过外部安全关键系统(诸如结合图1描述的铁路系统)的至少一个安全相关部件起作用的数据元。处理模块304基于数据元产生第一传出数据包。第一传出数据包包括与第一数据包关联的顺序标识符和与第一数据包一起包括的数据元。
类似地,处理模块304b基于第二拷贝产生第二传出数据包。例如,第一数据包的第二拷贝包括通过外部安全关键系统的至少一个安全相关部件起作用的数据元。处理模块304b基于数据元产生第二传出数据包。第二传出数据包包括与第一数据包关联的顺序标识符和与第一数据包一起包括的数据元。
表决模块308a包括传出表决模块316a。表决模块308b包括传出表决模块316b。处理模块304a将第一传出数据包传送至传出表决模块316a。类似地,处理模块304b将第二传出数据包传送至传出表决模块316b。传出表决模块316a和316b分别就处理模块304a和304b发送的数据包进行表决。例如,传出表决模块316a和316b确定第一传出数据包和第二传出数据包是否相同。
在示例实施方式中,传出表决模块316a基于第一传出数据包产生第一传出数据包签名。第一传出数据包签名可以是基于与第一传出数据包一起包括的包头信息产生的唯一字符串。换言之,第一传出数据包签名对于第一传出数据包是唯一的。
类似地,传出表决模块312b基于第二传出数据包产生第二传出数据包签名。第二传出数据包签名可以是基于与第二传出数据包一起包括的包头信息产生的唯一字符串。换言之,第二传出数据包签名对于第二传出数据包是唯一的。传出表决模块316a将第一传出数据包签名传送至传出表决模块312b。传出表决模块316b将第二传出数据包签名传送至传出表决模块316a。
传出表决模块316a基于第一传出数据包签名和第二传出数据包签名是否相同的确定,产生第一传出表决信号。在传出表决模块316a确定第一传出数据包签名和第二传出数据包签名相同(即,表决成功)时,传出表决模块316a产生第一传出表决信号。
传出表决模块316a将第一传出表决信号传送至传出表决模块316b。类似地,传出表决模块316b基于第一传出数据包签名和第二传出数据包签名是否相同的确定,产生第二传出表决信号。在传出表决模块316b确定第一传出数据包签名和第二传出数据包签名相同(即,表决成功)时,传出表决模块316b产生第二传出表决信号。传出表决模块316b将第二传出表决信号传送至传出表决模块316a。
相反,在传出表决模块316a确定第一传出数据包签名和第二传出数据包签名不相同(即,表决不成功)时,传出表决模块316a不产生第一传出表决信号。类似地,在传出表决模块316b确定第一传出数据包签名和第二传出数据包签名不相同(即,表决不成功)时,传出表决模块316b不产生第二传出表决信号。
在传出表决模块316a和316b中的一个确定第一和第二传出数据包签名不相同(即,表决不成功)时,表决模块308a可以如上面结合图1所述命令主控CPU204在安全状态下操作。可替代地,表决模块308b可以命令校验器CPU 208在安全状态下操作。
传出表决模块316a基于第一和第二传出表决信号而将第一传出数据包传送至交换模块124a。例如,在传出表决模块316a产生第一传出表决信号并且传出表决模块316a接收到第二传出表决信号时,传出表决模块316a将第一传出数据包传送至交换模块124a。如结合图1具体描述,交换模块124a经由IOU模块128a-128f将第一传出数据包传送至至少一个安全相关部件。然后,至少一个安全相关部件可以根据包括在第一传出数据包中的数据元而操作。
如图4所示,在一些实施方式中,主控CPU 204和校验器CPU 208包括进程间通信(IPC)通道404。在一些实施方式中,IPC通道404是主控CPU 204和校验器CPU 208之间的双冗余、高速、点对点串行通信链路。IPC通道204可以被用于发送和接收硬件和软件同步数据、输入和传出数据包及其他IPC数据。IPC通道404与校验器CPU 208内的相同IPC通道通信。
此外,IPC通道404利用前向纠错(FEC)来提高经由IPC通道404传送的数据的可靠性。主控CPU 204和校验器CPU 208经由IPC通道404传送表决和处理器间通信。通过非限制性示例,表决模块308a可以经由IPC通道404将第一数据包签名和第一表决信号传送至表决模块308b。虽然只描述了第一数据包签名和第一表决信号,但是可以理解的是,主控CPU可以经由IPC通道404传送任何适合的通信。此外,虽然仅主控CPU 204被示出为包括IPC通道404,但是可以理解的是,校验器CPU 208也包括类似的IPC通道。
IPC通道404包括复用器(MUX)408、发送控制模块412、第一发送器模块416a和第二发送器模块416b。mux 408接收多个数据包。mux 408复用多个数据包并发送多个数据包中的一个。在一个实施方式中,mux 408可以是2n到1复用器。例如,mux 408包括两个输入端、一个选择位和一个输出端。mux 408在第一输入端接收第一数据包并在第二输入端接收第二数据包。mux 408复用第一数据包和第二数据包。例如,mux 408基于选择位确定是将第一数据包还是第二数据包发送至输出端。例如,在选择位被选为1时,mux 408将第一数据包发送至输出端。在选择位被选为0时,mux 408将第二数据包发送至输出端。
mux 408从处理模块304a接收IPC包并从表决模块308a接收数据包。IPC包可以包括传出数据包、输入数据包、表决信号或在系统100内传输的任何其他进程间通信。只为示例,处理模块304a将数据包发送至处理模块304b。此外,输入表决模块312a将第一表决信号发送至输入表决模块312b。可以理解的是,mux 408可以从系统100内的多个源接收数据包。
mux 408将多个数据包中的第一数据包发送至发送控制模块412。发送控制模块412将序号添加至第一数据包并将第一数据包编码。在一些实施方式中,发送控制模块412应用前向纠错(FEC)编码以将第一数据包编码。例如,第一数据包由多个位组成。发送控制模块412可以基于预定协议将第一数据包中的每个位进行编码。发送控制模块412多次发送每个编码位。只为示例,发送控制模块412可以发送每个位两次。然而,可以理解的是发送控制模块412可以发送每个位任意次。
接收器接收发送控制模块412发送的编码位中的每一个。接收器被配置为将每个编码位与预定协议相比较。接收器接受符合协议的位,并忽视不符合协议的位。以这种方式,接收器可以纠正发生在编码位发送期间的错误。
发送控制模块412将第一数据包的第一拷贝发送至第一发送器模块416a。发送控制模块412将第一数据包的第二拷贝发送至第二发送器模块416a。可以理解的是,第一数据包的第一和第二拷贝包括序号的拷贝。进一步理解的是,第一和第二拷贝被FEC编码。换言之,第一和第二拷贝作为一系列编码位被发送。此外,发送控制模块412可以多次发送这一系列编码位。
第一发送器模块416a将第一数据包的第一拷贝发送至校验器CPU 208内的IPC模块。类似地,第二发送器模块416b将第一数据包的第二拷贝发送至校验器CPU 208内的IPC模块。虽然只公开了发送至校验器CPU 208,但是可以理解的是,第一发送器模块416a和第二发送器模块416b可以与系统100的任意适合部件通信。
IPC模块404还包括第一接收器模块420a和第二接收器模块420b。第一接收器模块420a接收第二数据包的第一拷贝,并且第二接收器模块420b接收第二数据包的第二拷贝。第二数据包包括序号。此外,第二数据包被FEC编码。第一接收器模块420a将第二数据包的第一拷贝传送至接收器控制模块424。类似地,第二接收器模块420b将第二数据包的第二拷贝传送至接收器控制模块424。
接收器控制模块424对第一拷贝和第二拷贝进行错误校验并解码。例如,如上所述,接收器控制模块424可以多次接收第一和第二拷贝的每个编码位。接收器控制模块424被配置为将第一拷贝的每个编码位的每个发送与预定协议相比较。接收器控制模块424确定第一拷贝的编码位中的每一个是否符合预定协议。在接收器控制模块424确定编码位中的一个不符合预定协议时,接收器控制模块424丢弃该编码位。在接收器控制模块424确定编码位中的一个符合预定协议时,接收器控制模块424保留该位。
类似地,接收器控制模块424确定第二拷贝的编码位中的每一个是否符合预定协议。在接收器控制模块424确定编码位中的一个不符合预定协议时,接收器控制模块424丢弃该编码位。在接收器控制模块424确定编码位中的一个符合预定协议时,接收器控制模块424保留该位。
以这种方式,接收器控制模块424纠正发生在编码位发送期间的错误。在一些情况下,接收器控制模块424可能丢弃第一和第二拷贝中的一个。例如,接收器控制器模块424可以将丢弃的位的数目与阈值相比较。在接收器控制模块424确定丢弃的位的数目大于阈值时,接收器控制模块424丢弃该拷贝。在一些实施方式中,接收器控制模块424使错误计数器增量。
例如,在接收器控制模块424丢弃一位时,接收器控制模块424使错误计数器增量。接收器控制模块424将错误计数器的值与阈值相比较。在接收器控制模块424确定错误计数器大于阈值时,接收器控制模块424丢弃与被丢弃的位相关联的数据包。接收器控制模块424将第一和第二拷贝发送至重复删除模块428。可以理解的是,接收器控制模块424可以基于错误校验仅发送第一拷贝、仅发送第二拷贝或者既不发送第一拷贝也不发送第二拷贝。
重复删除模块428去除数据包的重复拷贝。重复删除模块428比较与接收到的数据包相关联的序号。例如,重复删除模块428将第一拷贝的序号与第二拷贝的序号比较。在重复删除模块428确定第一拷贝和第二拷贝包括相同的序号时,重复删除模块428去除第二拷贝。
然后,重复删除模块428将第一拷贝发送至解复用器(demux)432。demux 432被配置为接收单个输入并将该输入传送至系统100内的多个源。demux 432接收第一拷贝。demux 432基于与第一拷贝一起包括的包头信息,将第一拷贝传送至系统100内的多个部件。例如,包头信息可以指示demux 432将第一数据包的第一拷贝传送至处理模块304a以进一步处理。此外或替代地,包头信息可以指示demux 432将第一拷贝传送至系统100内的其他部件,例如,输入表决模块312a。
具体结合图5,示出示例处理器间通信通道方法500的流程图在504开始。在508,方法500从处理器和系统100的其他内部部件接收多个数据包。在512,方法500复用数据包并发送第一数据包。在516,方法500将序号添加到第一数据包前面。在520,方法500创建第一数据包的第一和第二拷贝。在524,方法500使用前向纠错对第一和第二拷贝进行编码。在524,方法500在串行链路上发送第一和第二拷贝。
特别结合图6,示出替代的处理器间通信通道方法600的流程图在604开始。在608,方法600接收数据包的第一FEC编码拷贝(第一拷贝)和与第一拷贝关联的第一序号。方法600还接收数据包的第二FEC编码拷贝(第二拷贝)和与第二拷贝相关联的第二序号。在612,方法600将第一和第二拷贝以及第一和第二序号传送至接收器控制模块。
在616,方法600将第一和第二拷贝解码。在620,方法600确定第一和第二拷贝是否包括错误。如果真,则方法600在624继续。如果假,则方法600在644继续。在624,方法600确定错误是否可以被纠正。如果真,则方法600在628继续。如果假,则方法600在636继续。在628,方法600将错误纠正。
在632,方法600使错误计数器增量。在636,方法600丢弃包含错误的位。在640,方法600使错误计数器增量。在644,方法600基于检测到的重复的序号消除重复的数据包。在648,方法600对剩下的数据包解复用。在652,方法600基于数据包包头将剩下的数据包路由至系统硬件和软件部件。方法600在656结束。
为了说明和描述的目的,提供了实施例的上面描述。并不致力于穷尽或限制本公开。特定实施例的单个元件或特征通常不限制为特定实施例,而是,在适用的情况下是可互换的,可以被用在选择的实施例中,即使不特别示出或描述。相同的也可以以许多方式变化。这种变化不认为偏离本公开,并且全部这种修改致力于包括在本公开的范围内。
如这里使用,术语模块可以指、部分是或包括:诸如片上系统中的专用集成电路(ASIC)、电子电路、组合逻辑电路、现场可编程栅阵列(FPGA)、执行代码的处理器(共享、专用或分组)、提供所描述的功能的其他适合的硬件部件、或以上所述中的一些或全部的组合。术语模块可以包括用于存储由处理器执行的代码的存储器(共享、专用或分组)。
如上面使用的术语代码可以包括软件、固件、和/或微代码,并且可以指程序、例程、函数、类和/或对象。如上面使用的术语共享意思是多个模块的一些或全部代码可以使用单个(共享的)处理器执行。此外,多个模块的一些或全部代码可以由单个(共享的)存储器存储。如上面使用的术语组,意思是单个模块的一些或全部代码可以使用处理器组来执行。此外,单个模块的一些或全部代码可以使用存储器组存储。
这里描述的装置和方法可以通过由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非临时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括存储的数据。非临时性有形计算机可读介质的非限制性示例是非易失性存储器、磁性存储器和光存储器。
Claims (20)
1.一种包括处理器间通信通道的容错失效保护计算机系统,包括:
发送控制模块,用于将第一数据包编码,并传送所述第一数据包的第一编码拷贝和所述第一数据包的第二编码拷贝;
接收器控制模块,用于i)接收第二数据包的第一编码拷贝和所述第二数据包的第二编码拷贝,并且ii)将所述第一编码拷贝和所述第二编码拷贝解码;
重复删除模块,用于接收多个数据包,并传送所述多个数据包中的至少一个唯一数据包。
2.根据权利要求1所述的系统,进一步包括:
复用器,用于从所述容错计算机系统的多个部件接收多个输入数据包,并将所述第一数据包选择性地传送至所述发送控制模块;以及
解复用器,用于接收所述至少一个唯一数据包,并将所述至少一个唯一数据包选择性地传送至所述容错计算机系统的所述多个部件。
3.根据权利要求1所述的系统,进一步包括用于接收所述第一数据包的第一编码拷贝的第一发送器模块和用于接收所述第一数据包的第二编码拷贝的第二发送器模块。
4.根据权利要求3所述的系统,其中所述第一发送器模块发送所述第一数据包的第一编码拷贝,并且其中所述第二发送器模块发送所述第一数据包的第二编码拷贝。
5.根据权利要求1所述的系统,进一步包括用于接收所述第二数据包的第一编码拷贝的第一接收器模块和用于接收所述第二数据包的第二编码拷贝的第二接收器模块。
6.根据权利要求5所述的系统,其中所述第一接收器模块将所述第二数据包的第一编码拷贝传送至所述接收器控制模块,并且其中所述第二接收器模块将所述第二数据包的第二编码拷贝传送至所述接收器控制模块。
7.根据权利要求1所述的系统,其中所述发送控制模块产生与所述第一数据包关联的序号,并且其中所述第一数据包被前向纠错编码。
8.根据权利要求1所述的系统,其中所述第二数据包的第一编码拷贝和第二编码拷贝包括序号,并且其中所述第二数据包的第一编码拷贝和第二编码拷贝被前向纠错编码。
9.根据权利要求8所述的系统,其中所述接收器控制模块被配置为基于与所述前向纠错编码关联的预定协议而纠正所述第二数据包的第一编码拷贝和第二编码拷贝中的错误。
10.根据权利要求8所述的系统,其中所述重复删除模块接收与所述多个数据包中的每一个关联的序号,并且其中所述重复删除模块比较每个序号,并丢弃与重复的序号关联的数据包。
11.一种用于处理器间通信的方法,包括:
将第一数据包编码;
传送所述第一数据包的第一编码拷贝和所述第一数据包的第二编码拷贝;
接收第二数据包的第一编码拷贝和所述第二数据包的第二编码拷贝;
将所述第一编码拷贝和所述第二编码拷贝解码;
接收多个数据包;以及
传送所述多个数据包中的至少一个唯一数据包。
12.根据权利要求11所述的方法,进一步包括从容错计算机系统的多个部件接收多个输入数据包,将所述第一数据包选择性地传送至发送控制模块,接收所述至少一个唯一数据包,并且将所述至少一个唯一数据包选择性地传送至所述容错计算机系统的所述多个部件。
13.根据权利要求11所述的方法,进一步包括在第一发送器模块处接收所述第一数据包的第一编码拷贝,以及在第二发送器模块处接收所述第一数据包的第二编码拷贝。
14.根据权利要求13所述的方法,进一步包括发送所述第一数据包的第一编码拷贝并发送所述第一数据包的第二编码拷贝。
15.根据权利要求11所述的方法,进一步包括在第一接收器模块处接收所述第二数据包的第一编码拷贝,以及在第二接收器模块处接收所述第二数据包的第二编码拷贝。
16.根据权利要求15所述的方法,进一步包括将所述第二数据包的第一编码拷贝传送至接收器控制模块,并将所述第二数据包的第二编码拷贝传送至所述接收器控制模块。
17.根据权利要求11所述的方法,进一步包括产生与所述第一数据包关联的序号,其中将第一数据包编码包括前向纠错编码。
18.根据权利要求11所述的方法,其中所述第二数据包的第一编码拷贝和第二编码拷贝包括序号,并且其中所述第二数据包的第一编码拷贝和第二编码拷贝被前向纠错编码。
19.根据权利要求18所述的方法,进一步包括基于与所述前向纠错编码关联的预定协议而纠正所述第二数据包的第一编码拷贝和第二编码拷贝中的错误。
20.根据权利要求18所述的方法,进一步包括接收与所述多个数据包中的每一个关联的序号,比较每个序号,并且丢弃与重复的序号关联的数据包。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361916445P | 2013-12-16 | 2013-12-16 | |
US61/916,445 | 2013-12-16 | ||
US14/219,051 US9317359B2 (en) | 2013-12-16 | 2014-03-19 | Reliable, low latency hardware and software inter-process communication channel for safety critical system |
US14/219,051 | 2014-03-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104714517A true CN104714517A (zh) | 2015-06-17 |
CN104714517B CN104714517B (zh) | 2018-01-19 |
Family
ID=53369752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410784049.0A Active CN104714517B (zh) | 2013-12-16 | 2014-12-16 | 用于安全关键系统的可靠、低延迟的硬件和软件进程间通信通道 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9317359B2 (zh) |
CN (1) | CN104714517B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104038364B (zh) * | 2013-12-31 | 2015-09-30 | 华为技术有限公司 | 分布式流处理系统的容错方法、节点及系统 |
CN108206835B (zh) * | 2016-12-16 | 2021-11-26 | 株洲中车时代电气股份有限公司 | 一种综合数据采集装置及其数据一致性验证测试方法 |
US10338995B2 (en) * | 2017-03-10 | 2019-07-02 | Artesyn Embedded Computing, Inc. | End to end FPGA diagnostics for a safety system |
US10372579B2 (en) * | 2017-03-10 | 2019-08-06 | Artesyn Embedded Computing, Inc. | FPGA mismatched packet stop for a safety system |
US10621024B2 (en) * | 2017-09-11 | 2020-04-14 | Smart Embedded Computing, Inc. | Signal pairing for module expansion of a failsafe computing system |
CN108011698B (zh) * | 2017-11-13 | 2020-05-22 | 北京全路通信信号研究设计院集团有限公司 | 一种基于双系同步的rssp-i安全通信方法 |
US11546239B2 (en) | 2021-03-31 | 2023-01-03 | Versa Networks, Inc. | Data packet traffic conditioning with packet striping through lossy data paths |
US11683126B2 (en) * | 2021-03-31 | 2023-06-20 | Versa Networks, Inc. | Data packet traffic conditioning through multiple lossy data paths with forward error correction |
US11916674B2 (en) * | 2021-03-31 | 2024-02-27 | Versa Networks, Inc. | Data packet traffic conditioning through a lossy data path with forward error correction |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1313969A (zh) * | 1998-06-18 | 2001-09-19 | 艾利森电话股份有限公司 | 多处理器容错系统中的处理器同步 |
CN1394310A (zh) * | 2000-09-06 | 2003-01-29 | 皇家菲利浦电子有限公司 | 处理器间通信系统 |
US6938192B1 (en) * | 2001-12-07 | 2005-08-30 | Broadband Energy Networks | Method and system for increasing reliability of data packet transmission against impulsive noise in powerline communication systems |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778250A (en) * | 1994-05-23 | 1998-07-07 | Cirrus Logic, Inc. | Method and apparatus for dynamically adjusting the number of stages of a multiple stage pipeline |
ATE406017T1 (de) * | 1999-05-11 | 2008-09-15 | British Telecomm | Optisches kommunikationsnetzwerk |
EP1364552B1 (en) * | 2001-02-28 | 2006-08-30 | International Business Machines Corporation | Switching arrangement and method with separated output buffers |
US6985975B1 (en) * | 2001-06-29 | 2006-01-10 | Sanera Systems, Inc. | Packet lockstep system and method |
JP4318412B2 (ja) * | 2001-08-08 | 2009-08-26 | 富士通株式会社 | 通信システムにおける送受信装置及び送受信方法 |
US8392810B2 (en) * | 2010-01-25 | 2013-03-05 | Qualcomm Incorporated | Majority vote error correction |
US8325726B2 (en) * | 2010-02-09 | 2012-12-04 | Juniper Networks, Inc. | Data structure-less distributed fabric multicast |
US8537697B2 (en) * | 2010-02-19 | 2013-09-17 | Gigamon Inc. | Packet timing measurement |
US8559442B2 (en) * | 2011-07-22 | 2013-10-15 | Cisco Technology, Inc. | Diverse path forwarding through trial and error |
US9444727B2 (en) * | 2012-10-16 | 2016-09-13 | Cisco Technology, Inc. | Duplicating traffic along local detours before path remerge to increase packet delivery |
-
2014
- 2014-03-19 US US14/219,051 patent/US9317359B2/en active Active
- 2014-12-16 CN CN201410784049.0A patent/CN104714517B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1313969A (zh) * | 1998-06-18 | 2001-09-19 | 艾利森电话股份有限公司 | 多处理器容错系统中的处理器同步 |
CN1394310A (zh) * | 2000-09-06 | 2003-01-29 | 皇家菲利浦电子有限公司 | 处理器间通信系统 |
US6938192B1 (en) * | 2001-12-07 | 2005-08-30 | Broadband Energy Networks | Method and system for increasing reliability of data packet transmission against impulsive noise in powerline communication systems |
Non-Patent Citations (2)
Title |
---|
徐新海等: "一种面向 CPU-GPU 异构系统的容错方法", 《软件学报》 * |
李文瑶: "多核与容错技术", 《计算机与信息技术》 * |
Also Published As
Publication number | Publication date |
---|---|
US9317359B2 (en) | 2016-04-19 |
US20150171893A1 (en) | 2015-06-18 |
CN104714517B (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714517A (zh) | 用于安全关键系统的可靠、低延迟的硬件和软件进程间通信通道 | |
CN104714862A (zh) | 用于安全和任务关键系统的表决架构 | |
RU2410264C2 (ru) | Способ и система для беспроводного дистанционного управления локомотивом с использованием неявной последовательной нумерации сообщений | |
US10120772B2 (en) | Operation of I/O in a safe system | |
EP3045987B1 (en) | Control device and control method | |
US9367375B2 (en) | Direct connect algorithm | |
JP3953952B2 (ja) | エラー許容型分散コンピュータシステムでのエラー処理 | |
CN110166354B (zh) | 一种包含片上网络容错路由的数据处理系统 | |
JP6509477B2 (ja) | 制御装置および制御プログラム | |
KR102147750B1 (ko) | 컴퓨터, 상기 컴퓨터를 포함하는 통신 유닛, 상기 유닛을 포함하는 철도 관리 시스템, 및 컴퓨터 내에서 데이터 신뢰도를 개선하는 방법 | |
US20110022936A1 (en) | Sending device, receiving device, communication control device, communication system, and communication control method | |
CA2952045A1 (en) | System, method, and apparatus for generating vital messages on an on-board system of a vehicle | |
CN112383457B (zh) | 一种基于CANopen协议的安全从站系统 | |
CN108572638B (zh) | 用于安全系统的fpga不匹配数据包的停止 | |
CN111016967B (zh) | 区间监控方法、装置、系统、计算机设备和存储介质 | |
CN104714853A (zh) | 使用cots组件的容错故障安全计算机系统 | |
CN108572893B (zh) | 用于安全系统的端到端fpga诊断的方法和系统 | |
JP2008146236A (ja) | 二重化制御装置、及びその制御権設定信号の冗長化方法 | |
CN104714510A (zh) | 用于容错故障安全计算机系统的基于任务的表决 | |
US8264948B2 (en) | Interconnection device | |
CN108415403B (zh) | 一种计算机联锁数据采集控制安全处理方法 | |
JP7082084B2 (ja) | 情報送受信システム、情報送受信方法、および、プログラム、ならびに、連動論理処理装置、および、電子端末 | |
JP6059652B2 (ja) | 信号保安用制御装置 | |
US20200287845A1 (en) | Method and system for a geographical hot redundancy | |
CN117873514A (zh) | 用于安全计算机平台的在线更新系统、方法、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |