安全系统的菊花链的制作方法

文档序号:16530882发布日期:2019-01-05 10:44阅读:415来源:国知局
安全系统的菊花链的制作方法

本公开涉及容错故障安全计算机系统。



背景技术:

本部分提供不一定是现有技术的、涉及本公开的背景信息。

本文提供的背景描述是为了大体呈现本公开的背景。在本背景部分中描述范围内的目前命名的发明人的工作以及在申请时可能不符合现有技术的条件的描述的各方面既不明确地,也不隐含地被承认为针对本公开的现有技术。

诸如铁路系统的外部安全系统可以包括被配置为实现安全应用的容错故障安全计算机系统。容错故障安全计算机系统可以包括电气地和逻辑地耦接的多个硬件组件,以实现安全应用。安全应用选择性地与安全关键硬件和软件通信。安全关键硬件和软件被配置为控制铁路系统的安全相关功能。

例如,行驶在铁路系统上的列车包括制动系统。制动系统被配置为实现至少一个安全相关功能,例如制动功能。制动系统包括制动器和被配置为致动制动器的软件。软件接收用于致动制动器的指令。例如,列车的操作员可以操作制动系统用户界面以指示软件致动制动器。偶尔,铁路系统的故障组件可能生成致动制动器的错误指令。因此,期望一种被配置为验证由外部安全系统接收的指令的容错故障安全计算机系统。

此外,随着外部安全系统网络的范围和复杂性不断增大,通过这种网络传输的数据量同样地在增加。常规的容错故障安全计算机系统常常缺乏处理日益增长的数据吞吐量的i/o容量。因此,期望一种被配置为解决一个或多个前述问题的容错故障安全计算机系统。



技术实现要素:

本部分提供了本公开的总体概述,并非全面披露其全部范围或全部特征。

在特征中,提供了一种容错故障安全计算机系统。容错故障安全计算机系统可以包括具有第一计算机和可操作地连接到第一计算机的第二计算机的第一计算机系统。容错故障安全计算机系统还可以包括可操作地连接到第一计算机和第二计算机的活跃计算机系统确定模块。第一计算机可以被配置为从第二计算机接收指示第二计算机中的故障的第二计算机正常信号。此外,第一计算机可以被配置成生成第一计算机系统正常信号,该第一计算机系统正常信号指示第一计算机、第二计算机或作为容错故障安全计算机系统的第一计算机系统的部分而被包括的任何其它计算机中的故障。活跃计算机系统确定模块可以被配置为从第一计算机接收第一计算机系统正常信号并基于第一计算机系统正常信号生成待机信号。第二计算机可以被配置为接收待机信号并且基于待机信号禁用第二计算机的一个或多个输出端口。

在另一特征中,容错故障安全计算机系统的第一计算机系统还可以包括可操作地连接到第一计算机和第二计算机的第三计算机。在该特征中,第二计算机可以被进一步配置为将待机信号转发给第三计算机。第三计算机可以被配置为接收待机信号并且基于待机信号禁用第三计算机的一个或多个输出端口。

在特征中,第一计算机可以被配置为通过第一通信信道接收第二计算机正常信号。第二计算机可以被配置为通过第二通信信道接收待机信号。第一通信信道和第二通信信道可以是不同的通信信道。在一个特征中,第一通信信道可以是以太网通信信道。

在另一特征中,容错故障安全计算机系统可以包括第二计算机系统,该第二计算机系统具有可操作地连接到活跃计算机系统确定模块的第四计算机。第四计算机可以被配置为接收由活跃计算机系统确定模块生成的活跃信号,并基于活跃信号启用第四计算机的一个或多个输出端口。

在特征中,容错故障安全计算机系统的第二计算机系统包括可操作地连接到活跃计算机系统确定模块和第四计算机的第五计算机。第五计算机可以被配置为接收由活跃计算机系统确定模块生成的活跃信号,并基于活跃信号启用第五计算机的一个或多个输出端口。

在一个特征中,容错故障安全计算机系统的第二计算机系统包括可操作地连接到第四计算机和第五计算机的第六计算机。第六计算机可以被配置为接收由第五计算机转发给第六计算机的活跃信号,并且基于活跃信号启用第六计算机的一个或多个输出端口。

在特征中,活跃计算机系统确定模块可以被进一步配置为同时生成活跃信号和待机信号。在另一特征中,活跃计算机系统确定模块被进一步配置为响应于接收到第一计算机系统正常信号而生成活跃信号。

在一个特征中,第一计算机被进一步配置为通过解除断言预先存在的第一计算机系统正常信号来生成该第一计算机系统正常信号。

在其它特征中,一种方法包括由第一计算机接收第二计算机正常信号。第二计算机正常信号可以表示第二计算机中的故障。第一计算机系统正常信号可以由第一计算机生成。第一计算机正常信号可以表示第一计算机和第二计算机中的至少一个中的故障。活跃计算机系统确定模块可以接收第一计算机系统正常信号。活跃计算机系统确定模块可以生成待机信号。第二计算机可以接收待机信号并且基于待机信号禁用第二计算机的一个或多个输出端口。

根据本文提供的描述,其它适用领域将变得显而易见。本发明内容中的描述和具体示例仅用于说明的目的,而不旨在限制本公开的范围。

附图说明

本文描述的附图仅用于选择的实施例而不是所有可能的实施方式的说明性目的,并且不旨在限制本公开的范围。

图1是根据本公开的原理的容错故障安全计算机系统的功能框图;

图2是根据本公开的原理的故障安全机架的功能框图;

图3是根据本公开原理的基于任务的表决系统的功能框图;

图4是说明根据本公开原理的基于任务的表决计算机操作方法的流程图;

图5是根据本公开的原理的用于安全应用的扩展盒的功能框图;

图6是根据本公开的原理的结合了扩展盒的容错故障安全计算机系统的功能框图;

图7是说明根据本公开的原理的切换活跃计算机系统的方法的流程图;和

图8是根据本公开的原理的扩展盒的后部转换模块的功能框图。

对应的附图标记表示附图的多个视图中的对应的部分。

具体实施方式

现在将参考附图更全面地描述示例实施例。

现在参考图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连续生成第一正常状态信号和第二正常状态信号。第一正常状态信号和第二正常状态信号可以被断言为第一值。在一些实施方式中,第一值等于1。在另一实施方式中,第一值可以是表示fsc104正常的字符串。

相反,当活跃fsc104确定第一包的两个副本不相同时,活跃fsc104解除断言第一正常状态信号和第二正常状态信号。可以理解的是,第一正常状态信号和第二正常状态信号可以被解除断言为第二值。例如,第二值可以等于0。在另一实施方式中,第二值可以是表示fsc104不正常的字符串。如下面将更详细描述地,活跃fsc104包括第一处理器和第二处理器。当第一处理器确定第一包的副本有效时,第一处理器连续生成第一正常状态信号。类似地,当第二处理器确定第一包的第二副本有效时,第二处理器连续地生成第二正常状态信号。

活跃fsc104将第一正常状态信号和第二正常状态信号传送给系统100。系统100监视第一正常状态信号和第二正常状态信号以确定活跃fsc104是否正常。例如,当系统100接收第一正常状态信号和第二正常状态信号时,系统100确定活跃fsc104是正常的。相反,当系统100没有接收到第一正常状态信号和第二正常状态信号中的一个时,系统100确定活跃fsc104不正常。

如将在下面详细讨论地,系统100指示活跃fsc104在安全状态下运行以维持系统100的安全性。可以理解的是,尽管关于第一状态信号和第二状态信号被解除断言仅讨论了表决不匹配,但系统100内的任何硬件或软件故障可能导致第一状态信号和第二状态信号中的一个被解除断言。正常状态信号可以表示系统100正在按照预定的运行标准运行。这样,正常状态信号表示系统100是正常的。

当活跃fsc104确定第一包的两个副本不相同时,活跃fsc104确定发生了表决错误。活跃fsc104基于确定发生了表决错误而生成故障信号。故障信号表示系统100内检测到的故障。该故障可能是由于系统100或外部安全系统内的硬件或软件故障造成的。出于可用性原因,如果活跃fsc104遇到硬件或软件故障,则系统100将活跃fsc104强制到预定的安全状态。然后,待机fsc108作为活跃fsc运行。

活跃fsc104和待机fsc108中的每一个可以包括多个通信链路。通信链路包括但不限于上行链路、下行链路和用户接口。上行链路是到更高级别设备的双向通信信道。更高级别设备可以是整个系统架构中包含的系统硬件。例如,更高级别设备可以是铁路系统的铁路制动系统的组件。

下行链路是到更低级别硬件的双向通信信道。例如,更低级别硬件可以包括与更高级别设备通信的交换机和中继器。可以按照任何合适的硬件标准实现下行链路。例如,下行链路可以被实现为rs-232、rs-422、rs-485、can、mvb、以太网、以太网hsr环或其它合适的技术。用户界面是被设计为允许系统100的用户访问系统100的组件和子系统的界面。仅作为示例,用户界面可以被实现为多个发光二极管(led)。

通信链路与系统100外部的硬件组件和软件应用通信。此外,系统100被配置为接收输入并将输出传送给现场工程师。例如,现场工程师可以通过与系统100的用户界面进行通信来选择性地配置系统100。

活跃fsc104和待机fsc108中的每一个被布置为执行正常和安全应用。例如,活跃fsc104和待机fsc108包括存储器和处理器。正常和安全应用可以是被加载到活跃fsc104和待机fsc108的存储器中的软件。然后,正常和安全应用由活跃fsc104和待机fsc108的处理器执行。

正常和安全应用监视并控制活跃fsc104和待机fsc108。例如,正常和安全应用生成多个正常信号。多个正常信号可以包括但不限于模块正常信号和掩码信号。例如,正常和安全应用基于活跃fsc104中的故障生成多个信号。正常和安全应用是被设计为通过将活跃fsc104和待机fsc108中的一个强制到安全状态来检测和响应故障的功能安全子系统。

可以理解的是,正常和安全应用可以包括在外部安全系统上执行的任何安全应用。这可以包括在由铁路系统的硬件和软件执行一组数据元素之前,确保该组数据元素的有效性和安全性。正常和安全应用也被配置为当正常和安全应用检测到系统100中的故障时,确保铁路系统在预定的安全状态下运行。

活跃fsc104和待机fsc108中的每一个都包括处理子系统。活跃fsc104处理子系统包括主中央处理单元(cpu)116a和检查器cpu120a。类似地,待机fsc108处理子系统包括主cpu116b和检查器cpu120b。主cpu116a和116b中的每一个被配置为相同。类似地,检查器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中的每一个被配置为将包的副本传送到主cpu116a和检查器cpu120a中的另一个。在主cpu116a指示安全关键硬件和软件执行请求的任务之前,主cpu116a和检查器cpu120a比较由主cpu116a和检查器cpu120a中的每一个接收的包。例如,主cpu116a和检查器cpu120a对包进行2oo2表决。

当包相同时,主cpu116a指示安全关键硬件和软件执行请求的任务。例如,主cpu116a和检查器cpu120a生成与请求的任务相关联的传出包。当表决成功(即,包相同)时,主cpu116a将传出包传送到安全关键硬件和软件以执行请求的任务。

传出包可以包括用于控制i/o的运行数据元素、用于读取输入以收集信息的请求、正常消息、进程间通信的请求或与安全关键硬件和软件相关联的其它合适请求。运行数据元素可以包括指示安全关键硬件和软件中的一个执行预定程序的一组指令。例如,运行数据元素可以指示安全关键软件执行加速程序。加速程序包括控制至少一个安全关键硬件组件。该至少一个硬件组件包括列车的节流机构。

相反,当包不相同时,主cpu116a和检查器cpu120a不指示安全关键硬件和软件执行请求的任务。主cpu116a生成故障信号。该故障信号表示系统100、安全关键硬件和软件或外部安全系统内的故障。以这种方式,主cpu116a验证请求的任务是来自有效源(即,外部硬件组件或软件应用)的有效请求。

仅作为示例,主cpu116a由于外部硬件故障、软件错误或整个系统故障而接收到错误的执行任务的请求。可以理解的是,虽然仅描述了主cpu116a和检查器cpu120a,但上述原理也适用于主cpu116b和检查器cpu120b。

活跃fsc104和待机fsc108中的每一个包括多个输入/输出单元(iou)模块。活跃fsc104包括iou模块128a-128f。iou模块128a-128f在下文中将被称为iou模块128。类似地,待机fsc108包括与iou模块128a-128f相同的iou模块132a-132f。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可以统称为前部刀片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中的每一个可以由现场工程师移除并替换而不必首先关闭整个系统100。rtm136a-136i允许活跃fsc104与外部硬件和软件组件通信。例如,rtm136a将主cpu116a电气地和逻辑地耦接到活跃fsc104外部的组件。类似地,rtm136b将待机fsc108电气地和逻辑地耦接到外部硬件和软件组件。

前部刀片124a-128f每个都包括第一存储位置和第二存储位置。第一存储位置和第二存储位置存储从活跃fsc104的对应硬件组件接收的值。例如,主cpu116a连续生成表示主cpu116a的模块正常的(如上所述的)模块正常信号。当模块正常信号表示主cpu116a正常时,主cpu116a在第一存储位置存储1。

前部刀片124a-128f和主cpu116a中的每一个生成模块正常信号。前部刀片124a-128f中的每一个将表示模块正常信号的值存储在第一存储位置。仅作为示例,当模块正常信号表示交换机模块124a正常时,交换机模块124a在与交换机模块124a相关联的第一存储位置存储1。

相反,当模块正常信号表示交换机模块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中的每一个内的可编程位。

当请求的任务是安全相关任务时,设置掩码寄存器。例如,当系统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被配置为对存储在第一存储位置的值和存储在第二存储位置的值进行逻辑或。例如,当存储在第一存储位置的值是0并且当存储在第二存储位置的值是0时,rtm136a将传送为0的模块正常值。

当存储在第一存储位置的值是1并且存储在第二存储位置的值是0时,rtm136a传送为1的模块正常值。可以理解的是,rtm136a-136i中的每一个被配置为对存储在与前部刀片124a-128f中的每一个相关联的存储器内的值进行逻辑或。

rtm136a和136b将机架正常值传送给安全中继盒模块144。安全中继盒模块144基于多个机架正常值,选择性地确定系统100内的哪个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中的哪一个将作为系统100内的活跃fsc运行。例如,安全中继盒模块144基于第一至第四机架正常值确定活跃fsc104将作为系统100内的活跃fsc运行。当第一机架正常信号和第二机架正常信号表示活跃fsc104正常时,安全中继盒模块144确定活跃fsc104将是系统100内的活跃fsc。

基于活跃fsc确定,安全中继盒模块144生成活跃fsc信号和待机fsc信号。例如,安全中继盒模块144生成第一活跃fsc信号和第二活跃fsc信号。第一活跃fsc信号和第二活跃fsc信号是冗余信号,这两个信号都表示哪个fsc被选择作为活跃fsc运行。安全中继盒模块144还生成第一待机fsc信号和第二待机fsc信号。

第一待机fsc信号和第二待机fsc信号是冗余信号,这两个信号都表示哪个fsc被选择作为待机fsc运行。安全中继盒模块144将第一活跃fsc信号和第一待机fsc信号传送给活跃fsc104。类似地,安全中继盒模块将第二活跃fsc信号和第二待机fsc信号传送给待机fsc108。

安全中继盒模块144还基于第一至第四机架正常信号确定在活跃fsc104和待机fsc108中的一个中是否已经发生故障。例如,当安全中继盒模块144从rtm136a和136b中的一个接收到无效机架正常信号时,安全中继盒模块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遵循该通信协议,安全中继盒模块144就与活跃fsc104和待机fsc108进行通信,而不管活跃fsc104和待机fsc108的物理特性。可以理解的是,安全中继盒模块144与系统100内的任何组件通信。此外,只要任何组件遵循该通信协议,系统100内的任何组件都可以利用cots产品来实现。

在一些实施方式中,i/o子系统还接收来自诸如轨道系统的硬件和软件组件的外部源的包。如上所述,接收到的包可以包括多个传入数据包。然后,i/o子系统将接收到的包传送给表决子系统。

表决子系统是一个功能安全子系统,并且被配置为检测和响应故障。当表决子系统在活跃fsc104和待机fsc108中的一个fsc中检测到错误时,表决子系统将活跃fsc104和待机fsc108中的该fsc强制到故障保护状态。表决子系统进行处理子系统的故障检测。例如,主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和检查器120a都不基于第一包和第二包生成传出包。以这种方式,系统100可以避免由于其它可恢复的错误导致的过度的故障转移/故障安全转换。在另一实施方式中,输入表决可以被配置为导致故障转移/故障安全转换。

现在参照图2,在200处示出了根据本公开的原理的示例性故障安全机架(fsc)的框图。fsc200包括主cpu204和检查器cpu208。主cpu204和检查器cpu208执行相同的软件并实现相同的处理功能。主cpu204和检查器cpu208被配置为执行相同的功能,以便保持安全关键硬件和软件的完整硬件故障和错误检测覆盖。

例如,主cpu204从外部安全系统的安全关键硬件或软件中的至少一个接收执行任务的请求。外部安全系统可以是需要按照预定安全标准运行的系统,例如铁路系统。铁路系统包括安全关键硬件和软件。安全关键硬件和软件与铁路系统的组件交互,以控制铁路系统的各个方面。例如,安全关键硬件和软件控制在铁路系统内运行的列车。

执行任务的请求可以包括但不限于:确定硬件组件的状态、接合铁路系统的制动器、或者向铁路系统的操作员表示在铁路系统内运行的列车的位置。以包的形式接收执行任务的请求。例如,执行任务的请求可以是多个传入数据包中的一个。

同时,检查器cpu208接收同一请求的副本。主cpu204和检查器cpu208中的每一个被配置为将请求的任务的副本传送给主cpu204和检查器208中的另一个。在主cpu204执行请求的任务之前,主cpu204和检查器cpu208比较由主cpu204和检查器cpu208中的每一个接收到的请求的任务。

当请求的任务相同时,主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。例如,当fsc200在另一个fsc向安全中继盒模块212传送信号之前,将信号传送到安全中继盒模块212时,安全中继盒模块212选择fsc200作为活跃fsc。

安全中继盒模块212监视活跃fsc的正常状况。例如,安全中继盒模块212从fsc200接收第一机架正常信号脉冲和第二机架正常信号脉冲。安全中继盒模块212基于第一机架正常信号脉冲和第二机架正常信号脉冲确定fsc200中是否已经发生了故障。当第一机架正常信号脉冲和第二机架正常信号脉冲中的至少一个表示请求的任务的不匹配时,安全中继盒212确定fsc200中已经发生了故障。换句话说,当安全中继盒模块212没有接收到第一机架正常信号脉冲和第二机架正常信号脉冲中的一个时,安全中继盒模块212确定已经发生了故障。

在安全中继盒模块212确定fsc200中已经发生了故障时,安全中继盒模块212生成故障安全信号。安全中继盒模块212将故障安全信号传送给fsc200。fsc200基于故障安全信号确定是否进入安全状态。例如,当fsc200接收到故障安全信号时,fsc200进入安全状态。相反,除非fsc200接收到故障安全信号,否则fsc200将继续以活跃fsc模式运行。

可替代地,当fsc200没有接收到活跃信号时,fsc200可以进入待机状态。在安全中继盒模块212确定fsc200将作为活跃fsc运行时,安全中继盒模块212传送活跃信号。安全中继盒模块212连续地将活跃信号传送给fsc200。当安全中继盒模块212确定fsc200发生故障时,安全中继盒模块212不将活跃信号传送给fsc200。然后,fsc200在待机状态下运行。

在一些实施方式中,多个机架正常信号脉冲被实施为动态脉冲信号以消除未检测到的、潜在的故障模式。安全中继盒模块212被配置为确定脉冲信号是卡在0还是卡在1。例如,安全中继盒212从主cpu204接收第一脉冲信号。安全中继盒模块212被配置为等待预定时间段。

例如,预定时间段可以是对应于足够长来重置动态脉冲的时间的时间段。在预定时间段之后第一脉冲信号未被重置时,安全中继盒模块212确定第一脉冲信号被卡住。然后当安全中继盒模块212确定第一脉冲信号被卡住时,安全中继盒模块212确定主cpu204中的故障。基于确定主cpu204中的故障,安全中继盒模块212生成故障安全信号。

在一些实施例中,系统100实现如图3中示出的基于任务的表决系统300。基于任务的表决系统300包括主cpu204和检查器cpu208。主cpu204和检查器cpu208中的每一个包括被配置为执行表决逻辑的现场可编程门阵列(fpga)。例如,主cpu204包括主fpga304,并且检查器cpu208包括检查器fpga308。主fpga304和检查器fpga308中的每一个被配置为实现基于任务的表决逻辑。此外,主fpga304和检查器fpga308中的每一个都被同步到参考时钟。

参考时钟是系统100内的25兆赫(mhz)时钟。参考时钟是系统100内的每个模块同步的公共参考时钟。系统100内的每个模块包括与参考时钟同步的锁相环。例如,系统100内的iou模块可以包括以第一间隔计数的iou时钟。iou模块包括确定第一间隔与参考时钟间隔之间的参考点的第一锁相环。当iou模块与系统100内的另一模块通信时,iou模块基于第一间隔与参考时钟间隔之间的参考点来确定当前参考时钟时间。以这种方式,系统100内的每个模块可以参考每个模块共有的参考时钟上的时间,以在系统100内通信。

主cpu204和检查器cpu208中的每一个被配置为执行系统100外部的软件应用。例如,主cpu204执行如上所述的铁路应用请求的任务。主cpu204被配置为执行铁路应用的第一副本(第一副本)。检查器cpu208被配置为执行铁路应用的第二副本(第二副本)。第一副本和第二副本中的每一个被配置为同时执行任务。例如,当系统100重新启动时,主cpu204和检查器cpu208中的每一个分别启动第一副本和第二副本。第一副本和第二副本与参考时钟同步,以同时执行任务。

主fpga304和检查器fpga308中的每一个被配置为执行多个表决模式中的一个。在一个实施方式中,主fpga304和检查器fpga308被配置为执行基于任务的表决模式。例如,主fpga304包括主软件(sw)写缓冲器312和主硬件(hw)比较缓冲器316。检查器fpga308包括检查器sw写缓冲器320和检查器hw比较缓冲器324。

在参考时钟的第一周期期间,铁路应用的第一副本将要由主cpu204执行的第一多个任务写入主sw写缓冲器312。同时,在参考时钟的第一周期期间,第二副本将要由主cpu204执行的第二多个任务写入检查器sw写缓冲器320。如上所述,主cpu204执行与铁路应用相关联的任务。检查器cpu208与主cpu204相同。然而,只有主cpu204执行与铁路应用相关联的任务。

检查器cpu208被配置为与主cpu204步调一致地运行,然而,检查器cpu208不执行与铁路应用相关联的任务。可以理解的是,第一副本和第二副本是相同的应用。进一步理解的是,第一副本和第二副本彼此独立地运行。基于任务的表决系统300基于写入主sw缓冲器316和检查器sw缓冲器320的任务中的表决不匹配,来确定系统100中是否已经发生故障。

在一个实施方式中,在参考时钟的第二周期期间,主fpga304将主sw写缓冲器312内的第一多个任务复制到主hw比较缓冲器316。参考时钟的第二周期可以在第一周期之后立即发生,或者在第一周期之后的预定数量的周期之后发生。同时,在第二周期期间,检查器fpga308将检查器sw写缓冲器320内的第二多个任务复制到检查器hw比较缓冲器324。以这种方式,在第二周期期间,在第一周期期间由铁路应用写入到主sw写缓冲器312和检查器sw写缓冲器316的多个任务被移到主hw比较缓冲器320和检查器hw比较缓冲器324。

然后,将第一多个任务与第二多个任务进行比较。在示例实施方式中,主fpga304包括主比较模块328,并且检查器fpga308包括检查器比较模块332。主比较模块328接收来自主hw比较缓冲器316的第一任务和来自检查器hw比较缓冲器324的第二任务。主比较模块328将第一任务与第二任务进行比较。主比较模块328基于比较生成第一表决信号。例如,当主比较模块328确定第一任务和第二任务相同时,主比较模块328生成第一表决信号。主比较模块328将第一表决信号传送给主cpu204。相反,当主比较模块328确定第一任务与第二任务不相同时,主比较模块328不生成第一表决信号。

类似地,检查器比较模块332接收来自主hw比较缓冲器316的第一任务和来自检查器hw比较缓冲器324的第二任务。检查器比较模块332将第一任务与第二任务进行比较。然后,检查器比较模块332基于比较生成第二表决信号。例如,当检查器比较模块332确定第一任务和第二任务相同时,检查器比较模块332生成第二表决信号。检查器比较模块332将第二表决信号传送给主cpu204。相反,当检查器比较模块332确定第一任务和第二任务不相同时,检查器比较模块332不生成第二表决信号。

主cpu204基于第一表决信号和第二表决信号确定主fpga304和检查器fpga308中是否发生表决不匹配。表决不匹配可能表示系统100内的故障。作为非限制性示例,当在第一周期期间,第一副本和第二副本中的一个没有写入主sw写缓冲器312或检查器sw写缓冲器320时,可能发生表决不匹配。可替代地,当在第一周期期间,第一副本和第二副本中的一个副本将数据部分写入主sw写缓冲器312或检查器sw写缓冲器320时,可能发生表决不匹配。

在一个实施方式中,当主cpu204接收到第一表决信号和第二表决信号时,主cpu204确定没有发生表决不匹配。如上所述,主cpu204连续生成模块正常信号。当主cpu204未接收到第一表决信号和第二表决信号中的至少一个时,主cpu204确定发生了表决不匹配。

当主cpu204确定已发生表决不匹配时,主cpu204解除断言模块正常信号。可以理解的是,主cpu204可以解除断言先前断言的模块正常信号。例如,模块正常信号可以是连续断言的信号。当主cpu204确定已发生表决不匹配时,主cpu204解除断言模块正常信号。

现在参照图4,用于实现基于任务的表决计算机系统的方法400在404处开始。在408处,在第一时钟周期期间,方法400将第一多个任务写入主sw写缓冲器312。在412处,在第一时钟周期期间,方法400将第二多个任务写入检查器sw写缓冲器320。在416处,在第二时钟周期期间,方法400将第一多个任务复制到主hw比较缓冲器316。在420处,在第二时钟周期期间,方法400将第二多个任务复制到检查器hw比较缓冲器324。在424处,方法400从主hw比较缓冲器324接收第一任务。

在428处,方法400从检查器hw比较缓冲器324接收第二任务。在432处,方法400基于第一任务与第二任务之间的第一比较来生成第一表决信号。在436处,方法400基于第一任务和第二任务之间的第二比较来生成第二表决信号。在440处,方法400确定是否生成了第一表决信号和第二表决信号。如果真,则方法400在444处继续。如果假,则方法400在448处继续。在444处,方法400连续地生成模块正常信号。在448处,方法400解除断言模块正常信号。方法400在452处结束。

现在参照图5,示出了用于安全应用的扩展盒(exb)500的一个示例的功能框图。在一个示例中,exb500实现与以上关于图1所讨论的活跃fsc104和待机fsc108的架构类似的架构。具体而言,exb500可以包括一个或多个cpu502和对应的一个或多个cpurtm518、交换机模块(swm)506和对应的swmrtm522、i/o单元模块508-510和对应的i/o单元模块rtm524-526和一个或多个psu512。

但是,exb500通常将包括比诸如fsc104或fsc108的标准fsc多得多的i/o单元模块。另外,exb500的一个或多个i/o模块通常将包括比以上讨论的活跃fsc104和/或待机fsc108的任何i/o模块更多的端口和信道。

例如,在典型的fsc可能仅包括六个i/o模块(例如,图1中示出的fsc104的i/o模块128a-128f)的情况下,诸如exb500的exb可以包括十个或更多个i/o模块。图5中示出的示例exb500包括i/o模块#1508至i/o模块#x510,其中x可以取任何值,但通常大于六。在一个示例中,exb500可以包括单个机架中的十个(10)9u扩展i/o模块(eiou)和一个(1)4ui/o模块(xiou)。相反,典型的fsc(例如,fsc104)可能仅包括六(6)个4ui/o模块。

通过适应各种i/o类型并在每个i/o模块上允许更多的端口和信道,示例exb500的改进的处理能力可以有效地减小构建大规模应用所需的机架数量。另外,示例exb500提供的更高i/o容量可以有效地处理现代安全应用系统日益增长的数据吞吐量要求。

在示例实施方式中,exb500被配置为将基于任务的表决实现为一种检测容错故障安全计算机系统中的故障的方法。更具体地说,exb500可以被配置为根据上面关于图1-4讨论的技术来实现基于任务的表决。例如,在一个实施方式中,cpu502可以包括经由swm506连接到i/o单元模块508-510的主cpu和检查器cpu。在这样的实施方式中,cpu502的主cpu和检查器cpu可以用于实现基于任务的表决,例如二选二(2oo2)表决机制。在另一示例实施方式中,可以在单个卡上实现cpu502和swm506,共享单个rtm(例如,rtm518)。

示例exb500在以下方面也不同于上面关于图1讨论的fsc104和108:在一些实施方式中,示例exb500包括两个或更多个psu512。例如,exb500可以包括冗余的acpsu,其中的任一个都能够为exb500的所有组件供电。在该示例中,第一psu可以被指定为活跃psu并且被赋予向exb500的组件供电的任务。然后,如果活跃psu故障,可以将供电责任转移到待机psu,以确保exb500的连续运行。例如,运行在cpu502上的软件可以被用来(例如,通过在诸如以太网通信信道的合适的通信信道上的通信)监视psu512的正常状况。

在一个示例中,swm506和i/o单元模块508-510可以经由一个或多个以太网通信信道连接。类似地,在示例实施方式中,swm506可以经由一个或多个以太网通信信道连接到cpu502。在另一示例中(例如,在cpu502和swm506被实现为单个卡的示例实施方式中),i/o单元模块508-510可以经由一个或多个反模块欧罗巴(versamoduleeuropa,vme)总线连接到组合cpu/swm。当然,本领域普通技术人员将认识到,在不偏离本公开的教导的情况下,可以适当地采用采用合适的通信协议的其它合适的通信信道。

每个i/o单元模块被配置为向cpu502发送正常状态信号,表示其是否正常工作或者是否存在故障。在一些示例中,每个i/o单元模块可以发送表示其正常工作的定期正常状态信号(例如,“我很好”消息)。在这样的示例中,如果从cpu502接收到表示特定i/o单元模块(例如,iou#1508)正在正常工作的正常状态信号之后经过了预定量的时间,则cpu502将这一失去联系视为i/o单元模块中的故障并且将相应地作出响应(该响应将在下面另外详细地讨论)。在另一示例中,每个i/o单元模块可以发送表示其正在正常工作的恒定正常状态信号。在该示例中,如果cpu502停止接收恒定正常状态信号(或者,可替代地,如果恒定正常状态信号的值改变,或者被解除断言,使得它不再对应于正常运行的i/o单元模块),则cpu502将像已经在i/o单元模块中检测到故障那样处理这种情况并且将相应地作出响应。

在一个示例中,恒定正常状态信号可以是动态的,使得可以通过第一信号模式(例如,在预定义时间段内的预定义的高/低值的模式)传送“我很好”状态,而可以以第二信号模式(例如,在预定义时间段内的不同的预定义的高/低值的模式)传送故障状态。更进一步地,在恒定正常信号是动态的一些情况下,检测到恒定正常信号既不匹配预定义的“我很好”模式,也不匹配预定义的故障模式可以被解释为表示故障。

当exb500的所有单个组件(包括但不限于i/o单元模块508-510)都正常时,exb500被认为是正常的且适合用作活跃容错故障安全子系统的一部分。在一个示例中,一旦检测到exb500的一个或多个组件不正常(例如,由cpu502检测到iou#1508不正常),exb500被配置为生成表示exb500中的故障的exb正常信号520。在另一示例中,exb正常信号520可以指示exb500的所有组件都是正常的。在一个示例中,exb正常信号520可以由exb500的cpu502生成并且经由cpurtm518从exb500向外部发送。

在一个示例中,exb正常信号520可以是动态的,使得可以通过第一信号模式(例如,在预定义时间段内的预定义的高/低值的模式)传送正常状态,而故障状态可以以第二信号模式(例如,在预定义时间段内的不同的预定义的高/低值的模式)传送。更进一步地,在exb正常信号520是动态的一些情况下,检测到exb正常信号520既不匹配预定义的正常模式,也不匹配预定义的故障模式可以被解释为表示故障状况。

例如,并且如下面关于图6另外详细讨论地,表示exb500中的故障的exb正常信号520可以经由适当的通信信道(例如但不限于以太网通信信道)传送给被作为同一活跃容错故障安全子系统的一部分而包括的fsc。根据一些实现方式,然后,fsc可以生成通知活跃计算机系统确定模块(例如,图6所示的活跃计算机系统确定模块626)活跃容错故障安全子系统中的故障的信号。这反过来可能导致活跃计算机系统确定模块在激活另一容错故障安全子系统的同时,将活跃容错故障安全子系统(包括exb500和fsc)置于待机模式。用于在各个容错故障安全子系统之间转移活跃状态的过程在图6中示出并在下面另外详细地讨论。

在一些实施方式中,exb500被配置为接收系统正常信号514和/或活跃/待机信号516。系统正常信号514可以表示作为与exb(包括例如fsc和/或一个或多个另外的exb)相同的容错故障安全子系统的一部分而被包括的所有计算机是否正常,并且表示因此exb500是否应该启用其输入端口中的一个或多个(例如,i/o单元模块508-510的输入端口)。例如,当系统正常信号514表示作为与exb500相同的容错故障安全子系统的一部分而被包括的所有计算机都正常时,exb500可以被配置为启用其输入端口中的一个或多个。相反,并且作为示例,当系统正常信号514表示作为与exb500相同的容错故障安全子系统的一部分而被包括的任何计算机不正常时,exb500可以被配置为禁用其输入端口中的一个或多个。

活跃/待机信号516可以表示exb500和与其连接的任何其它计算机是否应当处于活跃或待机模式,并且可以表示因此exb500是否应当启用其输出端口中的一个或多个(例如,i/o单元模块508-510的输出端口)。例如,当活跃/待机信号516构成活跃信号时,exb500可以被配置为启用其输出端口中的一个或多个。相反,并且作为示例,当活跃/待机信号516构成待机信号时,exb500可以被配置为禁用其输出端口中的一个或多个。

在一个示例中,系统正常信号514可以是动态的,使得可以通过第一信号模式(例如,在预定义时间段内的预定义的高/低值的模式)传送正常状态,而故障状态可以以第二信号模式(例如,在预定义时间段内的不同的预定义的高/低值的模式)传送。更进一步地,在系统正常信号514是动态的一些情况下,检测到系统正常信号514既不匹配预定义的正常模式,也不匹配预定义的故障模式可以被解释为表示故障状况。

类似地,在一个示例中,活跃/待机信号516可以是动态的,使得活跃状态可以通过第一信号模式(例如,在预定义时间段内的预定义的高/低值的模式)被传送,而待机状态可以以第二信号模式(例如,在预定义时间段内的不同的预定义的高/低值的模式)传送。更进一步地,在活跃/待机信号516是动态的一些情况下,检测到活跃/待机信号516既不匹配预定义的活跃模式,也不匹配预定义的待机模式可被解释为表示待机状态。

在一个示例中,系统正常信号514和活跃/待机信号516可以从活跃计算机系统确定模块被发送到exb500(例如,经由cpurtm518发送到exb500的cpu502)。在另一示例中,如下面关于图6另外详细讨论地,系统正常信号514和活跃/待机信号516可以从exb500“上游”的另一exb被传送到exb500(例如,经由cpurtm518发送到exb500的cpu502)。

在另一示例中,如下面关于图6另外详细讨论地,exb500(例如,exb500的cpurtm518)可以被配置为将系统正常信号514和/或活跃/待机信号516“向下游”转发到另一计算机。

现在参照图6,示出了包含一个或多个扩展盒的容错故障安全计算机系统600的一个示例的功能框图。容错故障安全计算机系统600包括第一计算机系统602和第二计算机系统628。在一个示例中,第一计算机系统602和第二计算机系统6238是冗余计算机系统。

第一计算机系统602和第二计算机系统628中的每一个都连接到活跃计算机系统确定模块626。在一些示例中,活跃计算机系统确定模块626可以被实现为安全中继盒模块,例如图1的安全中继盒模块144。在另一示例中,如在被转让给本申请人并且其全部内容通过引用并入本文的第9,367,375号美国专利中所描述地,活跃计算机系统确定模块626可以被实现为直接连接算法(dca)。根据本公开的示例,活跃计算机系统确定模块626被配置为生成活跃/待机信号以选择给定计算机系统(例如,第一计算机系统602)作为活跃计算机系统并且选择另一计算机系统(例如,第二计算机系统628)作为待机计算机系统。

第一计算机系统602包括可操作地连接到活跃计算机系统确定模块626的第一计算机604、可操作地连接到第一计算机604和活跃计算机系统确定模块626的第二计算机606以及可操作地连接到第二计算机606和第一计算机604的第三计算机608。在一些示例中,还可以包括作为第一计算机系统602的一部分的一个或多个另外的计算机,例如x计算机610。诸如x计算机610的每个另外的计算机都可以被可操作地连接到第一计算机和前面的计算机。以这种方式,并且如下面另外详细描述地,一个或多个计算机(例如,第二计算机606、第三计算机608和x计算机610)可以被菊花链接在一起并且由第一计算机604驱动。

在一个示例中,第一计算机602可以构成fsc,例如上面关于图1讨论的fsc104。为了简单起见,图6中省略了第一计算机604的许多子组件。例如,实际上,第一计算机602可以包括一个或多个i/o单元模块、一个或多个rtm、一个或多个psu等。

在图6中示出的第一计算机602的简化版本中,第一计算机602包括一个或多个cpu612和与其可操作地连接的swmrtm614。在一个示例中,cpu612和swmrtm614经由诸如以太网通信信道的合适的通信信道可操作地连接。类似地,在一些示例中,第二计算机606、第三计算机608和x计算机610经由诸如以太网信道的各个通信信道可操作地连接到第一计算机(例如,第一计算机602的swmrtm614)。在一个示例中,第二计算机606可以通过包括但不限于以太网或vme的本领域中已知的任何合适的通信信道可操作地连接到第三计算机608。类似地,第三计算机608可以通过包括但不限于以太网或vme的本领域已知的任何合适的通信信道可操作地连接到x计算机610。

在一个示例中,第二计算机606、第三计算机608和x计算机610(以及任何中间计算机)中的每一个可以被实现为exb,例如本文关于图5讨论的exb。根据该示例,多个exb可以被菊花链接在一起并由作为第一计算机系统602的一部分的第一计算机604驱动。

第二计算机系统628在组件和架构方面做第一计算机系统602的镜像,并且包括可操作地连接到活跃计算机系统确定模块626的第四计算机630、可操作地连接到第四计算机630和活跃计算机系统确定模块626的第五计算机632以及可操作地连接到第五计算机632和第四计算机630的第六计算机634。在一些示例中,还可以包括作为第二计算机系统628的一部分的诸如y计算机636的一个或多个另外的计算机。诸如y计算机636的每个另外的计算机都可以被可操作地连接到第四计算机和前面的计算机。以这种方式,一个或多个计算机(例如,第五计算机632、第六计算机634和y计算机636)可以被菊花链接在一起并由第四计算机630驱动。

在一个示例中,第四计算机630可以构成fsc,例如上面关于图1讨论的fsc108。为了简单起见,图6中省略了第四计算机630的许多子组件。例如,实际上,第四计算机630可以包括一个或多个i/o单元模块、一个或多个rtm、一个或多个psu等。

在图6中示出的第四计算机630的简化版本中,第四计算机630包括一个或多个cpu638和与其可操作地连接的swmrtm640。在一个示例中,cpu638和swmrtm640经由诸如以太网通信信道的合适的通信信道可操作地连接。类似地,在一些示例中,第五计算机632、第六计算机634和y计算机636经由诸如以太网信道的各自的通信信道可操作地连接到第四计算机(例如,第四计算机630的swmrtm640)。在一个示例中,第五计算机632可以通过包括但不限于以太网或vme的本领域中已知的任何合适的通信信道可操作地连接到第六计算机634。类似地,第六计算机634可以通过包括但不限于以太网或vme的本领域已知的任何合适的通信信道可操作地连接到y计算机636。

在一个示例中,第五计算机632、第六计算机634和y计算机636(以及任何中间计算机)中的每一个可以被实现为exb,例如本文关于图5讨论的exb。根据该示例,多个exb可以被菊花链接在一起并由作为第二计算机系统628的一部分的第四计算机630驱动。

在运行中,示例性容错故障安全计算机系统600可以如下运行。为了该示例的目的,第一计算机系统602最初将被处理为活跃计算机系统,而第二计算机系统628最初将被处理为待机计算机系统。因此,一开始,作为第一计算机系统602的一部分而被包括的计算机604、606、608、610的输出端口(例如,作为每个计算机的一部分而被包括的i/o单元模块的输出端口)将被启用。相应地,一开始,作为第二计算机系统628的一部分而被包括的计算机630、632、634、636的输出端口(例如,作为每个计算机的一部分而被包括的i/o单元模块的输出端口)将被禁用。

一旦检测到第二计算机606中的故障(例如,作为第二计算机606的一部分而被包括的i/o单元模块中的一个中的故障),第二计算机606就被配置为发送表示第二计算机606中的故障的第二计算机正常信号616(或者,视情况而定,停止发送“我很好”信号,或者将信号解除断言为不再对应于“我很好”状态的值)。第一计算机604被配置为接收第二计算机正常信号616并响应于此,生成第一计算机系统正常信号624。第一计算机系统正常信号624可以表示第一计算机604和/或第二计算机606中的故障。第一计算机604被进一步配置为将表示第一计算机系统602中的故障的第一计算机系统正常信号624发送给活跃计算机系统确定模块626。在一个示例中,第一计算机602被配置为通过解除断言预先存在的第一计算机系统正常信号(例如,改变预先存在的第一计算机系统正常信号的值)来生成第一计算机系统正常信号624。

活跃计算机系统确定模块626被配置为接收第一计算机系统正常信号624并且响应于此,生成待机信号622。待机信号622可以从活跃计算机系统确定模块626被发送到第二计算机606。第二计算机606被配置为接收待机信号622并且基于待机信号622禁用第二计算机606的一个或多个输出端口。在一些示例中,待机信号622可以使第二计算机606关闭第二计算机606的任何或所有i/o单元模块。另外,虽然未在图6中示出,但是活跃计算机系统确定模块626还可以向第二计算机606发送表示第一计算机系统602的正常的系统正常信号。如下面所讨论地,这样的系统正常信号可以连同待机信号622一起被传播到菊花链中的第二计算机606下游的第三计算机608和任何另外的计算机(例如,x计算机610)。

继续,第二计算机606可以被配置为将待机信号622(在一些示例中,和第一计算机系统正常信号)转发给第三计算机608。第三计算机608可以被配置为接收待机信号622并基于待机信号622禁用其输出端口中的一个或多个。在一些示例中,待机信号622可以使第三计算机608关闭第三计算机608的任何或所有i/o单元模块。

待机信号622,在一些示例中,待机信号622和第一计算机系统正常信号,可以沿着连接到第一计算机604的计算机的菊花链线向下传播,从而禁用菊花链中的每个计算机中的输出端口中的一个或多个。以这种方式,可以禁用菊花链接的计算机的一些或所有输出端口,从而将第一计算机系统602置于待机模式。

在生成待机信号622的同时(即,在相同的时钟周期期间或在几个时钟周期内),活跃计算机系统确定模块626被配置为生成活跃信号648。在一些示例中,活跃信号648可以由活跃计算机系统确定模块626响应于接收到第一计算机系统正常信号624而生成。以这种方式,如下,活跃计算机系统确定模块626被配置为将第一计算机系统602置于待机模式并激活第二计算机系统628。

活跃计算机系统确定模块626被配置为生成被传送到第四计算机630和第五计算机632的活跃信号648。一旦第四计算机630接收到活跃信号648,第四计算机630就被配置为基于活跃信号648启用其输出端口中的一个或多个。类似地,一旦接收到活跃信号648,第五计算机632被配置为基于活跃信号648启用其输出端口中的一个或多个。在一些示例中,活跃信号648可以使第五计算机632对第五计算机632的任何或所有i/o单元模块供电。另外,虽然未在图6中示出,但是活跃计算机系统确定模块626还可以向第五计算机632发送表示第二计算机系统628的正常的系统正常信号。如下面所讨论地,这样的系统正常信号可以连同活跃信号648一起被传播到菊花链中的第五计算机632下游的第六计算机634和任何另外的计算机(例如,y计算机636)。

继续,第五计算机632可以被配置为将活跃信号648(在一些示例中,和第二计算机系统正常信号)转发给第六计算机634。第六计算机634可以被配置为接收活跃信号648并基于活跃信号648启用其输出端口中的一个或多个。在一些示例中,活跃信号648可以使第六计算机634对第六计算机634的任何或所有i/o单元模块供电。

活跃信号648,在一些示例中,活跃信号648和第二计算机系统正常信号,可以沿着连接到第四计算机630的计算机的菊花链线向下传播,从而启用菊花链中的每个计算机中的输出端口中的一个或多个。以这种方式,可以启用菊花链接的计算机的一些或所有输出端口,从而将第二计算机系统628置于活跃模式。

现在参考图7,用于实现故障安全容错计算机系统的方法700在702处开始。在704处,第一计算机接收表示第二计算机中的故障的第二计算机正常信号。在706处,第一计算机生成表示第一计算机和/或第二计算机中的故障的第一计算机系统正常信号。在708处,活跃计算机系统确定模块接收第一计算机系统正常信号。在710处,活跃计算机系统确定模块生成待机信号。在712处,第二计算机接收待机信号。在714处,第二计算机基于待机信号禁用其输出端口中的一个或多个。

在716处,确定第三计算机是否可操作地连接到第一计算机和第二计算机。如果否,则方法700在722处结束。然而,如果第三计算机可操作地连接到第一计算机和第二计算机,则方法700进行到718。在718处,第二计算机将待机信号转发给第三计算机。在720处,第三计算机基于待机信号禁用其输出端口中的一个或多个。方法700在722处结束。

现在参考图8,示出了图5的示例exb500的示例cpurtm518的功能框图。如下所述,cpurtm518包括用于与各种组件通信的多个端口800、802、804、806。例如,输入端口800可以接收系统正常信号514和活跃/待机信号516。输入端口800可以从(i)(例如,在诸如图6中描绘的架构的多个exb菊花链架构中的)上游exb或(ii)活跃计算机系统确定模块(例如,图6中示出的活跃计算机系统确定模块626)接收系统正常信号520和活跃/待机信号516。

cpurtm518被配置为将系统正常信号514和活跃/待机信号516转发到与cpurtm518相同的exb内的子组件和下游exb。更具体地说,第一输出端口806被配置为将系统正常信号514和活跃/待机信号516转发到与cpurtm518相同的exb内的i/o单元模块。系统正常信号514和活跃/待机信号516可以在它们通往i/o单元模块的路上通过一个或多个cpu(例如,图5的cpu502)进行路由。如上所述,系统正常信号514可用于启用i/o单元模块的输入端口,而活跃/待机信号516可用于启用i/o模块的输出端口。第二输出端口802被配置为将系统正常信号514和活跃/待机信号516转发到作为诸如图6的系统600的菊花链接的多exb系统的一部分的下游exb。在一些示例中,系统正常信号514和活跃/待机信号516可以由输入端口800通过有线通信信道接收。类似地,在一些示例中,系统正常信号514和活跃/待机信号516可以经由有线通信信道从第二输出端口802传输到下游exb。

此外,cpurtm518包括被配置为传输exb正常信号520等的双向端口804。在一个示例中,双向端口804可以被用于将exb正常信号520传送给另一计算机(例如,图6中示出的第一计算机604)以传送在包括cpurtm518的exb中检测到的故障。更进一步地,在一个示例中,双向端口804可以促进使用以太网通信协议的通信。

为了说明和描述的目的提供了对实施例的上述描述。其目的不是穷举或限制本公开。即使没有具体示出或描述,特定实施例的单独的要素或特征通常不限于该特定实施例,而是在适用的情况下可互换并且可以用在选择的实施例中。也可能在许多方面有所不同。这样的变化不被认为是背离本公开,并且所有这样的修改旨在被包括在本公开的范围内。

如本文所使用地,术语模块可以指专用集成电路(asic)、电子电路、组合逻辑电路、现场可编程门阵列(fpga)、执行代码的(共用的、专用的或组)处理器、其它提供描述的功能的合适硬件组件、或诸如在片上系统中的这些中的某些或所有的组合的一部分,或也可以包括这些。术语模块可以包括存储由处理器执行的代码的(共用的、专用的或组)存储器。

如上面所使用地,术语代码可以包括软件、固件和/或微码,也可能指程序、例程、函数、类和/或对象。如上面所使用地,术语共用意谓多个模块的部分或全部代码可以用单个(共用的)处理器执行。另外,多个模块的一些或全部代码可以由单个(共用的)存储器存储。如上面所使用地,术语组意谓单个模块的一些或全部代码可以用一组处理器执行。另外,来自单个模块的一些或全部代码可以用一组处理器存储。

本文描述的装置和方法可以由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁存储器和光存储器。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1