CN100361096C - 交叉比较系统和方法 - Google Patents
交叉比较系统和方法 Download PDFInfo
- Publication number
- CN100361096C CN100361096C CNB2005101243266A CN200510124326A CN100361096C CN 100361096 C CN100361096 C CN 100361096C CN B2005101243266 A CNB2005101243266 A CN B2005101243266A CN 200510124326 A CN200510124326 A CN 200510124326A CN 100361096 C CN100361096 C CN 100361096C
- Authority
- CN
- China
- Prior art keywords
- storage area
- memory buffer
- processor
- information
- intersection
- 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.)
- Expired - Fee Related
Links
Images
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/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
- G06F11/184—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
- G06F11/185—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality and the voting is itself performed redundantly
-
- 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/1633—Error detection by comparing the output of redundant processing systems using mutual exchange of the output between 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/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
一种使用带内置逻辑的一个多端口RAM的、运行在一个多处理器配置中的交叉比较方案。它提供一个快速和简单的数据交叉比较方法。多端口RAM单元可以插入到主处理器单元的母板上,而不需要外部硬件或连线。一种用于交叉比较的方法和系统,其具有第一层缓冲存储器,其具有用于存储来自于第一处理器的信息的一个第一存储区域和用于存储来自于第二处理器的信息的一个第二存储区域,以及具有一个第三和第四存储区域的第二层缓冲存储器,在此每个存储区域存储来自于第一和第二存储区域的信息。第一、第二、第三和第四存储区域具有一个或多个只是为其各自的存储区域分配的缓冲存储器。
Description
技术领域
本发明涉及用于运行在一个多处理器配置中的——例如双重、2取2和三重、3取2配置——或其他多处理器配置中的系统的交叉比较。
背景技术
随着CPU时钟速度的提升,以及多处理器体系结构变得更为普遍,处理性能的能力已经超过了传统的RAM的能力。该问题的一个解决方案是采取多端口RAM。
多端口RAM有多种配置,通过多个输入和输出端口提供对一个共享存储空间的访问。通过分离的多个端口同时向装置写入多个数据的能力已是日益普遍。当数据从两个或更多个端口同时写入到相同的位置时,无法保证数据的完整性。被访问的存储位置可能包含新数据、旧数据或某些中间值。为缓和该问题,需要另外的逻辑来实施仲裁。仲裁是通过处理器来协调对存储位置的访问。
某些数字计算系统应用,例如,重要和关键业务系统,需要高度的安全性。例如,为安全操作,一个飞机飞行控制计算机,在整个飞行过程中,都依赖于连续的无误差的计算操作。应该认识到无误差操作需要在数字计算系统内的故障排除和故障抑制。另外对于不断增加的可靠性的要求,对于飞行控制和其他重要的系统来说需要一个有增加的吞吐量的快速计算系统。
为提供数据的完整性,不止一个处理器用来确定在总线上同时传输的信息是否存在差异。为得到高度精确的结果的这种数据的比较经常被称为“交叉比较”。例如,通过交叉比较由不同的处理器产生的计算结果,可以提供数据的高度完整性。
当前的运行在一个多处理器配置中的交叉比较系统运行缓慢,主要采用软件或设置很复杂。目前有几种可行的解决方案。一个用于双重系统的解决方案需要一个并行或串行端口连接。并行端口和串行端口这两个方案只支持可以同时传输的有限数量的数据。基于串行端口的方案运行缓慢和主要采用软件。基于并行端口的方案在需要交叉比较大量的数据时就会变慢。
另一个解决方案用于三重系统,使用一个复杂的硬件设置或者使用一个高速串行连接,其主要采用软件和使用外部连线。当实施为使用外部的、基于机架的硬件时,设置复杂和主要采用硬件。当以高速串行通信(以太网)实施时,这种设置主要采用软件并且速度受到外部连线的限制。
作为一个相关的现有技术系统的一个例子,美国专利号6,182,196公开了一种用于仲裁存储器访问请求的方法和设备。存储器包含一个比较客户操作请求的交叉检查模块(502)。当交叉检查模块(502)确定请求试图同时地访问一个存储器的相同的存储块时,交叉检查(502)在客户操作请求之间进行仲裁。仲裁是基于仲裁规则并且产生一个第一存储器访问请求和一个第二存储器访问请求。
作为另外一个先前系统的例子,美国专利申请公开2002/0010902公开了包含嵌入模块RAM(EBR)的现场可编程门阵列(FPGA)。在一个实施方式中,EBR是嵌入在一个FPGA核中的多端口RAM模块。EBR用来增加存储器的数量并且实施分布式可编程功能单元存储器。在写入端口之间提供仲裁,以及一个仲裁单元接收存储器请求信号并从请求中选出一个赢家。
发明内容
本发明的说明性的、非限制性的表述可以克服上述缺点和上面未描述的其他缺点。本发明不是必然地被要求来克服上述的任何缺点,以及本发明的说明性的、非限制性的表述可以不克服上述的任何问题。应该参考所附加的权利要求书来确定本发明正确的范围。
本发明的示例性表述是一个运行在多处理器配置中的交叉比较方案。本发明的一个方面是使用带内置逻辑的一个多端口RAM来提供一个快速和简单的数据交叉比较方法。多端口RAM可以插入到连接在任何标准或甚至非标准总线上的多处理器单元的底板上。因此,不需要外部硬件或连线。
根据本发明的示例性非限制性表述的一个交叉比较系统采用了缓冲存储数据的方法,只受存储器访问时间限制而快速运行。可以简单地实现该示例性系统并且不需要通信协议。
在一个示例性非限制性表述中,系统安装在一个单板上并且不需要外部连线。不将此概念约束在任何特别的硬件上,并且它在体系机构和硬件实现方面对任何交叉比较数据的大小及任何需要的通信速度都是有效的。因此,如果大小和/或速度的要求发生变化,该示例性系统可以简单地通过更换单元得以升级。
根据本发明的示例性非限制性表述的基于存储器的交叉比较方案是基于一个具有其需要的逻辑的多端口RAM,使用了现场可编程门阵列(FPGA)或专用集成电路(ASIC)实现。
根据本发明的示例性非限制性表述的多端口RAM,为每个系统处理器单元提供受控制的写和读访问,从而提供一个快速和简单的数据交叉比较方法。在所有的系统处理器单元之间提供完全的隔离。因为不可能有对任何存储位置的同时的访问,所以不需要仲裁。在其他选择之中,示例性系统理想地适用于基于交叉检查的计算机的安全性、关键业务或高有效性的系统。
根据本发明的说明性的、非限制性的表述,为至少具有第一和第二处理器的多处理器计算机提供一个交叉比较系统。该系统包括第一层缓冲存储器,包含用于存储来自于第一处理器的信息的一个第一存储区域和用于存储来自于第二处理器的信息的一个第二存储区域。还提供第二层缓冲存储器。第二层缓冲存储器包含用于存储来自于第一存储区域的信息和来自于第二存储区域的信息的一个第三存储区域,以及用于存储来自于第一存储区域的信息和来自于第二存储区域的信息的一个第四存储区域。来自于第一存储区域器和第二存储区域的信息自动地传递到第三存储区域和第四存储区域。第一、第二、第三和第四存储区域包含至少一个只是为其各自的存储区域分配的缓冲存储器。
第一处理器从第三存储区域读取信息,并且当确定来自于第二处理器的信息与来自于比较处理器的信息基本上相同时,则宣布一个成功的交叉比较。同样地,第二处理器从第四存储区域读取信息,并且当确定来自于第二处理器的信息与来自于比较处理器的信息基本上相同时,则宣布一个成功的交叉比较。
另一个本发明的说明性的、非限制性的表述,是一种在由多个处理器同时写入的多端口存储器的存储位置之间进行交叉比较的方法,其中为每个端口提供多个第一层缓冲存储器的一个缓冲存储器。在该方法的第一步骤中,每个处理器向对应于各个处理器的端口的多个第一层缓冲存储器的缓冲存储器写入需要交叉比较的数据。然后将写入到所有第一层缓冲存储器的数据传递到多个第二层缓冲存储器,多个第二层缓冲存储器的每个缓冲存储器为多个第一层缓冲存储器的每一个缓冲存储器提供一个存储区域,向多个处理器的每一个提供多个第二层缓冲存储器的一个缓冲存储器。
于是每个处理器从多个第二缓冲存储器的各自的缓冲存储器中读取信息,并比较从多个第二缓冲存储器的其缓冲存储器中读取的信息,当按照由处理器写入的存储区域,来自另一个处理器的信息与来自比较处理器的信息部分相同时,则宣布一个成功的交叉比较。在从第一层缓冲存储器向第二层缓冲存储器传递数据之前,同步多个处理器。
第二个示例性表述进一步描述确定是否有需要交叉比较的附加信息,如果有,则就附加信息重复所述步骤,其开始于每个处理器写入需要交叉比较的数据的步骤。
此外,根据本发明的另一个示例性非限制性表述,提供了一个用于具有至少第一、第二处理器和第三处理器的多处理器计算机的交叉比较系统。在此示例性的交叉比较系统中,提供了第一层缓冲存储器,包括用于存储来自于第一处理器的信息的一个第一存储区域,用于存储来自于第二处理器的信息的一个第二存储区域,以及用于存储来自于第三处理器的信息的一个第三存储区域。另外,该交叉比较系统具有第二层缓冲存储器,其包括一个第四存储区域、一个第五存储区域和一个第六存储区域。在第二层缓冲存储器中的每个存储区域存储来自于第一存储区域的信息、来自于第二存储区域的信息和来自于第三存储区域的信息。来自于第一层缓冲存储器的信息自动地传递给第二层缓冲存储器。
在本发明的示例性非限制性表述中。第一到第六存储区域的每一个都包括至少一个只是分配给它的存储区域的缓冲存储器。此外,在此示例性的交叉比较系统中,第一、第二和第三处理器分别地从第四、第五和第六存储区域读取信息,并比较存储在其各自的存储区域中的信息,以确定比较处理器的信息是否基本上等同于其他两个处理器的信息。当比较处理器的信息匹配于其他两个处理器的至少一个的信息时,交叉比较系统宣布一个成功的交叉比较。
附图说明
现在参考附图,通过对本发明的说明性的、非限制性的实施方式的说明对本发明进行详细的描述。在附图中,相同的参考标记表示相似的元件:
图1是一个根据本发明的说明性的、非限制性的实施方式的一个用于三重安全系统解决方案的概图。
图2是一个根据本发明的说明性的、非限制性的实施方式的在一个应用的循环中实施的方法的步骤。
图3是一个根据本发明的说明性的、非限制性的实施方式的用于实施交叉比较的方法的步骤。
具体实施方式
通常是在每一个应用循环的开始时和结束前实施一个交叉比较,在此后将进一步详细描述。在此活动期间,所有的输入和/或输出都是在处理器之间进行交叉比较,这些处理器例如多处理器/中心处理器单元(MPU/CPU)、微处理器、运行时间重要控制单元(Run TimeVital Control Units)等等。
图1说明根据本发明的示例性非限制性实施方式的一个3取2的配置。参考图1说明的系统,根据特定的应用,一个安全系统10的每个CPU(20,21,22)代表示例性的CPU或是示例性的MPU或是某些其他示例性的处理器。在此,术语CPU、MPC和处理器可以互换使用。实施交叉比较只是每个处理器的功能之一。
每个CPU(20,21,22)用其自己的总线与多端口RAM(30)相连接。在多端口RAM(30)中,每个CPU都有其自己的存储空间。将只写缓冲存储器1.1(40)和只读缓冲存储器1.2(50)分配给CPU1(20);将只写缓冲存储器2.1(41)和只读缓冲存储器2.2(51)分配给CPU2(21);以及将只写缓冲存储器3.1(42)和只读缓冲存储器3.2(52)分配给CPU3(22)。在此参考CPU访问一个缓冲存储器的能力使用只写和只读。
为每一个CPU提供了对其自己的存储空间的严密控制的访问。每个CPU的只读缓冲存储器包括一个寄存器用于每个只写缓冲存储器。在此例中,每个只读缓冲存储器(50,51,52)有三个寄存器(1.1,2.1,3.1)。通过内部逻辑(60,61,62),将由每个CPU(20,21,22)写入的数据,从每个只写缓冲存储器(40,41,42)中拷贝到每个CPU的每个只读缓冲存储器(50,51,52)的对应的寄存器中。即提供了两层缓冲存储器。一层是一个只写缓冲存储器(40,41,42),第二层是一个只读缓冲存储器(50,51,52)。将由CPU1(20)写入到只写缓冲存储器1.1(40)中的数据,拷贝到只读缓冲存储器(50,51,52)的寄存器1.1中。类似地,将由CPU2(21)写入到只写缓冲存储器2.1(41)中的数据以及由CPU3(22)写入到只写缓冲存储器3.1(42)中的数据,分别拷贝到只读缓冲存储器(50,51,52)的寄存器2.1和3.1中。换言之,在此说明性的、非限制性的实施方式中,每个处理器(20,21,22)有一个或多个来自缓冲存储器的第一层(40,41,42)的缓冲存储器和一个或多个来自缓冲存储器的第二层(50,51,52)的缓冲存储器。
利用FPGA或ASIC(60,61,62)实施控制数据传递处理的内部逻辑。如图1所示,为同步的目的,实施了在一个FPGA或ASIC(60,61,62)中的特别的逻辑,以确保在当一个CPU(20,21,22)向其存储位置写入时,其他的只能从它们自己的位置读到“未准备好”。FPGA或ASIC为第一和第二层缓冲存储器实施要求的逻辑操作。每个处理器(20,21,22)分别有其自己单独的FPGA或ASIC(60,61,62)。
另外,可以优选地为每个FPGA或ASIC(60,61,62)提供一个单独的电源(70,71,72)。通过使每个处理器(20,21,22)具有由单独的电源(70,71,72)供电的其自己单独的FPGA或ASIC(60,61,62),可以确保处理器(20,21,22)之间的分离。例如,如果一个处理器发生故障,可以将它简单地隔离并将其数据丢弃,而不影响其他处理器。即在交叉比较中检测有错误的情况下,运行正常的处理器将它们自己与故障处理器断开。一个本领域中的普通技术人员知道如何分离一个有故障的处理器并且所有各种的隔离技术都落入本发明的范围。
用于图1中说明的系统的一个交叉比较由图2和3中说明的步骤加以实施。首先,图2示出了根据该说明的实施方式的CPU循环。特别是,通过任何已知的常规技术,处理器开机并然后进行初始化(步骤201)。一个本领域中的普通技术人员已经知道处理器的多种开机和初始化的方法。在处理器初始化之后,实施对输入的交叉比较(步骤202)。根据该示例性实施方式的输入的交叉比较(步骤202)将在图3中详细描述。在输入的交叉比较(步骤202)之后,将实施多个前台应用任务(步骤203)。
例如,每个处理器可能正在实施多种非常复杂的计算操作。当前台应用任务完成时,对输出——如计算操作的结果——也进行交叉比较(步骤204)。根据该示例性实施方式的输出的交叉比较将在图3中详细描述。在由处理器交叉比较了计算操作的输出(步骤204)之后,完成应用循环(205),并可以开始一个新的循环(205)。
在此示例性实施方式中,每个处理器将交叉比较的完成通知它自己,而不向其他处理器发送任何信号。在成功进行了交叉比较之后,输入和/或输出可以用于轮询。作为选择,可以通过生成一个中断来提供输入和/或输出。轮询、中断生成或某些其他方案是在本发明的范围之内的。选择的方案将取决于应用和使用的硬件。
下面,参照图3,将对输入和/或输出(203,205)的示例性非限制性交叉比较进行详细描述。图3示出了CPU的同步(步骤301)。可以使用任何数量的技术,由硬件和/或软件来实施同步。作为可以实现同步的许多方法之一的一个例子,三个CPU可以轮询一个特定的存储位置,每个CPU有一个位置,在此其他CPU将更新其交叉比较准备就绪。为避免陈旧的信息,读取该存储位置将清除更新的值。为确保在当一个CPU向其存储位置写入时,其他的只能从它们自己的位置读到“未准备好”,可以实施在FPGA或ASIC中的特别的逻辑。
只要处理器在将数据传递到缓冲存储器(50,51,52)只读层之前能够同步,同步就可以发生在各种地方。例如,数据可以不同步地写入到第一层缓冲存储器——只写层(40,41,42)。然后,同步(301)发生在数据传递到第二层缓冲存储器(50,51,52)之前。此外,在此示例性实施方式中,提供一个特别的超时以避免循环的溢出,该溢出被认为是处理器的一个主要故障。例如,如果处理器20由于某个故障被隔离,则处理器21和22在一个预定的时间段后,即特定的超时之后,将继续进行交叉比较,即使没有检测到与处理器20的成功的同步。从而,避免了死锁功能正常的处理器21和22。
在图3说明的例子中,CPU在将数据写入到第一层缓冲存储器之前被同步。特别地,一旦CPU完成同步,每个CPU将需要交叉比较的数据写入到其各自的只写缓冲存储器中(步骤302)。然后利用实施在FPGA或ASIC(60,61,62)中的逻辑,将来自每个只写缓冲存储器的数据传递到每个只读缓冲存储器(步骤303)。
然后每个CPU为所有三个CPU(20,21,22),从其各自的只读缓冲存储器(50,51,52)读取数据(步骤304),并且将其数据与来自其他处理器的数据进行比较(步骤305)。假如在只读缓冲存储器中至少有3取2个交叉比较数据是同样的,则宣布是一个成功的交叉比较(步骤306)。例如,处理器20将位于缓冲存储器50中存储于寄存器1.1中的数据和在寄存器2.1和3.1中的数据进行比较。当来自缓冲存储器50的寄存器1.1的信息与来自缓冲存储器50的寄存器2.1和/或3.1的信息重叠时,导致一个成功的交叉比较。
可以由任何一个CPU宣布一个成功的交叉比较,它们的每一个都对数据进行其自己的比较。如果一个CPU确定有来自两个其他CPU的同样的数据,但其自己的数据与来自任何一个其他CPU的数据不相同,则该CPU不会宣布一个成功的交叉比较。然而在此情况下,出现了同样的数据的两个CPU,基于对来自它们各自的只读缓冲存储器的数据的比较,每个CPU都将宣布一个成功的交叉比较(步骤306)。
对于大量的需要交叉比较的数据,即超过了RAM的容量,在步骤304之后,做出是否所有的数据已经过交叉比较的决定(步骤307)。如果有剩余的数据,流程返回到步骤302,每个处理器向各自的只写缓冲存储器写入需要交叉比较的下一个数据。只有当确定已经交换了所有的数据时,再随后进行步骤305。
通过实施足够大的RAM可以省略步骤307,因为对步骤307的需求取决于需要进行交叉比较的数据的大小。为获得最佳的响应时间,一个大的交叉比较区域将确保交叉比较过程可以用一个数据包来完成。
例如实时重要控制单元(RTVCU)的系统是一个理想的适用于上述交叉比较方案的系统的例子。不需要新的通信协议,该方案只受限制于存储器的访问时间。
以上用举例的方法给出了说明性的、非限制性的实施方式。本发明的上述和其他的特征包括各种新颖的步骤方法和各种新颖的元件,这些特征已经参考附图特别进行了特别的描述并在权利要求书中指出。应该理解具体实施本发明的特别的过程和部件的结构只是通过说明的方式示出,并不作为对本发明的限制。本发明的原理和特征可以以各种的和众多的实施方式加以利用,而不背离由所附加的权利要求书及其等同方式所规定的本发明的范围。还可以预期可以对本发明的实施方式和实现进行众多的修改,而不背离下列权利要求书所规定的本发明的精神和范围。
Claims (10)
1.一种用于具有至少第一和第二处理器的多处理器计算机的交叉比较系统,其包括:
第一层缓冲存储器,包含用于存储来自于所述第一处理器的信息的一个第一存储区域和用于存储来自于所述第二处理器的信息的一个第二存储区域;
第二层缓冲存储器,包含用于存储来自于所述第一存储区域的所述信息和来自于所述第二存储区域的所述信息的一个第三存储区域,以及用于存储来自于所述第一存储区域的所述信息和来自于所述第二存储区域的所述信息的一个第四存储区域,来自于所述第一存储区域和所述第二存储区域的所述信息自动地传递到所述第三存储区域和所述第四存储区域;
其中所述第一、第二、第三和第四存储区域中的每一个包含至少一个只是为其存储区域分配的缓冲存储器;
其中所述第一处理器从所述第三存储区域读取所述信息,并且对来自于所述第一存储区域的存储在所述第三存储区域中的数据与来自于所述第二存储区域的存储在所述第三存储区域中的数据进行比较,以确定来自于所述第一存储区域的存储在所述第三存储区域中的所述信息是否等同于来自于所述第二存储区域的存储在所述第三存储区域中的所述信息;以及
其中所述第二处理器从所述第四存储区域读取所述信息,并且对来自于所述第一存储区域的存储在所述第四存储区域中的数据与来自于所述第二存储区域的存储在所述第四存储区域中的数据进行比较,以确定来自于所述第一存储区域的存储在所述第四存储区域中的所述信息是否等同于来自于所述第二存储区域的存储在所述第四存储区域中的所述信息。
2.根据权利要求1所述的用于多处理器计算机的交叉比较系统,其中所述第一层缓冲存储器是只写缓冲存储器以及其中所述第二层缓冲存储器是只读缓冲存储器。
3.根据权利要求2所述的用于多处理器计算机的交叉比较系统,其中所述第一和所述第二处理器将数据异步地写入到所述第一层缓冲存储器中,以及其中将来自于所述第一层缓冲存储器的所述数据同步地传递到所述第二层缓冲存储器。
4.根据权利要求1所述的用于多处理器计算机的交叉比较系统,其中当在所述第一处理器中比较的所述数据不匹配时,隔离所述第一处理器,以及其中当在所述第二处理器中比较的所述数据不匹配时,隔离所述第二处理器。
5.根据权利要求1所述的用于多处理器计算机的交叉比较系统,其中所述第三和第四存储区域的每一个包括一个第一寄存器用于来自所述第一存储区域的所述数据,和一个第二寄存器用于来自所述第二存储区域的所述数据,并且所述第一和第二处理器的每一个对来自于所述第一寄存器的数据和来自于所述第二寄存器的数据进行比较,以及其中当在所述第一寄存器中的所述数据与所述第二寄存器中的所述数据相同时,宣布一个成功的交叉比较,在此两个所述第一和第二寄存器在一个专门为一个比较处理器分配的存储区域内。
6.一种为一个至少具有三个处理器的多处理器计算机实施一个交叉比较的方法,其中所述至少三个处理器的每一个使用一个单独的存储位置,并且其中为所述至少三个处理器的每一个提供一个单独的端口,以及为每个所述单独的端口提供多个第一层缓冲存储器的一个缓冲存储器,所述方法包括如下有序步骤:
(a)对应于所述各个处理器的所述端口,每个处理器向所述多个第一层缓冲存储器的所述缓冲存储器写入需要交叉比较的信息;
(b)将写入到所有多个所述第一层缓冲存储器的信息传递到多个第二层缓冲存储器,所述多个第二层缓冲存储器的每个缓冲存储器为所述多个第一层缓冲存储器的各个缓冲存储器提供一个存储区域,以及向所述多个处理器的每一个提供所述多个第二层缓冲存储器的一个缓冲存储器;
(c)每个处理器从所述多个第二层缓冲存储器的各个缓冲存储器读取所述信息;以及
(d)每个处理器比较从所述多个第二层缓冲存储器的其缓冲存储器读取的所述信息,当来自另一个处理器的信息匹配于来自所述比较处理器的信息时,则宣布一个成功的交叉比较,
其中在所述有序步骤(b)中,在执行信息的所述传递之前,所述至少三个处理器被同步。
7.根据权利要求6所述的实施一个交叉比较的方法,进一步包括一个有序步骤:
(e)确定是否存在需要交叉比较的剩余的信息,并且当存在时,则对所述剩余的信息重复开始于步骤(a)的所述步骤。
8.根据权利要求6所述的实施一个交叉比较的方法,进一步包括由所述多个处理器的每一个通过轮询它从所述多个所述第二层缓冲存储器中对应的缓冲存储器,检测成功的同步,以及其中当在一个预定的时间段之后,所述多个处理器中的一个处理器没有检测到在所有所述多个处理器之间成功的同步时,执行一个超时操作并由所述处理器实施对所述信息的所述比较。
9.一种用于具有至少第一、第二处理器和第三处理器的多处理器计算机的交叉比较系统,其包括:
第一层缓冲存储器,包含用于存储来自于所述第一处理器的信息的一个第一存储区域,用于存储来自于所述第二处理器的信息的一个第二存储区域,以及用于存储来自于所述第三处理器的信息的一个第三存储区域;
第二层缓冲存储器,包含一个第四存储区域、一个第五存储区域和一个第六存储区域,每个都存储来自于所述第一存储区域的所述信息、来自于所述第二存储区域的所述信息以及来自于所述第三存储区域的所述信息,来自于所述第一层缓冲存储器的所述信息自动地传递给所述第二层缓冲存储器;
其中所述第一到第六存储区域的每一个都包括至少一个只是为它的存储区域分配的缓冲存储器;
其中所述第一、第二和第三处理器分别地从所述第四、第五和第六存储区域读取所述信息,并比较存储在其各自的存储区域中的所述信息,以确定比较处理器的所述信息是否等同于所述其他两个处理器的所述信息;以及
其中当所述比较处理器的所述信息匹配于所述其他两个处理器的至少一个处理器的所述信息时,宣布一个成功的交叉比较。
10.根据权利要求9所述的用于一个多处理器计算机的交叉比较系统,其中所述第一、第二和第三处理器在所述交叉比较之前被同步,以及其中由所述第一、第二和第三处理器中的每一个通过轮询所述第二层缓冲存储器检测所述同步。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/002,237 | 2004-12-03 | ||
US11/002,237 US7350026B2 (en) | 2004-12-03 | 2004-12-03 | Memory based cross compare for cross checked systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1783035A CN1783035A (zh) | 2006-06-07 |
CN100361096C true CN100361096C (zh) | 2008-01-09 |
Family
ID=35929986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101243266A Expired - Fee Related CN100361096C (zh) | 2004-12-03 | 2005-11-28 | 交叉比较系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7350026B2 (zh) |
EP (1) | EP1667024B1 (zh) |
CN (1) | CN100361096C (zh) |
AT (1) | ATE438895T1 (zh) |
DE (1) | DE602005015811D1 (zh) |
ES (1) | ES2331523T3 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE502005006442D1 (de) * | 2004-10-25 | 2009-02-26 | Bosch Gmbh Robert | Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten |
GB0602641D0 (en) * | 2006-02-09 | 2006-03-22 | Eads Defence And Security Syst | High speed data processing system |
US7444544B2 (en) * | 2006-07-14 | 2008-10-28 | International Business Machines Corporation | Write filter cache method and apparatus for protecting the microprocessor core from soft errors |
CN101140558A (zh) * | 2006-09-05 | 2008-03-12 | 深圳迈瑞生物医疗电子股份有限公司 | 嵌入式系统及其通信方法 |
US7644306B2 (en) * | 2006-12-15 | 2010-01-05 | Boeing Company | Method and system for synchronous operation of an application by a purality of processing units |
JP4521678B2 (ja) * | 2007-11-19 | 2010-08-11 | フェリカネットワークス株式会社 | 通信システム、情報処理方法、プログラム、及び情報処理装置 |
KR20100034415A (ko) * | 2008-09-24 | 2010-04-01 | 삼성전자주식회사 | 메모리 링크 아키텍쳐를 활용한 부팅기능을 갖는 멀티 프로세서 시스템 |
US8458581B2 (en) * | 2009-10-15 | 2013-06-04 | Ansaldo Sts Usa, Inc. | System and method to serially transmit vital data from two processors |
JP5829392B2 (ja) * | 2010-09-30 | 2015-12-09 | 三菱重工業株式会社 | 制御装置および原子力発電プラント制御システム |
JP2012079184A (ja) | 2010-10-04 | 2012-04-19 | Mitsubishi Heavy Ind Ltd | 制御装置および原子力発電プラント制御システム |
US8543774B2 (en) | 2011-04-05 | 2013-09-24 | Ansaldo Sts Usa, Inc. | Programmable logic apparatus employing shared memory, vital processor and non-vital communications processor, and system including the same |
CN105204774B (zh) * | 2014-06-23 | 2019-01-15 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
FR3024869B1 (fr) * | 2014-08-14 | 2016-08-26 | Zodiac Aero Electric | Systeme de distribution electrique pour un aeronef et procede de commande correspondant |
JP5902778B1 (ja) * | 2014-09-03 | 2016-04-13 | ファナック株式会社 | 周辺機器を安全に制御する機能を有する工作機械 |
US9641287B2 (en) | 2015-01-13 | 2017-05-02 | Honeywell International Inc. | Methods and apparatus for high-integrity data transfer with preemptive blocking |
US11812312B2 (en) * | 2015-05-25 | 2023-11-07 | Apple Inc. | Link quality based single radio-voice call continuity and packet scheduling for voice over long term evolution communications |
RU183879U1 (ru) * | 2017-10-25 | 2018-10-08 | Публичное акционерное общество "Институт электронных управляющих машин им. И.С. Брука" | Процессорный модуль |
EP4071622B1 (en) * | 2019-12-19 | 2024-03-27 | Huawei Technologies Co., Ltd. | Storage system and data crossing method |
RU208501U1 (ru) * | 2021-06-28 | 2021-12-22 | Общество с ограниченной ответственностью "Форк" | Системная плата |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097460A (ja) * | 1996-09-25 | 1998-04-14 | Digital:Kk | コンピュータ装置における書込み用バッファ装置のアドレス用比較器及び主記憶装置からのデータ読出し方法 |
CN1276564A (zh) * | 1999-06-03 | 2000-12-13 | 国际商业机器公司 | 数据处理器存储系统 |
US6199171B1 (en) * | 1998-06-26 | 2001-03-06 | International Business Machines Corporation | Time-lag duplexing techniques |
CN1294708A (zh) * | 1998-02-25 | 2001-05-09 | 西门子公司 | 用于安全容错计算机的同步和/或数据交换方法及适用于此的装置 |
CN1472650A (zh) * | 2002-07-10 | 2004-02-04 | 日本电气株式会社 | 信息处理设备 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5295258A (en) * | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
US5226152A (en) * | 1990-12-07 | 1993-07-06 | Motorola, Inc. | Functional lockstep arrangement for redundant processors |
US5479573A (en) * | 1992-11-24 | 1995-12-26 | Pavilion Technologies, Inc. | Predictive network with learned preprocessing parameters |
US5909541A (en) * | 1993-07-14 | 1999-06-01 | Honeywell Inc. | Error detection and correction for data stored across multiple byte-wide memory devices |
US5559450A (en) | 1995-07-27 | 1996-09-24 | Lucent Technologies Inc. | Field programmable gate array with multi-port RAM |
GB2312134B (en) * | 1996-04-12 | 2000-10-04 | Sony Corp | Data transfer device |
US5715197A (en) | 1996-07-29 | 1998-02-03 | Xilinx, Inc. | Multiport RAM with programmable data port configuration |
US5970240A (en) | 1997-06-25 | 1999-10-19 | Quickturn Design Systems, Inc. | Method and apparatus for configurable memory emulation |
US6052619A (en) * | 1997-08-07 | 2000-04-18 | New York University | Brain function scan system |
US5978889A (en) | 1997-11-05 | 1999-11-02 | Timeplex, Inc. | Multiple device data transfer utilizing a multiport memory with opposite oriented memory page rotation for transmission and reception |
US6182196B1 (en) | 1998-02-20 | 2001-01-30 | Ati International Srl | Method and apparatus for arbitrating access requests to a memory |
US6181163B1 (en) | 1999-01-21 | 2001-01-30 | Vantis Corporation | FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals |
US6434642B1 (en) | 1999-10-07 | 2002-08-13 | Xilinx, Inc. | FIFO memory system and method with improved determination of full and empty conditions and amount of data stored |
US6362650B1 (en) | 2000-05-18 | 2002-03-26 | Xilinx, Inc. | Method and apparatus for incorporating a multiplier into an FPGA |
US6373779B1 (en) | 2000-05-19 | 2002-04-16 | Xilinx, Inc. | Block RAM having multiple configurable write modes for use in a field programmable gate array |
US6535043B2 (en) | 2000-05-26 | 2003-03-18 | Lattice Semiconductor Corp | Clock signal selection system, method of generating a clock signal and programmable clock manager including same |
US7908520B2 (en) * | 2000-06-23 | 2011-03-15 | A. Avizienis And Associates, Inc. | Self-testing and -repairing fault-tolerance infrastructure for computer systems |
US6516390B1 (en) * | 2000-10-26 | 2003-02-04 | Emc Corporation | Methods and apparatus for accessing data within a data storage system |
US7072345B2 (en) * | 2000-11-29 | 2006-07-04 | Raza Microelectronics, Inc | Programmable integrated circuit for use in a network switch |
JP3693013B2 (ja) | 2001-12-26 | 2005-09-07 | 日本電気株式会社 | データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体 |
US6948091B2 (en) * | 2002-05-02 | 2005-09-20 | Honeywell International Inc. | High integrity recovery from multi-bit data failures |
-
2004
- 2004-12-03 US US11/002,237 patent/US7350026B2/en active Active
-
2005
- 2005-11-15 DE DE602005015811T patent/DE602005015811D1/de active Active
- 2005-11-15 ES ES05024885T patent/ES2331523T3/es active Active
- 2005-11-15 AT AT05024885T patent/ATE438895T1/de not_active IP Right Cessation
- 2005-11-15 EP EP05024885A patent/EP1667024B1/en active Active
- 2005-11-28 CN CNB2005101243266A patent/CN100361096C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097460A (ja) * | 1996-09-25 | 1998-04-14 | Digital:Kk | コンピュータ装置における書込み用バッファ装置のアドレス用比較器及び主記憶装置からのデータ読出し方法 |
CN1294708A (zh) * | 1998-02-25 | 2001-05-09 | 西门子公司 | 用于安全容错计算机的同步和/或数据交换方法及适用于此的装置 |
US6199171B1 (en) * | 1998-06-26 | 2001-03-06 | International Business Machines Corporation | Time-lag duplexing techniques |
CN1276564A (zh) * | 1999-06-03 | 2000-12-13 | 国际商业机器公司 | 数据处理器存储系统 |
CN1472650A (zh) * | 2002-07-10 | 2004-02-04 | 日本电气株式会社 | 信息处理设备 |
Also Published As
Publication number | Publication date |
---|---|
EP1667024B1 (en) | 2009-08-05 |
ES2331523T3 (es) | 2010-01-07 |
EP1667024A3 (en) | 2007-02-21 |
EP1667024A2 (en) | 2006-06-07 |
DE602005015811D1 (de) | 2009-09-17 |
ATE438895T1 (de) | 2009-08-15 |
US7350026B2 (en) | 2008-03-25 |
US20060123202A1 (en) | 2006-06-08 |
CN1783035A (zh) | 2006-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100361096C (zh) | 交叉比较系统和方法 | |
US4591977A (en) | Plurality of processors where access to the common memory requires only a single clock interval | |
US7299313B2 (en) | System, method and storage medium for a memory subsystem command interface | |
US5067071A (en) | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus | |
US7305510B2 (en) | Multiple master buses and slave buses transmitting simultaneously | |
KR100335299B1 (ko) | 컴퓨터 시스템 | |
CA2009529C (en) | Servicing interrupt requests in a data processing system without using the services of an operating system | |
CN1770110B (zh) | 对I/O完成进行无锁InfiniBand轮询的方法和系统 | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
US7464208B2 (en) | Method and apparatus for shared resource management in a multiprocessing system | |
US20060225074A1 (en) | Method and apparatus for communication between two or more processing elements | |
GB1588804A (en) | Processor module for a multiprocessor system | |
JPS61109164A (ja) | バス制御方法 | |
US20070180301A1 (en) | Logical partitioning in redundant systems | |
JP2013515980A (ja) | データ転送装置およびその制御方法 | |
CN101364212A (zh) | 访问存储器单元的方法及装置 | |
US20090006702A1 (en) | Sharing universal serial bus isochronous bandwidth between multiple virtual machines | |
US5036456A (en) | Apparatus for controlling concurrent operations of a system control unit including activity register circuitry | |
US20020116664A1 (en) | Method and apparatus for machine check abort handling in a multiprocessing system | |
US5367701A (en) | Partitionable data processing system maintaining access to all main storage units after being partitioned | |
CN117991977A (zh) | 用于动态地重配置存储器装置的存储器区域的设备和方法 | |
US20080052429A1 (en) | Off-board computational resources | |
US6282144B1 (en) | Multi-ported memory with asynchronous and synchronous protocol | |
US7725761B2 (en) | Computer system, fault tolerant system using the same and operation control method and program thereof | |
JPH02118761A (ja) | コンピューティング・システム、非同期的な複数のプロセッサの動作方法、該動作方法のコーディネート方法、プロセッサ間の通信方法、及び該プロセッサによる複数のメッセージの転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080109 Termination date: 20161128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |