CN104714853B - 使用cots组件的容错故障安全计算机系统 - Google Patents
使用cots组件的容错故障安全计算机系统 Download PDFInfo
- Publication number
- CN104714853B CN104714853B CN201310687214.6A CN201310687214A CN104714853B CN 104714853 B CN104714853 B CN 104714853B CN 201310687214 A CN201310687214 A CN 201310687214A CN 104714853 B CN104714853 B CN 104714853B
- Authority
- CN
- China
- Prior art keywords
- chassis
- packet
- health signal
- safety
- signal
- 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
- 230000036541 health Effects 0.000 claims abstract description 164
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 49
- 230000003862 health status Effects 0.000 description 26
- 230000006854 communication Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 18
- 238000012544 monitoring process Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1637—Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
Abstract
本申请公开使用COTS组件的容错故障安全计算机系统。该系统包括安全相关组件,该安全相关组件响应于接收执行任务的请求生成数据分组并且传递数据分组。该系统进一步包括第一故障安全底架(FSC),该第一故障安全底架连续地生成第一底架健康信号,确定数据分组是否有效,并且基于该确定选择性地确定是否使第一底架健康信号失效。该系统还包括第二FSC,该第二FSC连续地生成第二底架健康信号,确定数据分组的复本是否有效,并且基于该确定选择性地确定是否使第二底架健康信号失效。该系统进一步包括安全继电器箱模块,该安全继电器箱模块基于第一底架健康信号和第二底架健康信号确定是否指示第一FSC在预确定的模式下操作。
Description
技术领域
本公开内容涉及容错故障安全计算机系统。
背景技术
该部分提供与本公开内容相关的背景信息,该背景信息不一定是现有技术。
本文提供的背景描述是为了概括地呈现本公开内容的背景。当前命名的发明人的工作,就其在该背景部分中描述的范围以及不可能另外成为提交时的现有技术的描述的方面而言,既不明确地也不隐含地被认为是相对于本公开内容的现有技术。
外部安全系统,如轨道系统,可以包括被配置为实现安全应用的容错故障安全计算机系统。该容错故障安全计算机系统可以包括多个硬件组件,该多个硬件组件以电气方式和以逻辑方式联接来实现安全应用。安全应用选择性地与安全临界硬件和软件通信。将安全临界硬件和软件配置为控制轨道系统的安全相关功能。
例如,在轨道系统上行驶的火车包括制动系统。该制动系统配置为实现至少一个安全相关功能,如制动功能。该制动系统包括制动器和被配置为对该制动器进行促动的软件。该软件接收指令来对该制动器进行促动。例如,火车的驾驶员可以操作制动系统用户界面,以指示该软件对该制动器进行促动。该轨道系统的错误组件可以定期地生成差错指令来对该制动器进行促动。相应地,被配置为验证由外部安全系统接收的指令的容错故障安全计算机系统是期望的。
发明内容
该部分提供本公开内容的一般概括,并且不是本公开内容的全部范围或本公开内容的全部特征的全面公开。
一种系统包括安全相关组件,所述安全相关组件响应于接收执行任务的请求生成数据分组并且传递所述数据分组。所述系统进一步包括第一故障安全底架(FSC),该第一故障安全底架连续地生成第一底架健康信号,确定所述数据分组是否有效,并且基于该确定选择性地确定是否使所述第一底架健康信号失效。该系统还包括第二FSC,该第二FSC连续地生成第二底架健康信号,确定所述数据分组的复本是否有效,并且基于该确定选择性地确定是否使所述第二底架健康信号失效。该系统进一步包括安全继电器箱模块,该安全继电器箱模块基于所述第一底架健康信号和所述第二底架健康信号确定是否指示所述第一FSC在预确定的模式下操作。
在其它特征中,一种方法包括:响应于接收执行任务的请求,生成数据分组;传递所述数据分组;连续地生成第一底架健康信号;确定所述数据分组是否有效;基于该确定选择性地确定是否使所述第一底架健康信号失效;连续地生成第二底架健康信号;确定所述数据分组的复本是否有效;基于该确定选择性地确定是否使所述第二底架健康信号失效;以及基于所述第一底架健康信号和所述第二底架健康信号,确定是否指示第一FSC在预确定的模式下操作。
适用性的进一步方面将从本文提供的描述中变得明显。该发明内容中的描述和特定示例旨在仅用于说明目的,而不旨在限制本公开的范围。
附图说明
本文描述的附图仅用于所选择实施例的说明用途,而不是用于所有可能的实现,并且不旨在限制本公开的范围。
图1是根据本公开内容原理的容错故障安全计算机系统的功能框图;
图2是根据本公开内容原理的故障安全底架的功能框图;以及
图3是图示根据本公开内容原理的容错故障安全计算机的操作方法的流程图。
在附图的若干图中,相对应的附图标记始终表示相对应的部分。
具体实施方式
现在将参考附图更全面地描述示例实施例。
现在参考图1,示出示例性容错故障安全计算机系统100的功能框图。将系统100布置为与安全应用交互。例如,作为非限定示例,将系统100布置为与安全临界硬件和软件关联轨道系统通信。安全临界硬件和软件控制轨道系统的安全相关组件。例如,安全临界硬件可以联接至在轨道系统上操作的列车的制动系统。进一步,系统100也许能够根据工业认可的安全标准被验证。
安全临界硬件从安全临界软件接收数据元素,以促动制动系统的制动器。系统100与安全临界硬件和软件交互,以保证安全临界硬件和软件正根据预确定的操作标准操作。要理解,尽管仅描述列车的制动系统,但是本公开的原理适用于任何安全临界硬件和软件。用于本文描述的实施例的其它可能应用包括但不限于:飞机系统的组件、医学治疗系统的组件、油和气控制系统的组件、智能电网系统的组件、以及各种制造系统的组件。
在一些实现中,系统100从外部安全系统(如轨道系统)接收多个进入数据分组。将系统100配置为处理多个进入数据分组,并且将多个外出数据分组传递给外部安全系统的安全相关组件。例如,系统100确定多个进入数据分组中的第一分组是否是有效分组。当系统100确定第一分组是有效分组时,系统100将外出分组传递给轨道系统的至少一个安全相关组件。
第一分组包括要由轨道系统的至少一个安全相关组件行动的数据元素。数据元素可以包括传感器数据和/或输入/输出(I/O)点状态。该至少一个安全相关组件可以是与在轨道系统上行驶的列车联接的制动器。要理解,尽管仅描述外部安全系统的安全相关组件,但是第一分组可以包括要由外部安全系统的非安全相关组件行动的数据元素。根据传输协议对数据元素进行格式编排。例如,将轨道系统配置为根据预确定的封装标准将数据元素封装为可传输的分组。然后,轨道系统根据传输协议传输多个进入数据分组。
将系统100布置为接收根据传输协议传输的分组。进一步,将系统100配置为解释预确定的封装标准。然后,系统100从第一分组中提取数据元素,并且基于数据元素生成外出数据分组。外出数据分组包括基于数据元素的一组指令。尽管仅讨论指令,但是外出数据分组还可以包括控制I/O的操作指令、读取输入来搜集信息的请求、健康消息通信、对中间过程通信的请求、或其它适合的元素。该组指令包括至少一个指令,该至少一个指令指示安全临界硬件和软件中至少之一运行过程。
例如,该组指令可以指示安全临界软件运行制动过程。制动过程包括硬件制动指令。将硬件制动指令传递给安全临界硬件。安全临界硬件运行制动指令。例如,安全临界硬件施加制动。
系统100确定是否要将外出数据分组和数据元素传递给安全临界硬件和软件。例如,系统100保证多个进入数据分组中每个进入数据分组满足预确定的安全标准。预确定的安全标准包括确定轨道系统是否正根据一组预限定的操作标准操作。系统100验证多个进入数据分组中每个数据分组是由轨道系统100有意传输的。仅例如,轨道系统可以传递由轨道系统内的硬件或软件错误引起的差错进入数据分组。
安全临界硬件和软件响应于来自轨道系统的操作者的命令接收多个进入数据分组中的第一分组。安全临界硬件和软件接收多个进入数据分组中由轨道系统中的错误引起的第二分组。仅作为非限定示例,轨道系统中的错误可以包括硬件故障,如由对热或潮湿的延长暴露引起的恶化电连接。安全临界硬件和软件将包括第一分组和第二分组的多个进入数据分组传递至系统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和待命FSC108。为了提高系统100的可用性和可靠性,活跃FSC104和待命FSC108是冗余FSC。例如,将活跃FSC104配置为运行待命FSC108的任何和全部操作。以此方式,当活跃FSC104和待命FSC108之一遇到硬件或软件故障时,活跃FSC104和待命FSC108中另一个被配置为代替故障的FSC操作。
活跃FSC104实现二选二(2oo2)表决体系结构,该二选二表决体系结构检测表决不匹配并且在发生表决不匹配时执行故障安全操作。2oo2表决体系结构包括双冗余处理和表决子系统。冗余处理和表决子系统对进入或离开活跃FSC104的分组进行表决。例如,活跃FSC104接收多个进入数据分组。活跃FSC104接收多个进入数据分组中第一分组的两个复本。
活跃FSC104确定第一分组的有效性。活跃FSC104基于第一分组是否有效的确定,连续地生成第一健康状态信号和第二健康状态信号。在一些实现中,连续地生成信号可以包括将该信号设置为第一预确定的值。然后,所连续生成的信号保持在该第一预确定的值,直到将该信号失效为第二预确定的值。
活跃FSC104将第一分组的这两个复本的每个复本进行比较。当这两个复本相同时,活跃FSC104确定第一分组是有效的。当活跃FSC104确定第一分组是有效的时,活跃FSC104连续地生成第一健康状态信号和第二健康状态信号。可以将第一健康状态信号和第二健康状态信号生效(assert)为第一值。在一些实现中,第一值等于1。在另一实现中,第一值可以是表示该FSC104是健康的一串字符。
相反,当活跃FSC104确定第一分组的这两个复本不相同时,活跃FSC104使第一健康状态信号和第二健康状态信号失效(de-assert)。要理解,第一健康状态信号和第二健康状态信号可以被失效为第二值。例如,第二值可以等于0。在另一实现中,第二值可以是表示该FSC104不健康的一串字符。如下面将更详细地描述的,活跃FSC104包括第一处理器和第二处理器。当第一处理器确定第一分组的复本是有效的时,第一处理器连续地生成第一健康状态信号。类似地,当第二处理器确定第一分组的第二复本是有效的时,第二处理器连续地生成第二健康状态信号。
活跃FSC104将第一健康状态信号和第二健康状态信号传递至系统100。系统100监视第一健康状态信号和第二健康状态信号,以确定活跃FSC104是否是健康的。例如,当系统100接收第一健康状态信号和第二健康状态信号时,系统100确定活跃FSC104是健康的。相反,当系统100未收到第一健康状态信号和第二健康状态信号之一时,系统100确定活跃FSC104是不健康的。
如下面将更详细地讨论的,系统100指示活跃FSC104在安全状态下操作,以便保持系统100的安全。要理解,尽管仅关于被失效(de-asserted)的第一状态信号和第二状态信号讨论表决不匹配,但是系统100内的任何硬件或软件故障可以导致第一状态信号和第二状态信号之一被失效。健康状态信号可以表示系统100正根据预确定的操作标准操作。以此方式,健康状态信号表示系统100是健康的。
当活跃FSC104确定第一分组的这两个复本不相同时,活跃FSC104确定已经发生表决错误。活跃FSC104根据已经发生表决错误的确定,生成错误信号。该错误信号表示系统100内检测到的错误。该错误可以由系统100内或外部安全系统内的硬件或软件故障引起。出于可用性的原因,如果活跃FSC104遇到硬件或软件故障,则系统100迫使活跃FSC104至预确定的安全状态。然后,待命FSC108作为活跃FSC操作。
活跃FSC104和待命FSC108中每个FSC均可以包括多个通信链路。这些通信链路包括但不限于上行链路、下行链路和用户界面。上行链路是较高层设备的双向通信信道。该较高层设备可以是在总体系统体系结构中包括的系统硬件。例如,较高层设备可以是轨道系统的轨道制动系统的组件。
下行链路是较低层硬件的双向通信信道。例如,较低层硬件可以包括与较高层设备通信的交换机和中继器。下行链路可以依照任何适合的硬件标准实现。例如,可以将下行链路实现为RS-232、RS-422、RS-485、CAN、MVB、以太网、以太网HSR环网或其它适合的技术。用户界面是被设计为允许系统100的用户访问系统100的组件和子系统的界面。仅例如,可以将用户界面实现为多个发光二极管(LED)。
通信链路与系统100外部的硬件组件和软件应用通信。进一步,将系统100配置为接收输入并将输出传递给现场工程师。例如,现场工程师可以通过与系统100的用户界面通信,选择性地配置系统100。
将活跃FSC104和待命FSC108中每个FSC布置为运行健康和安全应用。例如,活跃FSC104和待命FSC108包括存储器和处理器。健康和安全应用可以是被加载到活跃FSC104和待命FSC108的存储器内的软件。然后,健康和安全应用由活跃FSC104和待命FSC108的处理器运行。
健康和安全应用监视并控制活跃FSC104和待命FSC108。例如,健康和安全应用生成多个健康信号。多个健康信号可以包括但不限于模块健康信号和屏蔽信号。健康和安全应用基于例如活跃FSC104中的错误,生成多个信号。健康和安全应用是功能安全子系统,其被设计为检测故障并通过迫使活跃FSC104或待命FSC108之一进入安全状态来对故障做出响应。
要理解,健康和安全应用可以包括在外部安全系统上运行的任何安全应用。这可以包括在一组数据元素由轨道系统的硬件和软件运行以前保证该组数据元素的有效性和安全性。还将健康和安全应用配置为,在该健康和安全应用检测到系统100中的故障时,保证轨道系统在预确定的安全状态下操作。
活跃FSC104和待命FSC108中每个FSC包括处理子系统。活跃FSC104处理子系统包括主中央处理单元(CPU)116a和检查器CPU120a。类似地,待命FSC108处理子系统包括主CPU116b和检查器CPU120b。将主CPU116a和116b中每个CPU配置为相同。类似地,将检查器CPU120a和120b中每个检查器配置为相同。以此方式,主CPU116a、主CPU116b、检查器CPU120a和检查器CPU120b起到提高系统100的可用性和可靠性的作用。
为监视和控制系统100的总体健康和安全,还将主CPU116a和检查器CPU120a配置为相同。例如,主CPU116a和检查器CPU120a运行相同的软件并且实现相同的处理功能。将主CPU116a和检查器CPU120a配置为执行相同的功能,以便保持安全临界硬件和软件的全硬件错误和差错检测覆盖,并且允许以正确的顺序对外出分组进行表决。
在一些实现中,主CPU116a从轨道系统的安全临界硬件或软件中至少之一中接收执行任务的请求。该执行任务的请求基于由安全临界硬件和软件从外部安全系统的操作者接收的命令。例如,轨道系统的操作者可以命令在轨道系统上行驶的列车提高速度。操作者可以促动列车内的物理操纵杆。将物理操纵杆布置为生成表示提高列车速度的命令的信号。将该信号传递至安全临界硬件和软件。
在运行该命令以前,安全临界硬件和软件将安全相关任务传递至系统100。将系统100配置为解释该信号并且确定与该信号关联的请求任务。然后,系统100确定所请求的任务是否表示安全相关任务。例如,所请求的任务可以是安全相关任务或者非安全相关任务。在一个示例中,非安全相关任务包括指示安全临界硬件和软件返回在轨道系统内操作的列车的当前状态的指令。在另一示例中,安全相关任务包括指示安全临界硬件和软件提高列车速度的指令。
系统100将所请求的任务与一系列预限定的任务进行比较。基于预限定的任务,系统100确定所请求的任务是否是安全相关的。当系统100确定所请求的任务是安全相关任务时,系统100生成与所请求的任务对应的分组。要理解,尽管本文只描述安全相关任务,但是系统100可以根据任何任务生成分组。系统100将分组传递至主CPU116a。将主CPU116a和检查器CPU120a都配置为,在安全临界硬件和软件运行所请求的任务以前验证分组的有效性。例如,执行任务的请求可以是多个进入数据分组之一。
同时,检查器CPU120a接收与所请求的任务对应的同一分组的复本。将主CPU116a和检查器CPU120a中每个CPU都配置为将分组的复本传递至主CPU116a和检查器CPU120a中的另一CPU。在主CPU116a指示安全临界硬件和软件执行所请求的任务以前,主CPU116a和检查器CPU120a对由主CPU116a和检查器CPU120a中每个CPU接收的分组进行比较。例如,主CPU116a和检查器CPU120a对分组执行2oo2表决。
当分组是相同的时,主CPU116a指示安全临界硬件和软件执行所请求的任务。例如,主CPU116a和检查器CPU120a生成与所请求的任务关联的外出分组。当表决成功时(即,分组是相同的),主CPU116a将外出分组传递至安全临界硬件和软件去运行所请求的任务。
外出分组可以包括控制I/O的操作数据元素、读取输入来搜集信息的请求、健康消息、对中间过程通信的请求、或与安全临界硬件和软件关联的其它适合的请求。操作数据元素可以包括指示安全临界硬件和软件之一运行预确定的过程的一组指令。例如,操作数据元素可以指示安全临界软件运行加速过程。加速过程包括控制至少一个安全临界硬件组件。该至少一个硬件组件包括列车的节流阀机构。
相反,当分组不相同时,主CPU116a和检查器CPU120a不指示安全临界硬件和软件执行所请求的任务。主CPU116a生成错误信号。该错误信号表示系统100、安全临界硬件和软件或外部安全系统内的故障。以此方式,主CPU116验证所请求的任务是来自有效源(即外部硬件组件或软件应用)的有效请求。
仅例如,主CPU116a接收由外部硬件故障、软件差错或整体系统失灵引起的执行任务的差错请求。要理解,尽管仅描述主CPU116a和检查器CPU120a,但是上面描述的原理还适用于主CPU116b和检查器CPU120b。
活跃FSC104和待命FSC108中每个FSC均包括多个输入/输出单元(IOU)模块。活跃FSC104包括IOU模块128a-128f。下文中,将IOU模块128a-128f称为IOU模块128。类似地,待命FSC108包括IOU模块132a-132f,IOU模块132a-132f与IOU模块128a-128f相同。下文中,将IOU模块132a-132f称为IOU模块132。
活跃FSC104和待命FSC108每个还包括表决子系统、输入/输出(I/O)子系统以及分别的交换模块124a和交换模块124b。将交换模块124a和交换模块124b配置为相同。交换模块124a和交换模块124b将从I/O子系统接收的分组路由至主CPU116a和116b以及检查器CPU120a和120b。
例如,交换模块124a可以将从主CPU116a接收的分组路由至外部网络组件。进一步,交换模块124a从外部组件接收分组并且将所接收的分组路由至主CPU116a、检查器CPU120b以及I/O子系统。进一步,交换模块124a将所接收的分组传递至表决子系统。应当理解,尽管仅描述交换模块124a,但是上面描述的原理还适用于交换模块124b。
IOU模块128实现活跃FSC104内的I/O子系统。将该I/O系统配置为提供下层网络设备和主CPU116a及检查器CPU120a之间的网关。IOU模块128将主CPU116a和检查器CPU120a与由外部硬件和软件需要的下层协议隔离。以此方式,IOU模块128在内部以太网上添加安全层,以支持主CPU116a、检查器CPU120a和外部硬件和软件之间的安全通信。IOU模块128和交换模块124a可以被共同称为前刀片(blade)124a-128f。类似地,IOU模块132和交换模块124b可以被共同称为前刀片124b-132f。
活跃FSC104和待命FSC108还包括多个后端转换模块(RTM)。活跃FSC104包括RTM136a-136i。待命FSC108包括RTM140a-140i。应当理解,由于待命FSC108是活跃FSC104的冗余配置,所以RTM136a-136i与RTM140a-140i是相同的。在一些实现中,RTM136a-136i中每个可以是可热交换的现场可更换单元(FRU)。
例如,RTM136a-136i中每个RTM可以由现场工程师在不必首先对全部系统100断电的情况下移除和更换。RTM136a-136i允许活跃FSC104与外部硬件组件和软件组件通信。例如,RTM136a以电的方式和以逻辑方式将主CPU116a联接至活跃FSC104外部的组件。类似地,RTM136b以电的方式和以逻辑方式将待命FSC108联接至外部的硬件组件和软件组件。
前刀片124a-128f每个包括第一存储器位置和第二存储器位置。第一存储器位置和第二存储器位置存储从活跃FSC104的对应硬件组件接收的值。例如,主CPU116a连续地生成表示主CPU116a的模块健康状况的模块健康信号(上面描述的)。当模块健康信号表示主CPU116a是健康的时,主CPU116a将“1”存储在第一存储器位置中。
前刀片124a-128f和主CPU116a中每个均生成模块健康信号。前刀片124a-128f中每个前刀片将表示模块健康信号的值存储在第一存储器位置中。仅例如,当模块健康信号表示交换模块124a是健康的时,交换模块124a将“1”存储在与交换模块124a关联的第一存储器位置中。
相反,当模块健康信号表示交换模块124a是不健康的时,交换模块124a将“0”存储在第一存储器位置中。要理解,尽管仅描述交换模块124a,但是本文讨论的原理适用于系统100内的所有模块。进一步要理解,尽管仅描述基于模块健康信号存储“1”和“0”,但是可以使用任何适合的指示符来表示系统100内的每个模块的健康状况。然后,系统100内的每个模块将存储在关联的第一存储器位置中的值传递至主CPU116a。
主CPU116a基于与由前刀片124a-128f中每个前刀片生成的模块健康信号和由主CPU116a生成的模块健康信号对应的多个值的接收,确定活跃FSC104是否是健康的。仅例如,当所接收的与模块健康信号对应的值中每个值表示系统100内的每个模块均是健康的时,主CPU116a确定活跃FSC104是健康的。相反,当所接收的与模块健康信号对应的值中至少一个值表示系统100内的模块中至少一个模块是不健康的时,主CPU116a确定活跃FSC104是不健康的。
在另一实现中,将表示模块健康信号的值存储在在系统100的前端配置的模块中。例如,当模块健康信号表示主CPU116a是健康的时,在系统100的与RTM136相对侧配置的模块将“1”存储在第一存储器位置中。要理解,尽管仅描述主CPU116a,但是本文描述的原理适用于检查器CPU120a。
主CPU116a接收多个进入数据分组中的第一分组。同时,检查器CPU120a接收第一分组的复本。主CPU116a和检查器CPU120a确定第一分组和第一分组的复本是否相同。当第一分组和第一分组的复本相同时,主CPU116a连续地生成模块健康信号。可以将模块健康信号设置为1或者高的信号值。模块健康信号的值表示活跃FSC104的健康状况。主CPU116a将“1”存储在第一存储器位置中。
相反,当第一分组和第一分组的复本不相同时,主CPU116a生成无效的模块健康信号。例如,主CPU116a使模块健康信号失效。主CPU116a将“0”存储在第一存储器位置中。主CPU116a接收表示主CPU116a内的屏蔽寄存器的状态的屏蔽信号。例如,屏蔽寄存器是主CPU116a和检查器CPU120a中每个CPU内的可编程的位。
当所请求的任务是安全相关的任务时,设置屏蔽寄存器。例如,当系统100确定所请求的任务是安全相关任务时,将屏蔽寄存器设置为1。当屏蔽信号表示主CPU116a内的屏蔽寄存器被设置为1时,RTM136a将“1”存储在第二存储器位置中。相反,当屏蔽信号表示主CPU116a内的屏蔽寄存器被设置为0时,RTM136a将“0”存储在第二存储器位置中。
系统100还包括监视狗计时器应用。监视狗计时器应用是持续运行的监视狗功能,其表示主CPU116a是否已经停止运行代码。例如,监视狗计时器应用监视主CPU116a。主CPU116a生成监视狗计时器复位信号。主CPU116a将监视狗计时器复位信号传递至监视狗计时器应用。监视狗计时器应用确定监视狗计时器复位信号是否是在预限定的时间段内接收的。例如,预限定的时间段可以是1分钟。预限定的时间段可以是可配置的项。
监视狗计时器应用根据监视狗计时器复位信号生成监视狗健康信号。例如,当主CPU116a在预限定的时间段以后传递监视狗计时器复位信号时,监视狗计时器应用将监视狗健康信号设置为0。相反,当主CPU116a在预限定的时间段内传递监视狗计时器复位信号时,监视狗计时器应用将监视狗健康信号设置为1。换言之,当主CPU116a不能在预限定的时间段内与监视狗应用通信时,监视狗计时器应用确定主CPU116a内的错误。例如,错误可以是主CPU116a被卡在软件循环中的结果。要理解,尽管上面仅描述主CPU116a,但是将检查器CPU120a配置为与主CPU116a相同的任务。
RTM136a传递表示主CPU116a的总体健康状况的模块健康值。例如,将RTM136a配置为对存储在第一存储器位置中的值和存储在第二存储器位置中的值执行逻辑“或(OR)”。例如,当存储在第一存储器位置中的值是0并且存储在第二存储器位置中的值是0时,RTM136a将传递0的模块健康值。
当存储在第一存储器位置中的值是1并且存储在第二存储器位置中的值是0时,RTM136a传递1的模块健康值。要理解,将RTM136a-136i中每个RTM配置为对存储在与前刀片124a-128f中每个前刀片关联的存储器中的值执行逻辑“或”。
RTM136a和136b将底架健康值传递至安全继电器箱模块144。安全继电器箱模块144基于多个底架健康值,选择性地确定系统100内的FSC中哪个FSC将是活跃FSC并且哪个FSC将是待命FSC。例如,安全继电器箱模块144从RTM136a、RTM136b、RTM140a和RTM140b接收多个底架健康值。RTM136a基于由主CPU116a和前刀片124a-128f生成的模块健康信号的累积结果和存储在屏蔽寄存器中的值,生成第一底架健康值。
RTM136a将底架健康值传递至安全继电器箱模块144。类似地,RTM136b基于由检查器CPU120a和前刀片124a-128f生成的模块健康信号的累积结果和存储在屏蔽寄存器中的值,生成第二底架健康值。RTM140a基于由主CPU116b和前刀片124b-132f生成的模块健康信号的累积结果和存储在屏蔽寄存器中的值,生成第三底架健康值。类似地,RTM140b基于由检查器CPU120b和前刀片124b-132f生成的模块健康信号的累积结果和存储在屏蔽寄存器中的值,生成第四底架健康值。
安全继电器箱模块144确定活跃FSC104和待命FSC108中哪个FSC将作为系统100内的活跃FSC操作。例如,安全继电器箱模块144基于第一底架健康值至第四底架健康值确定活跃FSC104将作为系统100内的活跃FSC操作。当第一底架健康信号和第二底架健康信号表示活跃FSC104是健康的时,安全继电器箱模块144确定活跃FSC104将是系统100内的活跃FSC。
安全继电器箱模块144基于活跃FSC确定,生成活跃FSC信号和待命FSC信号。例如,安全继电器箱模块144生成第一活跃FSC信号和第二活跃FSC信号。第一活跃FSC信号和第二活跃FSC信号是冗余信号,它们都表示选择哪个FSC作为活跃FSC操作。安全继电器箱模块144还生成第一待命FSC信号和第二待命FSC信号。
第一待命FSC信号和第二待命FSC信号是冗余信号,它们都表示选择哪个FSC作为待命FSC操作。安全继电器箱模块144将第一活跃FSC信号和第一待命FSC信号传递至活跃FSC104。类似地,安全继电器箱模块144将第二活跃FSC信号和第二待命FSC信号传递至待命FSC108。
安全继电器箱模块144还基于第一底架健康信号至第四底架健康信号确定在活跃FSC104和待命FSC108之一中是否已出现错误。例如,当安全继电器箱模块144从RTM136a和RTM136b之一接收无效底架健康信号时,安全继电器箱模块144确定在活跃FSC104中已发生错误。例如,无效底架健康信号可以是0的底架健康值。安全继电器箱模块144基于无效的底架健康信号生成待命信号。安全继电器箱模块144将待命信号传递至活跃FSC104。活跃FSC104基于该待命信号确定是否进入故障安全状态。例如,当活跃FSC104接收待命信号时,活跃FSC104确定进入故障安全状态。
安全继电器箱模块144基于底架健康值生成活跃信号。安全继电器箱模块144将活跃信号传递至待命FSC108。活跃信号向待命FSC108指示活跃FSC104正操作在故障安全状态或待命状态。当待命FSC108接收活跃信号时,待命FSC108开始作为活跃FSC操作。以此方式,安全继电器箱模块144迫使有故障的活跃FSC进入故障安全状态,并且提示待命FSC担当活跃FSC的角色。
在一些实现中,将安全继电器箱模块144配置为与多个商业现货供应(COTS)产品通信。例如,活跃FSC104和待命FSC108可以是在系统100内实现的COTS产品。根据预确定的实现标准,对活跃FSC104和待命FSC108进行配置。实现标准包括预限定的通信协议。
将安全继电器箱模块144配置为根据通信协议接收和解释来自活跃FSC104和待命FSC108的信号和消息。以此方式,无论活跃FSC104和待命FSC108的物理属性如何,只要活跃FSC104和待命FSC108服从通信协议,安全继电器箱模块144就与活跃FSC104和待命FSC108通信。要理解,安全继电器箱模块144与系统100内的任何组件通信。进一步,系统100内的任何组件可以使用COTS产品实现,只要该任何组件服从通信协议。
在一些实现中,I/O子系统还从像轨道系统的硬件组件和软件组件这样的外部源接收分组。所接收的分组可以包括上面讨论的多个进入数据分组。然后,I/O子系统将所接收的分组传递至表决子系统。
表决子系统是功能安全子系统并且被配置为检测故障和对故障做出响应。当表决子系统检测活跃FSC104和待命FSC108之一中的差错时,表决子系统迫使活跃FSC104和待命FSC108的该之一进入故障安全状态。表决子系统执行处理子系统的错误检测。例如,主CPU116a和检查器CPU120a基于所请求的任务生成外出分组。
表决子系统将由主CPU116a生成的外出分组与由检查器CPU120a生成的外出分组进行比较。当这些外出分组相同时,表决子系统将分组的单个复本传递至交换模块124a和I/O子系统。当外出分组不同时,表决子系统迫使活跃FSC104进入故障安全状态。以此方式,表决子系统检测活跃FSC104和待命FSC108之一中的错误。当检测活跃FSC104和待命FSC108之一中的错误时,表决子系统通过迫使有错误的FSC进入故障安全状态,将系统100带入安全状态。
表决子系统还从I/O子系统接收分组。例如,IOU模块128经由交换模块124a与表决子系统通信。IOU模块128将第一分组传递至交换模块124a。交换模块124a复制第一分组。例如,交换模块124a生成第二分组。第二分组是第一分组的复本。交换模块124a将第一分组传递至主CPU116a和检查器CPU120a。主CPU116a和检查器CPU120a如上面描述的那样对第一分组和第二分组运行表决逻辑。以此方式,表决子系统验证所接收的分组的有效性。
在另一示例中,由于外部组件中的硬件(如轨道系统中的安全临界硬件)失灵,第一分组可能与第二分组不同。当表决子系统确定第一分组与第二分组不同时,安全应用迫使活跃FSC104进入故障安全状态。此外或可替代地,可以悄悄地丢弃不匹配的分组。例如,主CPU116a和检查器CPU120a都不基于第一分组和第二分组生成外出分组。以此方式,系统100可以避免由其它可恢复的差错引起的过多故障转移/故障安全转换。在另一实现中,可以将输入表决配置为导致故障转移/故障安全转换。
现在参考图2,200处示出根据本公开原理的示例性故障安全底架(FSC)的框图。FSC200包括主CPU204和检查器CPU208。主CPU204和检查器CPU208运行相同的软件并且实现相同的处理功能。将主CPU204和检查器CPU208配置为执行相同的功能,以便保持安全临界硬件和软件的全硬件错误和差错检测覆盖。
例如,主CPU204从外部安全系统的安全临界硬件或软件至少之一中接收执行任务的请求。外部安全系统可以是需要根据预确定的安全标准操作的系统,如轨道系统。轨道系统包括安全临界硬件和软件。安全临界硬件和软件与轨道系统的组件交互,以便控制轨道系统的方面。例如,安全临界硬件和软件控制在轨道系统内操作的列车。
执行任务的请求可以包括但不限于:确定硬件组件的状态、接合轨道系统的制动器或者向轨道系统的操作者指示在轨道系统内操作的列车的位置。执行任务的请求是以分组的形式接收的。例如,执行任务的请求可以是多个进入数据分组之一。
同时,检查器CPU208接收同一请求的复本。将主CPU204和检查器CPU208中每个CPU都配置为将所请求的任务的复本传递至主CPU204和检查器CPU208中的另一CPU。在主CPU204执行所请求的任务以前,主CPU204和检查器CPU208对由主CPU204和检查器CPU208中每个CPU接收的所请求的任务进行比较。
当所请求的任务相同时,主CPU204和检查器CPU208将所请求的任务传递至安全临界硬件和软件。例如,主CPU204和检查器CPU208生成与所请求的任务关联的外出分组。外出分组包括操作数据元素。操作数据元素可以包括指示安全临界硬件和软件之一运行预确定的过程的一组指令。例如,操作数据元素可以指示安全临界软件运行制动器接合过程。制动器接合过程包括控制至少一个安全临界硬件组件。该至少一个硬件组件可以包括轨道系统的制动器机构。
相反,当所请求的任务不同时,主CPU204和检查器CPU208不将所请求的任务传递至安全临界硬件和软件。以此方式,主CPU204验证所请求的任务是来自有效源(即外部硬件组件或软件应用)的有效请求。仅例如,主CPU204接收由外部硬件故障、软件差错或整体系统失灵引起的执行任务的差错请求。
主CPU204和检查器CPU208包括屏蔽寄存器。屏蔽寄存器是主CPU204和检查器CPU208内的可编程的位。在屏蔽寄存器内存储的值是所请求的任务是否是安全相关任务的指示。例如,当系统100确定所请求的任务是安全相关任务时,将屏蔽寄存器设置为1。进一步,当系统100最初起动时,健康和安全应用设置屏蔽寄存器。
主CPU204和检查器CPU208每个均基于所请求的任务是否相同的确定,连续地生成模块健康信号。当主CPU204和检查器CPU208确定所请求的任务相同时,主CPU204和检查器CPU208连续地生成模块健康信号脉冲。当主CPU204和检查器CPU208确定所请求的任务不同时,主CPU204和检查器CPU208使模块健康信号脉冲失效。
主CPU204和检查器CPU208基于由与FSC200关联的多个模块中每个模块生成的多个模块健康信号脉冲,生成底架健康信号脉冲。FSC200包括与关于活跃FSC104描述的那些特征类似的特征。例如,FSC200包括如上面描述的前刀片124a-128f。FSC200内的每个模块连续地生成模块健康信号(如上面所述的)。当多个模块健康信号表示FSC200是健康的时,主CPU204生成第一底架健康信号脉冲。换言之,当屏蔽寄存器表示所请求的任务是安全相关的并且多个模块健康信号表示FSC200是健康的时,第一底架健康信号脉冲被连续地生效(即设置为1)。
要理解,当屏蔽寄存器表示所请求的任务不是安全相关的时(即屏蔽寄存器被设置为0),可以使第一模块健康信号脉冲失效。然而,将不运行安全相关的过程(即,迫使活跃FSC204进入安全状态。以此方式,当在安全相关任务期间发生错误时,仅实现故障转移/故障安全过程。底架健康信号脉冲表示FSC200的总体健康状况。
要理解,关于主CPU204描述的原理适用于检查器CPU208。检查器CPU208基于由与FSC200关联的多个模块中每个模块生成的多个模块健康信号脉冲,生成第二底架健康信号脉冲。当多个模块健康信号表示FSC200是健康的时,检查器CPU208连续地生成第二底架健康信号脉冲。主CPU204将第一底架健康信号脉冲传递至安全继电器箱212。类似地,检查器CPU208将第二底架健康信号脉冲传递至安全继电器箱212。
安全继电器箱模块212基于多个底架健康信号,选择性地确定FSC200是否将作为活跃FSC操作。例如,当初始化FSC200时,安全继电器箱模块212开始从主CPU204接收底架健康信号脉冲。安全继电器箱212还开始从检查器CPU208接收底架健康信号脉冲。安全继电器箱模块212基于底架健康信号,确定FSC200将被选择作为活跃FSC。
在一些实现中,安全继电器箱模块212还从另一FSC接收多个底架健康信号脉冲。安全继电器箱模块212基于多个底架健康信号脉冲,确定FSC200或另一FSC将被选择作为活跃FSC。例如,安全继电器箱模块212首先确定FSC200或另一FSC之一是否是健康的。当从FSC200接收的底架健康信号脉冲表示FSC200是健康的时,安全继电器箱模块212确定FSC200是健康的。例如,当安全继电器箱模块212从FSC200接收底架健康信号时,安全继电器箱模块212确定FSC200是健康的。
类似地,当从另一FSC接收的多个底架健康信号脉冲表示另一FSC是健康的时,安全继电器箱模块212确定另一FSC是健康的。当安全继电器箱模块212确定FSC200和另一FSC都是健康的时,安全继电器箱模块212基于FSC200和另一FSC中哪个FSC首先传递多个底架健康信号脉冲之一,选择活跃FSC。例如,当FSC200在另一FSC向安全继电器箱模块212传递信号以前向安全继电器箱模块212传递信号时,安全继电器箱212选择FSC200作为活跃FSC。
安全继电器箱模块212监视活跃FSC的健康状况。例如,安全继电器箱模块212从FSC200接收第一底架健康信号脉冲和第二底架健康信号脉冲。安全继电器箱模块212基于第一底架健康信号脉冲和第二底架健康信号脉冲,确定在FSC200中是否已发生错误。当第一底架健康信号脉冲和第二底架健康信号脉冲表示所请求的任务的不匹配时,安全继电器箱模块212确定在FSC200中已经发生错误。换言之,当安全继电器箱模块212未收到第一底架健康信号脉冲和第二底架健康信号脉冲之一时,安全继电器箱模块212确定已经发生错误。
当安全继电器箱模块212确定在FSC200中已经发生错误时,安全继电器箱模块212生成故障安全信号。安全继电器箱模块212将故障安全信号传递至活跃FSC200。FSC200基于该故障安全信号确定是否进入安全状态。例如,当FSC20接收故障安全信号时,FSC200进入安全状态。相反,FSC200将继续在活跃FSC模式下操作,除非FSC200接收故障安全信号。
可替代地,当FSC200未收到活跃信号时,FSC200可以进入待命状态。当安全继电器箱模块212确定FSC200要作为活跃FSC操作时,安全继电器箱模块212传递活跃信号。安全继电器箱模块212将活跃信号连续地传递至FSC200。当安全继电器箱模块212确定FSC200有错误时,安全继电器箱模块212不将活跃信号传递至FSC200。然后,FSC200操作在待命状态。
在一些实现中,将多个底架健康信号脉冲实现为动态脉冲信号,以消除未检测到的潜在的故障模式。将安全继电器箱模块212配置为确定脉冲信号被卡在0还是被卡在1。例如,安全继电器箱212从主CPU204接收第一脉冲信号。将安全继电器箱模块212配置为等待一预确定的时间段。
例如,该预确定的时间段可以是与对于使动态脉冲复位而言足够长的时间对应的时间段。当在预确定的时间段以后尚未复位第一脉冲信号时,安全继电器箱模块212确定第一脉冲信号被卡住。然后,当安全继电器箱模块212确定第一脉冲信号被卡住时,安全继电器箱模块212确定主CPU204中的错误。安全继电器箱模块212基于确定主CPU204中的错误,生成故障安全信号。
现在参考图3,用于实现使用COTS组件的容错故障安全计算机系统的方法300在步骤304处开始。在步骤308处,方法300初始化容错故障安全计算机系统。在步骤312处,方法300接收多个健康信号。在步骤316处,方法300基于多个健康信号选择活跃的故障安全底架(FSC)和待命FSC。在步骤320处,方法300使活跃的选择信号和待命的选择信号生效。方法300将活跃的选择信号和待命的选择信号传递至活跃FSC和待命FSC。在步骤324处,方法300接收多个FSC健康脉冲。在步骤328处,方法300确定健康脉冲至少之一被卡在1处还是被卡在0处。当方法300确定健康脉冲该至少之一被卡在1处或者被卡在0处时,方法300在步骤340处继续。当方法300确定健康脉冲该至少之一不被卡在1处或者不被卡在0处时,方法300在步骤332处继续。
在步骤332处,方法300基于健康脉冲确定在活跃FSC中是否发生错误。当方法300确定在活跃FSC中发生错误时,方法300在步骤340处继续。当方法300确定在活跃FSC中未发生错误时,方法300在步骤336处继续。在步骤336处,方法300对健康脉冲进行复位。方法300在步骤324处继续,在步骤340处,方法300迫使活跃FSC进入故障安全状态。在步骤344处,方法300指示待命FSC担当活跃FSC的角色。在步骤348处,方法300生成活跃FSC故障指示。方法300在步骤352处结束。
已经为了说明和描述目的提供上面对实施例的描述。描述不旨在是详尽的或者限制本公开内容。特定实施例的单独元件或特征通常不局限于该特定实施例,而是可在适用时互换并且可以在选择的实施例中使用,即便未具体地示出或描述。本发明还可以以多种方式变化。这样的变化不应被视为背离本公开内容,并且所有这样的修改旨在包含在本公开内容的范围内。
本文中使用的术语“模块”可以指下面的组件、可以是下面的组件的一部分,或者可以包括下面的组件:专用集成电路(ASIC)、电子电路、组合逻辑电路、现场可编程门阵列(FPGA)、运行代码的处理器(共享的、专用的或它们的组合)、提供所描述的功能的其它适合的硬件组件、或者上面组件中一些组件或全部组件的组合,如在片上系统中。术语“模块”可以包括存储由处理器运行的代码的存储器(共享的、专用的或它们的组合)。
上面使用的术语“代码”可以包括软件、固件和/或微代码,并且可以指程序、例程、函数、类和/或对象。上面使用的术语“共享的”指来自多个模块的一些代码或全部代码可以使用单个(共享的)处理器运行。此外,来自多个模块的一些代码或全部代码可以由单个(共享的)存储器存储。上面使用的术语“组合”指来自单个模块的一些或全部代码可以使用一组处理器运行。此外,来自单个模块的一些或全部代码可以使用一组存储器存储。
本文描述的装置和方法可以被由一个或多个处理器运行的一个或多个计算机程序实现。计算机程序包括在非瞬态有形计算机可读介质上存储的处理器可运行指令。计算机程序还可以包括存储的数据。非瞬态有形计算机可读介质的非限定性示例是非易失性存储器、磁性存储和光存储。
提供示例实施例,使得本公开内容将全面并且将本公开内容的范围完整地传达给本领域的技术人员。阐述多个特定细节,如特定组件、特定设备和特定方法的示例,以提供本公开内容实施例的全面理解。对本领域技术人员将显而易见的是,不需要使用具体细节,示例实施例可以以多种不同形式体现并且这两种情况都不应被解释为限制本公开内容的范围。在一些示例实施例中,未详细描述众所周知的过程、众所周知的设备结构以及众所周知的技术。
本文中使用的术语仅用于描述特定示例实施例用途,而不旨在作为限制。本文中使用的单数形式“一”、“该”和“此”可以旨在还包括复数形式,除非上下文明确地表示别的含义。术语“包括”、“包含”、“涵盖”和“具有”是包括性的,因此规定所介绍的特征、整体、步骤、操作、元件和/或部件的存在,但是不排除存在或增加一个或多个其它特征、整体、步骤、操作、元件、部件和/或它们的组合。本文中描述的方法步骤、过程和操作不应被解释为必须要求以所介绍或所图示的特定顺序表现,除非特定地被标识为表现的顺序。还应理解,可以采用附加步骤或可替代的步骤。
当元件或层被称为“位于另一元件或层上”、“与另一元件或层接合”、“与另一元件或层连接”或者“与另一元件或层联接”,其可以直接位于另一元件或层上、直接与另一元件或层接合、直接与另一元件或层连接或者直接与另一元件或层联接,或者可以存在介于中间的元件或层。相比之下,当元件被称为“直接位于另一元件或层上”、“直接与另一元件或层接合”、“直接与另一元件或层连接”或者“直接与另一元件或层联接”时,可以没有介于中间的元件或层。用来描述元件之间关系的其它词语应当以类似的方式去解释(例如“在……之间”对“直接在……之间”、“与……相邻”对“与……直接相邻”等)。术语“和/或”,当在本文中使用时,包括相关联列出的项目中的一个或多个项目的任一组合和全部组合。
虽然在本文中可以使用术语“第一”、“第二”、“第三”等来描述多个元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语可以仅用来将一个元件、组件、区域、层或部分与另一区域、层或部分区分开。像“第一”、“第二”和其它数字术语这样的术语,当其在本发明中使用时,不指顺序或次序,除非上下文清楚地这样表示。因此,下面介绍的第一元件、第一组件、第一区域、第一层或第一部分可以被称为第二元件、第二组件、第二区域、第二层或第二部分,而不背离示例实施例的教导。
为了便于描述,在本文中可以使用像“内”、“外”、“下面”、“下方”、“下”、“上面”、“上”等等这样的与空间有关的术语来描述附图中所示的一个元件或特征与别的元件或特征的关系。空间有关的术语可以旨在涵盖在使用中或在操作中的设备除附图所示的方向以外的不同方向。例如,如果附图中的设备翻转,那么被描述为“位于其它元件或特征下方”或“位于其它元件或特征下面”的元件将朝向“其它元件或特征上方”。因此,示例术语“下面”可以包括上面和下面两个朝向。设备可以朝向别的方向(旋转90度或朝向其它方向),相应地解释本发明中使用的与空间有关的描述词。
Claims (20)
1.一种容错故障安全计算机系统,包括:
安全相关组件,该安全相关组件响应于接收执行任务的请求生成数据分组并且传递所述数据分组;
第一故障安全底架,该第一故障安全底架:
连续地生成第一底架健康信号和第二底架健康信号,
确定所述数据分组是否有效,以及
基于所述确定,选择性地确定是否使所述第一底架健康信号和所述第二底架健康信号失效;
第二故障安全底架,该第二故障安全底架:
连续地生成第三底架健康信号和第四底架健康信号,
确定所述数据分组的复本是否有效,以及
基于该确定,选择性地确定是否使所述第三底架健康信号和所述第四底架健康信号失效;以及
安全继电器箱模块,该安全继电器箱模块基于所述第一底架健康信号、所述第二底架健康信号、所述第三底架健康信号和所述第四底架健康信号确定是否指示所述第一故障安全底架在预确定的模式下操作。
2.根据权利要求1所述的容错故障安全计算机系统,其中所述第一故障安全底架包括第一主CPU和第一检查器CPU,所述第一主CPU接收所述数据分组的第一复本,所述第一检查器CPU接收所述数据分组的第二复本。
3.根据权利要求2所述的容错故障安全计算机系统,其中所述第一主CPU基于在屏蔽寄存器中存储的值确定所请求的任务是否是安全相关的任务。
4.根据权利要求3所述的容错故障安全计算机系统,其中所述第一主CPU响应于所请求的任务是安全相关的任务的确定,将所述数据分组的所述第一复本传递至所述第一检查器CPU,并且其中所述第一检查器CPU响应于所请求的任务是安全相关的任务的确定,将所述数据分组的所述第二复本传递至所述第一主CPU。
5.根据权利要求4所述的容错故障安全计算机系统,其中所述第一主CPU基于所述数据分组的所述第一复本和所述数据分组的所述第二复本之间的第一比较,生成第一错误信号,并且其中所述第一检查器CPU基于所述数据分组的所述第二复本和所述数据分组的所述第一复本之间的第二比较,生成第二错误信号。
6.根据权利要求5所述的容错故障安全计算机系统,其中所述第一故障安全底架基于所述第一错误信号和所述第二错误信号,指示所述安全相关组件执行所述任务。
7.根据权利要求1所述的容错故障安全计算机系统,其中所述第一故障安全底架确定第一屏蔽寄存器的第一状态,并且其中所述第二故障安全底架确定第二屏蔽寄存器的第二状态。
8.根据权利要求7所述的容错故障安全计算机系统,其中所述安全继电器箱模块基于所述第一底架健康信号、所述第二底架健康信号、所述第一状态和所述第二状态,指示所述第一故障安全底架在所述预确定的模式下操作。
9.根据权利要求7所述的容错故障安全计算机系统,其中所述安全继电器箱模块基于所述第一底架健康信号和所述第一状态,确定是否指示所述第一故障安全底架在安全状态下操作。
10.根据权利要求9所述的容错故障安全计算机系统,其中所述第二故障安全底架基于所述安全继电器箱模块指示所述第一故障安全底架在所述安全状态下操作,确定是否在所述预确定的模式下操作。
11.一种操作容错故障安全计算机系统的方法,包括:
响应于接收执行任务的请求,生成数据分组;
传递所述数据分组;
连续地生成第一底架健康信号和第二底架健康信号;
确定所述数据分组是否有效;
基于该确定,选择性地确定是否使所述第一底架健康信号和所述第二底架健康信号失效;
连续地生成第三底架健康信号和第四底架健康信号;
确定所述数据分组的复本是否有效;
基于该确定,选择性地确定是否使所述第三底架健康信号和所述第四底架健康信号失效;以及
基于所述第一底架健康信号、所述第二底架健康信号、所述第三底架健康信号和所述第四底架健康信号,确定是否指示第一故障安全底架在预确定的模式下操作。
12.根据权利要求11所述的操作容错故障安全计算机系统的方法,进一步包括:接收所述数据分组的第一复本并接收所述数据分组的第二复本。
13.根据权利要求12所述的操作容错故障安全计算机系统的方法,进一步包括:基于在屏蔽寄存器中存储的值,确定所请求的任务是否是安全相关的任务。
14.根据权利要求13所述的操作容错故障安全计算机系统的方法,进一步包括:响应于所请求的任务是安全相关的任务的确定,传递所述数据分组的所述第一复本,以及响应于所请求的任务是安全相关的任务的确定,传递所述数据分组的所述第二复本。
15.根据权利要求14所述的操作容错故障安全计算机系统的方法,进一步包括:基于所述数据分组的所述第一复本和所述数据分组的所述第二复本之间的第一比较,生成第一错误信号,并且基于所述数据分组的所述第二复本和所述数据分组的所述第一复本之间的第二比较,生成第二错误信号。
16.根据权利要求15所述的操作容错故障安全计算机系统的方法,进一步包括:基于所述第一错误信号和所述第二错误信号,指示安全相关组件执行所述任务。
17.根据权利要求12所述的操作容错故障安全计算机系统的方法,进一步包括:确定第一屏蔽寄存器的第一状态并确定第二屏蔽寄存器的第二状态。
18.根据权利要求17所述的操作容错故障安全计算机系统的方法,进一步包括:基于所述第一底架健康信号、所述第二底架健康信号、所述第一状态和所述第二状态,指示第一故障安全底架在所述预确定的模式下操作。
19.根据权利要求17所述的操作容错故障安全计算机系统的方法,进一步包括:基于所述第一底架健康信号和所述第一状态,确定是否指示所述第一故障安全底架在安全状态下操作。
20.根据权利要求19所述的操作容错故障安全计算机系统的方法,进一步包括:基于所述第一故障安全底架在所述安全状态下操作,确定第二故障安全底架是否会在所述预确定的模式下操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310687214.6A CN104714853B (zh) | 2013-12-16 | 2013-12-16 | 使用cots组件的容错故障安全计算机系统 |
US14/140,686 US9665447B2 (en) | 2013-12-16 | 2013-12-26 | Fault-tolerant failsafe computer system using COTS components |
KR1020140091963A KR101623510B1 (ko) | 2013-12-16 | 2014-07-21 | 상용 제품 컴포넌트를 사용하는 결함 허용형 고장안전 컴퓨터 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310687214.6A CN104714853B (zh) | 2013-12-16 | 2013-12-16 | 使用cots组件的容错故障安全计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104714853A CN104714853A (zh) | 2015-06-17 |
CN104714853B true CN104714853B (zh) | 2018-05-04 |
Family
ID=53368584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310687214.6A Active CN104714853B (zh) | 2013-12-16 | 2013-12-16 | 使用cots组件的容错故障安全计算机系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9665447B2 (zh) |
KR (1) | KR101623510B1 (zh) |
CN (1) | CN104714853B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734006B2 (en) * | 2015-09-18 | 2017-08-15 | Nxp Usa, Inc. | System and method for error detection in a critical 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 |
CN112363606B (zh) * | 2020-09-19 | 2024-02-23 | 北京仁歌科技股份有限公司 | 电源控制方法、装置、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154145A (zh) * | 2006-09-27 | 2008-04-02 | 奇梦达股份公司 | 存储控制器、存储电路及存储系统 |
CN101441586A (zh) * | 2009-01-13 | 2009-05-27 | 首都师范大学 | 基于微包协议的三模冗余容错计算机无缝重构方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7320083B2 (en) * | 2003-04-23 | 2008-01-15 | Dot Hill Systems Corporation | Apparatus and method for storage controller to deterministically kill one of redundant servers integrated within the storage controller chassis |
JP2005004557A (ja) | 2003-06-12 | 2005-01-06 | Keyence Corp | 安全リレーシステム用入力ユニット、安全リレーシステムおよび安全リレーの制御方法 |
DE102004058288A1 (de) * | 2004-12-02 | 2006-06-08 | Robert Bosch Gmbh | Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten |
US8676760B2 (en) * | 2008-08-05 | 2014-03-18 | International Business Machines Corporation | Maintaining data integrity in data servers across data centers |
-
2013
- 2013-12-16 CN CN201310687214.6A patent/CN104714853B/zh active Active
- 2013-12-26 US US14/140,686 patent/US9665447B2/en active Active
-
2014
- 2014-07-21 KR KR1020140091963A patent/KR101623510B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154145A (zh) * | 2006-09-27 | 2008-04-02 | 奇梦达股份公司 | 存储控制器、存储电路及存储系统 |
CN101441586A (zh) * | 2009-01-13 | 2009-05-27 | 首都师范大学 | 基于微包协议的三模冗余容错计算机无缝重构方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150169427A1 (en) | 2015-06-18 |
KR101623510B1 (ko) | 2016-05-23 |
KR20150069993A (ko) | 2015-06-24 |
CN104714853A (zh) | 2015-06-17 |
US9665447B2 (en) | 2017-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714855B (zh) | 安全系统中的输入/输出操作 | |
CN104765587B (zh) | 用于使处理器同步到相同的计算点的系统和方法 | |
CN104714853B (zh) | 使用cots组件的容错故障安全计算机系统 | |
CN104714517B (zh) | 用于安全关键系统的可靠、低延迟的硬件和软件进程间通信通道 | |
CN104977907B (zh) | 容错性失效保护系统和方法 | |
CN104714862B (zh) | 用于安全和任务关键系统的表决架构 | |
KR101966235B1 (ko) | 통신 네트워크를 동작시키기 위한 방법 및 네트워크 어레인지먼트 | |
CN107005446A (zh) | 具有冗余ccdl的双通道架构 | |
CN107077103A (zh) | 双向架构 | |
CN108572638B (zh) | 用于安全系统的fpga不匹配数据包的停止 | |
CN107229534A (zh) | 混合双重双工故障操作模式和对任意数量的故障的概述 | |
CN104714510B (zh) | 用于容错故障安全计算机系统的基于任务的表决 | |
US8510594B2 (en) | Control system, control computer and method for operating a control system | |
CN109491842A (zh) | 用于故障安全计算系统的模块扩展的信号配对 | |
CN108572893B (zh) | 用于安全系统的端到端fpga诊断的方法和系统 | |
JP5612995B2 (ja) | 入力バイパス型のフェイルセーフ装置及びフェイルセーフ用プログラム | |
CN109144758A (zh) | 安全系统的菊花链 | |
JP6286285B2 (ja) | 制御システム及び鉄道信号システム |
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 | ||
CB02 | Change of applicant information |
Address after: Arizona, USA Applicant after: ARTESYN EMBEDDED COMPUTING, INC. Address before: Arizona, USA Applicant before: Emerson Network Power-Embedded Computing, Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |