首页> 中国专利> 用于容错故障安全计算机系统的基于任务的表决

用于容错故障安全计算机系统的基于任务的表决

摘要

本发明公开用于容错故障安全计算机系统的基于任务的表决。一种系统包括:将多个第一任务写至第一存储器缓冲器的第一应用;接收多个第一任务的复本的第二存储器缓冲器;将多个第二任务写至第三存储器缓冲器的第二应用;以及接收多个第二任务的复本的第四存储器缓冲器。该系统进一步包括第一比较模块,其基于第一任务和第二任务之间的第一比较,生成第一表决信号。该系统进一步包括第二比较模块,其基于第一任务和第二任务之间的第二比较,生成第二表决信号。所述系统进一步包括第一中央处理单元(CPU),其基于所述第一表决信号和所述第二表决信号,选择性地确定是否使模块健康信号失效。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-26

    授权

    授权

  • 2017-11-03

    著录事项变更 IPC(主分类):G06F11/34 变更前: 变更后: 申请日:20131216

    著录事项变更

  • 2016-01-27

    实质审查的生效 IPC(主分类):G05B19/418 申请日:20131216

    实质审查的生效

  • 2015-06-17

    公开

    公开

说明书

技术领域

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

背景技术

该部分提供与本公开相关的背景信息,该背景信息不一定是现有技术。

本文提供的背景描述是为了概括地呈现本公开的背景。当前命名的发明人的工作, 就其在该背景部分中描述的范围以及不可能另外成为提交时的现有技术的描述的方面 而言,既不明确地也不隐含地被认为是相对于本公开的现有技术。

外部安全系统,如轨道系统,可以包括被配置为实现安全应用的容错故障安全计 算机系统。该容错故障安全计算机系统可以包括多个硬件组件,该多个硬件组件以电 气方式或以逻辑方式联接来实现安全应用。安全应用选择性地与安全临界硬件和软件 通信。将安全临界硬件和软件配置为控制轨道系统的安全相关功能。

例如,在轨道系统上行驶的火车包括制动系统。将该制动系统配置为实现至少一 个安全相关功能,如制动功能。该制动系统包括制动器和被配置为对该制动器进行促 动的软件。该软件接收指令来对该制动器进行促动。例如,火车的驾驶员可以操作制 动系统用户界面,以指示该软件对该制动器进行促动。该轨道系统的错误组件可以定 期地生成差错指令来对该制动器进行促动。相应地,被配置为验证由外部安全系统接 收的指令的容错故障安全计算机系统是期望的。

发明内容

该部分提供本公开的一般概括,并且不是本公开的全部范围或本公开的全部特征 的全面公开。

一种系统包括:第一应用,该第一应用在第一时钟周期期间将多个第一任务写至 第一存储器缓冲器;第二存储器缓冲器,该第二存储器缓冲器在第二时钟期间接收所 述多个第一任务的复本;第二应用,该第二应用在所述第一时钟周期期间将多个第二 任务写至第三存储器缓冲器;以及第四存储器缓冲器,所述第四存储器缓冲器在所述 第二时钟周期期间接收所述多个第二任务的复本。所述系统进一步包括:第一比较模 块,所述第一比较模块接收所述多个第一任务中的第一任务和所述多个第二任务中的 第二任务,并且基于所述第一任务和所述第二任务之间的第一比较,选择性地生成第 一表决信号。

所述系统进一步包括:第二比较模块,所述第二比较模块接收所述多个第一任务 中的所述第一任务和所述多个第二任务中的所述第二任务,并且基于所述第一任务和 所述第二任务之间的第二比较,选择性地生成第二表决信号。所述系统进一步包括第 一中央处理单元(CPU),该第一中央处理单元基于所述第一表决信号和所述第二表决 信号,选择性地确定是否使模块健康信号失效。

在其它特征中,一种方法包括:在第一时钟周期期间写多个第一任务;在第二时 钟周期期间拷贝所述多个第一任务;在第一时钟周期期间写多个第二任务;在所述第 二时钟周期期间拷贝所述多个第二任务;接收所述多个第一任务中的第一任务;接收 所述多个第二任务中的第二任务;基于所述第一任务和所述第二任务之间的第一比较, 选择性地生成第一表决信号;基于所述第一任务和所述第二任务之间的第二比较,选 择性地生成第二表决信号;基于所述第一表决信号和所述第二表决信号,选择性地确 定是否使模块健康信号失效。

其它应用领域将从本文提供的描述中变得清楚。该发明内容中的描述和特定示例 旨在仅用于说明目的,而不旨在限制本公开的范围。

附图说明

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

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

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

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

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

在附图的全部几个图中,相对应的附图标记表示相对应的部分。

具体实施方式

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

现在参考图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的任何和全部操作。以此方式,当活跃FSC 104和待命FSC108之一遇到硬件或软件故障时,活跃FSC104和待命FSC108 中另一个被配置为代替故障的FSC操作。

活跃FSC104实现二选二(2oo2)表决体系结构,该二选二表决体系结构检 测表决不匹配并且在发生表决不匹配时执行故障安全操作。2oo2表决体系结构包 括双冗余处理和表决子系统。冗余处理和表决子系统对进入或离开活跃FSC104 的分组进行表决。例如,活跃FSC104接收多个进入数据分组。活跃FSC104接 收多个进入数据分组中第一分组的两个复本。

活跃FSC104确定第一分组的有效性。活跃FSC104基于第一分组是否有效 的确定,连续地生成第一健康状态信号和第二健康状态信号。在一些实现中,连 续地生成信号可以包括将该信号设置为第一预确定的值。然后,所连续生成的信 号保持在该第一预确定的值,直到使将信号失效(de-asserted)为第二预确定的值。

活跃FSC104将第一分组的这两个复本的每个复本进行比较。当这两个复本 相同时,活跃FSC104确定第一分组是有效的。当活跃FSC104确定第一分组是 有效的时,活跃FSC104连续地生成第一健康状态信号和第二健康状态信号。可 以将第一健康状态信号和第二健康状态信号生效(assert)为第一值。在一些实现 中,第一值等于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至预确定的安全状态。然后,待命FSC 108作为活跃FSC操作。

活跃FSC104和待命FSC108中每个FSC均可以包括多个通信链路。这些通 信链路包括但不限于上行链路、下行链路和用户界面。上行链路是较高层设备的 双向通信信道。该较高层设备可以是在总体系统体系结构中包括的系统硬件。例 如,较高层设备可以是轨道系统的轨道制动系统的组件。

下行链路是较低层硬件的双向通信信道。例如,较低层硬件可以包括与较高 层设备通信的交换机和中继器(relay)。下行链路可以依照任何适合的硬件标准 实现。例如,可以将下行链路实现为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。类似地,待命FSC 108处理子系统包括主CPU116b和检查器CPU120b。将主CPU116a和116b中 每个CPU配置为相同。类似地,将检查器CPU120a和120b中每个检查器配置为 相同。以此方式,主CPU116a、主CPU116b、检查器CPU120a和检查器CPU120b 起到提高系统100的可用性和可靠性的作用。

为监视和控制系统100的总体健康和安全,还将主CPU116a和检查器CPU 120a配置为相同。例如,主CPU116a和检查器CPU120a运行相同的软件并且实 现相同的处理功能。将主CPU116a和检查器CPU120a配置为执行相同的功能, 以便保持安全临界硬件和软件的全硬件错误和差错检测覆盖,并且允许以正确的 顺序对外出分组进行表决。

在一些实现中,主CPU116a从轨道系统的安全临界硬件或软件中至少之一中 接收执行任务的请求。该执行任务的请求基于由安全临界硬件和软件从外部安全 系统的操作者接收的命令。例如,轨道系统的操作者可以命令在轨道系统上行驶 的列车提高速度。操作者可以促动列车内的物理操纵杆。将物理操纵杆布置为生 成表示提高列车速度的命令的信号。将该信号传递至安全临界硬件和软件。

在运行该命令以前,安全临界硬件和软件将安全相关任务传递至系统100。将 系统100配置为解释该信号并且确定与该信号关联的请求任务。然后,系统100 确定所请求的任务是否表示安全相关任务。例如,所请求的任务可以是安全相关 任务或者非安全相关任务。在一个示例中,非安全相关任务包括指示安全临界硬 件和软件返回在轨道系统内操作的列车的当前状态的指令。在另一示例中,安全 相关任务包括指示安全临界硬件和软件提高列车速度的指令。

系统100将所请求的任务与一系列预限定的任务进行比较。基于预限定的任 务,系统100确定所请求的任务是否是安全相关的。当系统100确定所请求的任 务是安全相关任务时,系统100生成与所请求的任务对应的分组。要理解,尽管 本文只描述安全相关任务,但是系统100可以根据任何任务生成分组。系统100 将分组传递至主CPU116a。将主CPU116a和检查器CPU120a都配置为,在安全 临界硬件和软件运行所请求的任务以前验证分组的有效性。例如,执行任务的请 求可以是多个进入数据分组之一。

同时,检查器CPU120接收与所请求的任务对应的同一分组的复本。将主CPU 116a和检查器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从外部组件接收分组并且将所接收的分组路由至主CPU 116a、检查器CPU120b以及I/O子系统。进一步,交换模块124a将所接收的分组 传递至表决子系统。应当理解,尽管仅描述交换模块124a,但是上面描述的原理 还适用于交换模块124b。

IOU模块128实现活跃FSC104内的I/O子系统。将该I/O系统配置为提供下 层网络设备和主CPU116a及检查器CPU120a之间的网关。IOU模块128将主CPU 116a和检查器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。应当理解,由于待命FSC 108是活跃FSC104的冗余配置,所以RTM136a-136i与RTM140a-140i是相同的。 在一些实现中,RTM136a-136i中每个可以是可热交换的现场可更换单元(FRU)。

例如,RTM136a-136i中每个RTM可以由现场工程师在不必首先对全部系统 100断电的情况下移除和更换。RTM136a-136i允许活跃FSC104与外部硬件组件 和软件组件通信。例如,RTM136a以电的方式和以逻辑方式将主CPU116a联接 至活跃FSC104外部的组件。类似地,RTM136b以电的方式和以逻辑方式将待命 FSC108联接至外部的硬件组件和软件组件。

前刀片124a-128f每个包括第一存储器位置和第二存储器位置。第一存储器位 置和第二存储器位置存储从活跃FSC104的对应硬件组件接收的值。例如,主CPU 116a连续地生成表示主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的与RTM 136相对侧配置的模块将“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的总体健康状况的模块健康值。例如,将RTM 136a配置为对存储在第一存储器位置中的值和存储在第二存储器位置中的值执行 逻辑“或(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基于由主CPU 116a和前刀片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接收待命信号时,活跃FSC 104确定进入故障安全状态。

安全继电器箱模块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和检查器CPU 208对由主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中的错误,生成故障安全信号。

在一些实施例中,系统100实现如图3所示的基于任务的表决系统300。基于 任务的表决系统300包括主CPU204和检查器CPU208。主CPU204和检查器 CPU208中每个CPU均包括被配置为运行表决逻辑的现场可编程门阵列(FPGA)。 例如,主CPU204包括主FPGA304,检查器CPU208包括检查器FPGA308。主 FPGA304和检查器FPGA308中每个FPGA均被配置为实现基于任务的表决逻辑。 进一步地,主FPGA304和检查器FPGA308中每个FPGA与基准时钟同步。

基准时钟是系统100内的20兆赫兹(MHz)时钟。基准时钟是公共基准时钟, 系统100内的每个模块与该公共基准时钟同步。系统100内的每个模块均包括与 基准时钟同步的锁相环。例如,系统100内的IOU模块可以包括以第一间隔计数 的IOU时钟。IOU模块包括第一锁相环,该第一锁相环确定第一间隔和基准时钟 间隔之间的基准点。当IOU模块与系统100内的另一模块通信时,IOU模块基于 第一间隔和基准时钟间隔之间的基准点,确定当前基准时钟时间。以此方式,系 统100内的每个模块可以参考对每个模块来说共用的基准时钟上的时间,以便在 系统100内进行通信。

将主CPU204和检查器CPU208中每个CPU配置为运行系统100外部的软件 应用。例如,主CPU204运行由上面描述的轨道应用请求的任务。将主CPU204 配置为运行轨道应用的第一复本(第一复本)。将检查器CPU208配置为运行轨 道应用的第二复本(第二复本)。将第一复本和第二复本中每个复本配置为同时 运行任务。例如,当系统100重起动时,主CPU204和检查器CPU208中每个CPU 分别发起第一复本和第二复本。使第一复本和第二复本与基准时钟同步,以便同 时运行任务。

将主FPGA304和检查器FPGA308中每个FPGA配置为运行多个表决模式之 一。在一个实现中,将主FPGA304和检查器FPGA308配置为运行基于任务的表 决模式。例如,主FPGA304包括主软件(SW)写缓冲器312和主硬件(HW)比 较缓冲器316。检查器FPGA308包括检查器SW写缓冲器320和检查器HW比较 缓冲器324。

在基准时钟的第一周期期间,轨道应用的第一复本将要由主CPU204执行的 多个第一任务写至主SW写缓冲器312。同时,在基准时钟的该第一周期期间,第 二复本将要由主CPU204执行的多个第二任务写至检查器SW写缓冲器320。如上 面描述的,主CPU204运行与轨道应用关联的任务。检查器CPU208与主CPU204 相同。然而,仅主CPU204执行与轨道应用关联的任务。

将检查器CPU208配置为以与主CPU204步调一致地运行,然而,检查器CPU 208不执行与轨道应用关联的任务。要理解,第一复本和第二复本是相同的应用。 进一步要理解,第一复本和第二复本独立于彼此操作。基于任务的表决系统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接收第一表决信号和第二表决信号时,主CPU 204确定未发生表决不匹配。主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 处结束。

已经为了说明和描述目的提供上面对实施例的描述。描述不旨在是详尽的或 者限制本公开。特定实施例的单独元件或特征通常不局限于该特定实施例,而是 可在适用时互换并且可以在选择的实施例中使用,即便未具体地示出或描述。本 发明还可以以多种方式变化。这样的变化不应被视为背离本公开,并且所有这样 的修改旨在包含在本公开的范围内。

本文中使用的术语“模块”可以指下面的组件、可以是下面的组件的一部分, 或者可以包括下面的组件:专用集成电路(ASIC)、电子电路、组合逻辑电路、 现场可编程门阵列(FPGA)、运行代码的处理器(共享的、专用的或它们的组合)、 提供所描述的功能的其它适合的硬件组件、或者上面组件中一些组件或全部组件 的组合,如在片上系统中。术语“模块”可以包括存储由处理器运行的代码的存 储器(共享的、专用的或它们的组合)。

上面使用的术语“代码”可以包括软件、固件和/或微代码,并且可以指程序、 例程、函数、类和/或对象。上面使用的术语“共享的”指来自多个模块的一些代 码或全部代码可以使用单个(共享的)处理器运行。此外,来自多个模块的一些 代码或全部代码可以由单个(共享的)存储器存储。上面使用的术语“组合”指 来自单个模块的一些或全部代码可以使用一组处理器运行。此外,来自单个模块 的一些或全部代码可以使用一组存储器存储。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号