ES2331523T3 - CROSS-COMPARED MEMORY-BASED COMPARISON FOR SYSTEMS SUBJECT TO CROSSED VERIFICATION. - Google Patents

CROSS-COMPARED MEMORY-BASED COMPARISON FOR SYSTEMS SUBJECT TO CROSSED VERIFICATION. Download PDF

Info

Publication number
ES2331523T3
ES2331523T3 ES05024885T ES05024885T ES2331523T3 ES 2331523 T3 ES2331523 T3 ES 2331523T3 ES 05024885 T ES05024885 T ES 05024885T ES 05024885 T ES05024885 T ES 05024885T ES 2331523 T3 ES2331523 T3 ES 2331523T3
Authority
ES
Spain
Prior art keywords
storage area
buffers
processor
information
layer
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
Application number
ES05024885T
Other languages
Spanish (es)
Inventor
Mario Popescu
Stephen Barr
Alexander Trica
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Application granted granted Critical
Publication of ES2331523T3 publication Critical patent/ES2331523T3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error 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/184Error 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/185Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal 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)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A cross compare solution running in a multiprocessor configuration, using a multi-port RAM with built-in logic. This provides for a fast and simple data cross compare medium. The multi-port RAM unit can be plugged into the motherboard of the main processor unit, requiring no external hardware or wiring. A method and a system for cross compare has a first layer of buffers with a first storage area for storing information from the first processor and a second storage area for storing information from the second processor, and a second layer of buffers with a third and fourth storage areas, where each storage area stores information from the first and second storage areas. The first, second, third, and fourth storage areas have one or more buffers allocated only for its respective storage area.

Description

Comparación cruzada basada en memoria para sistemas sometidos a verificación cruzada.Memory-based cross comparison for systems under cross-checking.

1. Campo de la invención1. Field of the invention

Comparación cruzada para sistemas que operan en una configuración multiprocesador, tales como configuraciones duales 2 de 2 y configuraciones triplicadas 2 de 3 o alguna otra configuración multiprocesador.Cross comparison for systems operating in a multiprocessor configuration, such as configurations dual 2 of 2 and triplicate configurations 2 of 3 or some other multiprocessor configuration

2. Descripción de la técnica relacionada2. Description of the related technique

Como quiera que han aumentado las velocidades de reloj de las unidades CPU y se han hecho más comunes las arquitecturas multiprocesador, las capacidades de las prestaciones de procesamiento han superado las de la memoria RAM tradicional. Una solución de este problema ha sido la adopción de una RAM multipuerto.However the speeds of CPU units clock and have become more common the multiprocessor architectures, performance capabilities Processing have exceeded those of traditional RAM. A solution to this problem has been the adoption of a RAM multiport

Una RAM multipuerto se presenta en muchas configuraciones que proporcionan acceso a un espacio de memoria compartida a través de varios puertos de entrada y de salida. Cada vez es más común la capacidad de escribir varios datos simultáneamente en el dispositivo a través de puertos separados, Cuando se escriben simultáneamente datos en el mismo lugar desde dos o más puertos, no queda garantizada la integridad de los datos. El lugar de memoria direccionado podría contener datos nuevos, datos viejos o algún valor transicional. Para mitigar este problema se requiere una lógica adicional destinada a implementar un arbitraje. El arbitraje consiste en coordinar lugares de acceso a memoria por parte de los procesadores.A multiport RAM comes in many configurations that provide access to a memory space shared through several input and output ports. Every the ability to write several data is more common simultaneously on the device through separate ports, When data is written simultaneously in the same place from two or more ports, the integrity of the data is not guaranteed. The addressed memory location may contain new data, old data or some transitional value. To mitigate this problem additional logic is required to implement a arbitration. Arbitration consists in coordinating places of access to memory by processors.

Algunas aplicaciones de sistemas de computación digital, por ejemplo, sistemas vitales y sistemas críticos para una misión, requieren un alto grado de seguridad. Por ejemplo, para un funcionamiento seguro, un ordenador de control del vuelo de una aeronave depende de una operación de computación continua exenta de errores durante todo el período de vuelo. Deberá reconocerse que una operación exenta de errores requiere la eliminación de defectos o el confinamiento de éstos dentro del sistema de computación digital. Además de demandas de fiabilidad cada vez mayores, es necesario un sistema de computación rápida con un rendimiento total incrementado para sistemas de control de vuelo y otros sistemas vitales.Some applications of computer systems digital, for example, vital systems and critical systems for a mission, require a high degree of security. For example, for a safe operation, a flight control computer of a aircraft depends on a continuous computing operation exempt from errors during the entire flight period. It should be recognized that an error-free operation requires the elimination of defects or the confinement of these within the computer system digital. In addition to increasing demands for reliability, it is a fast computing system with total performance is necessary increased for flight control systems and other systems vital.

Para proporcionar integridad de los datos, más de un procesador determina si existe discrepancia en la información que se está transfiriendo simultáneamente por un bus. La comparación de datos para obtener resultados altamente precisos se denomina frecuentemente "comparación cruzada". Por ejemplo, efectuando una comparación cruzada de resultados computacionales producidos por diferentes procesadores se proporciona una alta integridad de los datos.To provide data integrity, more of a processor determines if there is discrepancy in the information which is being transferred simultaneously by a bus. The comparison of data to obtain highly accurate results is called frequently "cross comparison." For example, performing a cross comparison of computational results produced high integrity of different processors is provided the data.

Los actuales sistemas de comparación cruzada que operan en una configuración multiprocesador son lentos, requieren mucho software y son complicados en su instalación. Hay varias soluciones actualmente disponibles. Una solución utilizada para sistemas duales requiere una conexión de puertos paralelo o serie. Ambas soluciones de puertos paralelo y de puertos serie soportan solamente una cantidad limitada de datos que pueden transferirse de una vez. La solución basada en puertos serie es lenta y requiere mucho software. La solución de puertos paralelo se vuelve lenta siempre que grandes cantidades de datos necesiten someterse a comparación cruzada.The current cross-comparison systems that operate in a multiprocessor configuration are slow, require a lot of software and are complicated in its installation. There are some currently available solutions. A solution used to Dual systems require a parallel or serial port connection. Both parallel and serial port solutions support only a limited amount of data that can be transferred from one time. The serial port based solution is slow and requires a lot of software The parallel port solution becomes slow whenever large amounts of data need to undergo cross comparison.

Otra solución está destinada a sistemas triplicados que utilizan una instalación de hardware complicada o una conexión de señal de alta velocidad que requiere mucho software y utiliza cableado externo. Cuando se implementaron utilizando hardware externo basado en bastidores, la instalación era complicada y requería mucho software. Cuando se implementaron con una comunicación serie de alta velocidad (Ethernet), la disposición requería mucho software y estaba limitada en velocidad por el cableado externo.Another solution is for systems triplicates that use a complicated hardware installation or a high speed signal connection that requires a lot of software and uses external wiring. When they were implemented using external rack-based hardware, installation was complicated and it required a lot of software. When they were implemented with a High speed serial communication (Ethernet), the layout it required a lot of software and was limited in speed by the external wiring

Como ejemplo de un sistema de la técnica relacionada, la patente norteamericana No. 6,182,196 describe un método y un aparato para arbitrar peticiones de acceso a una memoria. La memoria comprende un módulo de verificación cruzada (502) que compara las peticiones de operación de los clientes. Cuando el módulo de verificación cruzada (502) determina que las peticiones están intentando contemporáneamente acceder a un bloque idéntico de la memoria, la comparación cruzada (502) arbitra entre las peticiones de operación de los clientes. El arbitraje se basa en una regla de arbitraje y produce una primera petición de acceso a memoria y una segunda petición de acceso a memoria.As an example of a technique system related, U.S. Patent No. 6,182,196 describes a method and apparatus for arbitrating requests for access to a memory. The memory comprises a cross verification module (502) that compares customer operation requests. When the cross-check module (502) determines that the requests are trying to access a block at one time identical memory, cross comparison (502) arbitrates between Customer operation requests. The arbitration is based in an arbitration rule and produces a first request for access to memory and a second request for memory access.

Como otro ejemplo más de un sistema anterior, la publicación de la solicitud de patente US 2002/0010902 describe agrupaciones de puertas programables en el campo (FPGAs) que comprenden un bloque RAM embebido (EBR). En una realización, los EBRs son bloques RAM multipuerto embebidos en un núcleo FPGA. El EBR se utiliza para aumentar la cantidad de memoria y complementar la memoria distribuida de la unidad funcional programable. Se proporciona arbitraje entre puertos de escritura, y una unidad de arbitraje recibe señales de petición de memoria y selecciona una ganadora de entre las peticiones.As another example of a previous system, the Publication of US patent application 2002/0010902 describes field programmable door groupings (FPGAs) that they comprise an embedded RAM block (EBR). In one embodiment, the EBRs are multiport RAM blocks embedded in an FPGA core. The EBR It is used to increase the amount of memory and complement the Distributed memory of the programmable functional unit. Be provides arbitration between write ports, and a unit of arbitration receives memory request signals and selects a winner of the requests.

El documento DE 198 09 089 A1 describe un método de comparación cruzada de datos entre una pluralidad de canales de procesamiento, en donde se utilizan una pluralidad de placas de acoplamiento que están conectadas una con otra a través de un sistema de bus separado para implementar un mecanismo de replicación.Document DE 198 09 089 A1 describes a method cross-comparison of data between a plurality of channels of processing, where a plurality of plates are used coupling that are connected to each other through a separate bus system to implement a mechanism of replication.

Sumario de la invenciónSummary of the invention

La presente invención se refiere a un ordenador multiprocesador según la reivindicación 1 y a un método según la reivindicación 9.The present invention relates to a computer multiprocessor according to claim 1 and to a method according to the claim 9.

Las reivindicaciones adjuntas deberán consultarse para averiguar el alcance verdadero de la invención.The attached claims must Consult to find out the true scope of the invention.

La presente invención es una solución de comparación cruzada que se desarrolla en una configuración multiprocesador. Un aspecto de la presente invención consiste en proporcionar un medio de comparación cruzada rápida y sencilla de datos utilizando una RAM multipuerto con una lógica incorporada. La RAM multipuerto puede enchufarse en la placa posterior de la unidad multiprocesadora que se conecta a cualquier bus estándar o incluso no estándar. Por tanto, no se requieren hardware ni cableado externos.The present invention is a solution of cross comparison that develops in a configuration multiprocessor An aspect of the present invention consists in provide a means of quick and easy cross-comparison of data using a multiport RAM with built-in logic. The Multiport RAM can be plugged into the backplane of the unit multiprocessor that connects to any standard bus or even non-standard. Therefore, no hardware or wiring is required external

El sistema de comparación cruzada según la presente invención emplea un método de almacenamiento transitorio de datos que opera a una rápida velocidad limitada solamente por el tiempo de acceso a la memoria. El sistema es simple de implementar y no requiere un protocolo de comunicación.The cross comparison system according to the The present invention employs a transitory storage method of data that operates at a fast speed limited only by the memory access time The system is simple to implement. and does not require a communication protocol.

En un ejemplo de realización el sistema se ajusta sobre una sola placa y no requiere hilos conductores externos. El concepto no está ligado a ningún hardware específico y es válido en términos de arquitectura e implementación de hardware para cualquier tamaño de datos de comparación cruzada y cualquier velocidad de comunicación requerida. Por tanto, si cambian los requisitos de tamaño y/o velocidad, el sistema dado a título de ejemplo puede mejorarse fácilmente sustituyendo la unidad.In an exemplary embodiment the system is fits on a single plate and does not require conductive wires external The concept is not linked to any specific hardware and It is valid in terms of architecture and hardware implementation for any cross-comparison data size and any communication speed required. Therefore, if the size and / or speed requirements, the system given as example can be easily improved by replacing the unit.

La solución de comparación cruzada basada en memoria según la presente invención se basa en una RAM multipuerto con su lógica requerida, implementada, por ejemplo, utilizando una agrupación de puertas programables en el campo (FPGA) o un circuito integrado para aplicaciones específicas (ASIC).The cross-comparison solution based on memory according to the present invention is based on a multiport RAM with its required logic, implemented, for example, using a grouping of field programmable doors (FPGA) or a circuit integrated for specific applications (ASIC).

La RAM multipuerto según la presente invención ofrece acceso de escritura y lectura controlado para cada unidad procesadora del sistema, proporcionando un medio de comparación cruzada rápida y sencilla de datos. Se proporciona plena separación entre todas las unidades procesadoras del sistema. Dado que no es posible un acceso simultáneo a ningún lugar de la memoria, no es necesario un arbitraje. El sistema de la invención es idealmente adecuado para, entre otras cosas, sistemas de seguridad, sistemas críticos para una misión o sistemas de alta disponibilidad que están todos ellos sometidos a una verificación cruzada y que se basan en ordenador.The multiport RAM according to the present invention offers controlled write and read access for each unit system processor, providing a means of comparison Fast and simple data cross. Full separation is provided among all the processing units of the system. Since it is not possible simultaneous access to any place in memory, it is not Arbitration necessary. The system of the invention is ideally suitable for, among other things, security systems, systems critical for a mission or high availability systems that they are all subject to cross-checking and that computer based.

Según una realización de la presente invención, se proporciona un sistema de comparación cruzada para un ordenador multiprocesador que tiene al menos un primero y un segundo procesador. El sistema incluye una primera capa de búferes que comprende una primera área de almacenaje para almacenar información proveniente del primer procesador y una segunda área de almacenaje para almacenar información proveniente del segundo procesador. Se proporciona también una segunda capa de búferes. La segunda capa de búferes comprende una tercera área de almacenaje para almacenar la información proveniente de la primera área de almacenaje y la información proveniente de la segunda área de almacenaje, y una cuarta área de almacenaje para almacenar la información proveniente de la primera área de almacenaje y la información proveniente de la segunda área de almacenaje. La información proveniente de la primera área de almacenaje y de la segunda área de almacenaje es transferida automáticamente a la tercera área de almacenaje y a la cuarta área de almacenaje. Las áreas de almacenaje primera, segunda, tercera y cuarta comprenden al menos un búfer asignado solamente a su respectiva área de almacenaje.According to an embodiment of the present invention, a cross comparison system is provided for a computer multiprocessor that has at least one first and one second processor. The system includes a first layer of buffers that comprises a first storage area to store information from the first processor and a second storage area to store information from the second processor. Be It also provides a second layer of buffers. The second layer of buffers comprises a third storage area to store the information from the first storage area and the information from the second storage area, and a fourth storage area to store information from of the first storage area and the information coming from the Second storage area. The information coming from the first storage area and the second storage area is automatically transferred to the third storage area and to the Fourth storage area. The first storage areas, second, third and fourth comprise at least one assigned buffer only to their respective storage area.

El primer procesador lee la información proveniente de la tercera área de almacenaje y declara una comparación cruzada satisfactoria si se determina que la información proveniente del segundo procesador es sustancialmente idéntica a la información proveniente del procesador de comparación. Asimismo, el segundo procesador lee la información proveniente de la cuarta área de almacenaje y declara una comparación cruzada satisfactoria si se determina que la información proveniente del segundo procesador es sustancialmente idéntica a la información proveniente del procesador de comparación.The first processor reads the information from the third storage area and declare a satisfactory cross comparison if it is determined that the information from the second processor is substantially identical to the information coming from the comparison processor. Also, the second processor reads the information coming from the fourth storage area and declare a cross comparison satisfactory if it is determined that the information from the second processor is substantially identical to the information from the comparison processor.

Otra realización de la presente invención consiste en un método de realizar una comparación cruzada entre lugares de una memoria multipuerto escritos simultáneamente por varios procesadores, estando cada puerto provisto de un búfer de una pluralidad de búferes de la primera capa. En el primer paso del método cada procesador escribe datos a someter a comparación cruzada en el búfer de la pluralidad de búferes de la primera capa correspondiente al puerto del procesador respectivo. Los datos escritos en todos los búferes de la primera capa son transferidos después a una pluralidad de búferes de la segunda capa, proporcionando cada búfer de la pluralidad de búferes de la segunda capa un área de almacenaje para cada búfer de la pluralidad de búferes de la primera capa, y estando previsto un búfer de la pluralidad de búferes de la segunda capa para cada uno de los varios procesadores.Another embodiment of the present invention it consists of a method of cross-comparison between places in a multiport memory written simultaneously by several processors, each port being provided with a buffer of a plurality of buffers of the first layer. In the first step of method each processor writes data for comparison crossed in the buffer of the plurality of first layer buffers corresponding to the respective processor port. The data written in all buffers of the first layer are transferred then to a plurality of buffers of the second layer, providing each buffer of the plurality of buffers of the second layer a storage area for each buffer of the plurality of buffers of the first layer, and being provided a buffer of the plurality of buffers of the second layer for each of the various processors

Cada procesador lee después la información proveniente de un búfer respectivo de la pluralidad de segundos búferes y compara la información leída en su búfer de la pluralidad de segundos búferes, declarando una comparación cruzada satisfactoria si la información proveniente de otro procesador se solapa con la información proveniente del procesador de comparación en términos de áreas de almacenaje que son escritas por los procesadores. La pluralidad de procesadores se sincronizan antes de la transferencia de datos de la primera capa de búferes a la segunda capa de búferes.Each processor then reads the information from a respective buffer of the plurality of seconds buffers and compare the information read in your plurality buffer of second buffers, declaring a cross comparison satisfactory if information from another processor is overlap with information from the comparison processor in terms of storage areas that are written by processors The plurality of processors are synchronized before the transfer of data from the first buffer layer to the second layer of buffers.

La segunda realización puede describir, además, la determinación de si existe una información adicional que deba someterse a una comparación cruzada, y, si es así, la repetición de los pasos con la información adicional, comenzando en el paso de escritura por cada procesador de datos que deben someterse a comparación cruzada.The second embodiment may further describe determining whether there is additional information that should undergo a cross comparison, and, if so, the repetition of the steps with the additional information, starting at the step of writing for each data processor that must undergo cross comparison.

Breve descripción de los dibujosBrief description of the drawings

Se describirá ahora la presente invención con detalle describiendo realizaciones ilustrativas no limitativas de la misma con referencia a los dibujos adjuntos. En los dibujos los mismos caracteres de referencia denotan elementos análogos:The present invention will now be described with detail describing illustrative non-limiting embodiments of the same with reference to the attached drawings. In the drawings the same reference characters denote analogous elements:

La figura 1 ilustra una vista general de la solución para un sistema de seguridad triplicado de acuerdo con una realización ilustrativa no limitativa de la presente invención.Figure 1 illustrates an overview of the solution for a triplicate security system according to a illustrative non-limiting embodiment of the present invention.

La figura 2 ilustra los pasos de un método ejecutado en un ciclo de una aplicación según una realización ilustrativa no limitativa de la presente invención.Figure 2 illustrates the steps of a method executed in a cycle of an application according to an embodiment Non-limiting illustration of the present invention.

La figura 3 ilustra pasos de un método para ejecutar una comparación cruzada según una realización ilustrativa no limitativa de la presente invención.Figure 3 illustrates steps of a method for run a cross comparison according to an illustrative embodiment non-limiting of the present invention.

Descripción detallada de los ejemplos de realización no limitativosDetailed description of embodiments not limiting

Se realiza usualmente una comparación cruzada al principio y antes del final de cada ciclo de una aplicación, lo cual se describe aquí más adelante con mayor detalle. Durante esta actividad, todas las entradas y/o salidas son sometidas a una comparación cruzada entre los procesadores, tales como las unidades multiprocesadoras/unidades procesadoras centrales (MPUs/CPUs), los microprocesadores, las unidades de control vital del tiempo de ejecución, etc.A cross comparison is usually performed at beginning and before the end of each cycle of an application, what which is described here in more detail below. During this activity, all entrances and / or exits are subjected to a cross comparison between processors, such as units multiprocessors / central processing units (MPUs / CPUs), microprocessors, the vital time control units of execution, etc.

La figura 1 ilustra una configuración 2 de 3 de acuerdo con el ejemplo de realización no limitativo de la presente invención. Haciendo referencia al sistema ilustrado en la figura 1, cada CPU (20, 21, 22) de un sistema de seguridad 10 representa un ejemplo de CPU o un ejemplo de MPU o algún otro ejemplo de procesador, dependiendo de la aplicación particular. Los términos CPU, MPU y procesador se utilizan aquí de forma intercambiable. La realización de la comparación cruzada es solamente una de las funcionalidades de cada procesador.Figure 1 illustrates a configuration 2 of 3 of in accordance with the example of non-limiting embodiment of the present invention. Referring to the system illustrated in Figure 1, each CPU (20, 21, 22) of a security system 10 represents a CPU example or an example of MPU or some other example of processor, depending on the particular application. The terms CPU, MPU and processor are used interchangeably here. The performing cross-comparison is only one of the functionalities of each processor.

Cada CPU (20, 21, 22) utiliza su propio bus para conectarse a una RAM multipuerto (30). En la RAM multipuerto 30 cada CPU tiene su propio espacio de memoria. A la CPU1 (20) se asignan un búfer de sólo escritura 1.1 (40) y un búfer de sólo lectura 1.2 (50); a la CPU2 (21) se asignan un búfer de sólo escritura 2.1 (41) y un búfer de sólo lectura 2.2 (51); y a la CPU3 (22) se asignan un búfer de sólo escritura 3.1 (42) y un búfer de sólo lectura 3.2 (52). Los términos de sólo escritura y de sólo lectura se utilizan aquí con referencia a la capacidad de las CPUs de acceder a un búfer.Each CPU (20, 21, 22) uses its own bus to connect to a multiport RAM (30). In multiport RAM 30 Each CPU has its own memory space. To CPU1 (20) it assign a write-only buffer 1.1 (40) and a buffer-only reading 1.2 (50); a buffer of only 2 is assigned to CPU2 (21) write 2.1 (41) and a read-only buffer 2.2 (51); and to CPU3 (22) a write-only buffer 3.1 (42) and a buffer of read only 3.2 (52). The terms of only writing and only reading are used here with reference to the capacity of the CPUs of accessing a buffer.

Se proporciona un acceso estrictamente controlado al espacio de memoria propio de cada CPU. El búfer de sólo lectura para cada CPU incluye un registro para cada uno de los búferes de sólo escritura. En el presente ejemplo cada búfer de sólo lectura (50, 51, 52) tiene tres registros (1.1, 2.1, 3.1). Los datos escritos por cada CPU (20, 21, 22) son copiados a través de una lógica interna (60, 61, 62) para pasarlos de todos los búferes de sólo escritura (40, 41, 42) a un registro correspondiente de cada búfer de sólo lectura (50, 51, 52) para cada CPU. Esto quiere decir que están previstas dos capas de búferes. Una capa consta de búferes de sólo escritura (40, 41, 42) y la segunda capa consta de búferes de sólo lectura (50, 51, 52). Los datos escritos en el búfer de sólo escritura 1.1 (40) por la CPU1 (20) se copian en registros 1.1 de los búferes de sólo lectura (50, 51, 52). Análogamente, los datos escritos en el búfer de sólo escritura 2.1 (41) por la CPU2 (21) y los datos escritos en el búfer de sólo escritura 3.1 (42) por la CPU3 (22) se copian en registros 2.1 y 3.1, respectivamente, de los búferes de sólo lectura (50, 51, 52). En otras palabras, en la realización ilustrativa no limitativa cada procesador (20, 21, 22) tiene uno o más búferes de la primera capa de búferes (40, 41, 42) y uno o más búferes de la segunda capa de búferes (50, 51, 52).Strict access is provided controlled to the memory space of each CPU. The buffer of read-only for each CPU includes a record for each of the write-only buffers. In the present example each buffer of Read only (50, 51, 52) has three records (1.1, 2.1, 3.1). The data written by each CPU (20, 21, 22) are copied through an internal logic (60, 61, 62) to pass them from all buffers write-only (40, 41, 42) to a corresponding record of each Read-only buffer (50, 51, 52) for each CPU. This means Two layers of buffers are planned. A layer consists of buffers write-only (40, 41, 42) and the second layer consists of buffers read-only (50, 51, 52). The data written in the buffer of write only 1.1 (40) by CPU1 (20) are copied to registers 1.1 of read-only buffers (50, 51, 52). Similarly, the data written in write-only buffer 2.1 (41) by CPU2 (21) and the data written in the write-only buffer 3.1 (42) by CPU3 (22) are copied in registers 2.1 and 3.1, respectively, of read-only buffers (50, 51, 52). In other words, in the illustrative non-limiting embodiment of each processor (20, 21, 22) has one or more buffers of the first layer of buffers (40, 41, 42) and one or more buffers of the second layer of buffers (50, 51, 52).

La lógica interna que controla el proceso de transferencia de datos se implementa utilizando FPGAs o ASICs (60, 61, 62). Como se ilustra en la figura 1, para fines de sincronización, se puede implementar una lógica especial en un FPGA o ASIC (60, 61, 62) con el fin de asegurarse de que, mientras una CPUs (20, 21, 22) escribe en su lugar de memoria, las otras puedan leer solamente "no listo" en su lugar propio. Los FPGAs o ASICs realizan operaciones lógicas requeridas para los búferes de las capas primera y segunda. Cada procesador (20, 21, 22) tiene su propio FPGA o ASIC individual (60, 61, 62), respectivamente.The internal logic that controls the process of Data transfer is implemented using FPGAs or ASICs (60, 61, 62). As illustrated in Figure 1, for the purpose of synchronization, special logic can be implemented in an FPGA or ASIC (60, 61, 62) in order to ensure that, while a CPUs (20, 21, 22) write in their place of memory, the others can read only "not ready" in your own place. FPGAs or ASICs perform logical operations required for the buffers of the first and second layers. Each processor (20, 21, 22) has its own FPGA itself or individual ASIC (60, 61, 62), respectively.

Además, es preferible proporcionar una fuente de alimentación individual (70, 71, 72) para cada FPGA o ASIC (60, 61, 62). Haciendo que cada procesador (20, 21, 22) tenga su propio FPGA o ASIC individual (60, 61, 62) alimentado por su fuente de alimentación individual (70, 71, 72) se asegura una separación entre los procesadores (20, 21, 22). Por ejemplo, si un procesador resulta ser defectuoso, éste puede ser simplemente aislado y sus datos serán descartados, sin tener impacto en los demás procesadores. Esto quiere decir que los procesadores que funcionan normalmente se desconectan ellos mismos del procesador defectuoso en caso de una detección de error en la comparación cruzada. Un experto ordinario en la materia sabrá cómo aislar un procesador defectuoso, y las diversas técnicas de aislamiento caen dentro del alcance de la invención.In addition, it is preferable to provide a source of Individual power (70, 71, 72) for each FPGA or ASIC (60, 61, 62). Making each processor (20, 21, 22) have its own FPGA or individual ASIC (60, 61, 62) powered by its source of Individual feeding (70, 71, 72) ensures a separation between the processors (20, 21, 22). For example, if a processor turns out to be defective, it can be simply isolated and its data will be discarded, without impact on others processors This means that the processors that work they usually disconnect themselves from the defective processor in case of an error detection in the cross comparison. A ordinary subject matter expert will know how to isolate a processor defective, and the various isolation techniques fall within the scope of the invention.

Una comparación cruzada para el sistema ilustrado en la figura 1 se realiza por medio de los pasos ilustrados en las figuras 2 y 3. En primer lugar, la figura 2 muestra el ciclo de la CPU de acuerdo con esta realización ilustrativa. En particular, se encienden y se inicializan (paso 201) los procesadores por medio de cualquier técnica convencional conocida. Un experto ordinario en la materia conocería fácilmente una serie de maneras para encender e inicializar un procesador. Después de que se hayan inicializado los procesadores, se implementa (paso 202) una comparación cruzada de las entradas. La comparación cruzada de las entradas (paso 202) de acuerdo con el ejemplo de realización se describe con más detalle en relación con la figura 3. Después de la comparación cruzada de las entradas (paso 202) se realiza (paso 203) una serie de tareas de primer plano de la aplicación.A cross comparison for the system illustrated in figure 1 is done by means of the steps illustrated in figures 2 and 3. First, figure 2 shows the CPU cycle according to this embodiment illustrative In particular, they turn on and initialize (step 201) the processors by any conventional technique known. An ordinary expert in the field would easily know a series of ways to turn on and initialize a processor. After the processors have been initialized, it is implemented  (step 202) a cross comparison of the entries. The comparison cross entry (step 202) according to the example of embodiment is described in more detail in relation to figure 3. After cross-comparing the entries (step 202), performs (step 203) a series of foreground tasks of the application.

Por ejemplo, cada procesador puede estar realizando una diversidad de operaciones de computación muy complejas. Cuando se completan las tareas de primer plano de la aplicación, la salida, por ejemplo el resultado de las operaciones de computación, es sometida también a una comparación cruzada (paso 204). La comparación cruzada de las salidas de acuerdo con el ejemplo de realización se describe con más detalle en relación con la figura 3. Después de que las salidas de las operaciones de computación sean sometidas a comparación cruzada (paso 204) por los procesadores, se completa el ciclo de la aplicación (205) y puede comenzar un nuevo ciclo (205).For example, each processor can be performing a variety of computing operations very complex. When the foreground tasks of the application, output, for example the result of operations computing, is also subjected to a cross comparison (step 204). The cross comparison of the outputs according to the exemplary embodiment is described in more detail in relation to Figure 3. After the outputs of the operations of computation are cross-checked (step 204) by processors, the application cycle (205) is completed and can start a new cycle (205).

En este ejemplo de realización cada procesador se informará de que se ha completado la comparación cruzada sin ninguna señalización a los demás procesadores. Después de la comparación cruzada satisfactoria la entrada y/o la salida estarán disponibles para su escrutinio. Como alternativa, la entrada y/o las salidas pueden proporcionarse generando una interrupción. El escrutinio, la generación de la interrupción o alguna otra solución están dentro del alcance de la invención. La solución elegida dependerá de la aplicación y del hardware que se utilice.In this exemplary embodiment, each processor it will be reported that the cross comparison has been completed without No signaling to the other processors. After the satisfactory cross comparison the input and / or output will be available for scrutiny. As an alternative, the entrance and / or the outputs can be provided generating an interruption. He scrutiny, interruption generation or some other solution They are within the scope of the invention. The chosen solution It will depend on the application and the hardware used.

Seguidamente, con referencia a la figura 3, se ofrecerá una descripción detallada del ejemplo de comparación cruzada no limitativa de las entradas y/o salidas (203, 205). La figura 3 muestra la sincronización de las CPUs (paso 301). La sincronización puede ser realizada por hardware y/o software, usando cualquier número de técnicas. Como ejemplo de una de las muchas maneras en que puede conseguirse una sincronización, las tres CPUs pueden escrutar un lugar de memoria específico, uno para cada CPU, en donde las demás CPUs actualizarán su buena disposición para una comparación cruzada. La lectura del lugar de memoria borra el valor actualizado a fin de evitar una información rancia. Se puede implementar una lógica especial en un FPGA o ASIC a fin de asegurarse de que, mientras una CPU escribe en su lugar de la memoria, las otras pueden solamente leer "no listo" en su lugar
propio.
Next, with reference to Figure 3, a detailed description of the example of non-limiting cross comparison of the inputs and / or outputs (203, 205) will be given. Figure 3 shows the synchronization of the CPUs (step 301). Synchronization can be performed by hardware and / or software, using any number of techniques. As an example of one of the many ways in which synchronization can be achieved, the three CPUs can scan a specific memory location, one for each CPU, where the other CPUs will update their readiness for cross-comparison. Reading the memory location deletes the updated value in order to avoid rancid information. Special logic can be implemented in an FPGA or ASIC to ensure that, while one CPU writes instead of memory, the others can only read "not ready" instead
own.

La sincronización puede producirse en una diversidad de sitios en tanto los procesadores sean sincronizados antes de la transferencia de datos a la capa de búferes de sólo lectura (50, 51, 52). Por ejemplo, se pueden escribir de forma asíncrona los datos en la primera capa de búferes, la capa de sólo lectura (40, 41, 42). La sincronización (301) tendría lugar entonces antes de la transferencia de datos a la segunda capa de búferes (50, 51, 52). Además, en este ejemplo de realización se proporciona un tiempo de retardo especial para impedir rebasamientos de ciclo, lo que se considera un fallo importante del procesador. Por ejemplo, si un procesador 20 estaba aislado debido a algún fallo, los procesadores 21 y 22 proseguirán con la comparación cruzada después de un período de tiempo predeterminado, el tiempo de retardo especial, incluso aunque no se detecte una sincronización satisfactoria con el procesador 20. Se impide así un bloqueo absoluto de los procesadores 21 y 22 que funcionan normalmente.Synchronization can occur in a diversity of sites as long as the processors are synchronized before transferring data to the buffer layer only reading (50, 51, 52). For example, they can be written so asynchronous data in the first buffer layer, the only layer reading (40, 41, 42). Synchronization (301) would take place then before transferring data to the second layer of buffers (50, 51, 52). In addition, in this embodiment example provides a special delay time to prevent cycle overshoots, which is considered a major failure of the processor. For example, if a processor 20 was isolated due to to some failure, processors 21 and 22 will continue with the cross comparison after a predetermined period of time, the special delay time, even if a successful synchronization with processor 20. This prevents a absolute blocking of processors 21 and 22 that work usually.

En el ejemplo ilustrado en la figura 3 las CPUs se sincronizan antes de escribir datos en la primera capa de búferes. En particular, una vez que se sincronizan las CPUs, cada CPU escribe los datos a someter a comparación cruzada en su respectivo búfer de sólo escritura (paso 302). Los datos provenientes de cada búfer de sólo escritura son transferidos después a cada búfer de sólo lectura (paso 303) utilizando una lógica implementada en el FPGA o ASIC (60, 61, 62).In the example illustrated in Figure 3 the CPUs are synchronized before writing data to the first layer of buffers In particular, once the CPUs are synchronized, each CPU writes the data to be cross-checked in its respective write-only buffer (step 302). The data from each write-only buffer are transferred then to each read-only buffer (step 303) using a logic implemented in the FPGA or ASIC (60, 61, 62).

Cada CPU lee después los datos para las tres CPUs (20, 21, 22) en su respectivo búfer de sólo lectura (50, 51, 52) (paso 304) y compara sus datos con los datos provenientes de los otros procesadores (paso 305). Se declarará una comparación cruzada satisfactoria si al menos 2 de 3 datos sometidos a comparación cruzada en un búfer de sólo lectura son idénticos (paso 306). Por ejemplo, el procesador 20 comparará datos almacenados en el registro 1.1 con datos contenidos en los registros 2.1 y 3.1 situados en el búfer 50. Resulta una comparación cruzada satisfactoria cuando la información proveniente del registro 1.1 del búfer 50 se solapa con información proveniente de los registros 2.1 y/o 3.1 del búfer 50.Each CPU then reads the data for all three CPUs (20, 21, 22) in their respective read-only buffer (50, 51, 52) (step 304) and compare your data with the data from the other processors (step 305). A cross comparison will be declared satisfactory if at least 2 of 3 data submitted for comparison crossed in a read-only buffer are identical (step 306). By example, processor 20 will compare data stored in the record 1.1 with data contained in records 2.1 and 3.1 located in buffer 50. It is a cross comparison satisfactory when the information from record 1.1 of the buffer 50 overlaps with information from records 2.1 and / or 3.1 of buffer 50.

Una comparación cruzada satisfactoria puede ser declarada por cualquiera de las CPUs, cada una de las cuales hace su propia comparación de los datos. Si una CPU determina que hay datos idénticos provenientes de otras dos CPUs, pero sus propios datos no son idénticos a datos provenientes de cualquiera de las otras CPUs, no se declara una comparación cruzada satisfactoria por parte de esa CPU. Sin embargo, en esta circunstancia las dos CPUs que dieron origen a los datos idénticos declararán cada una de ellas una comparación cruzada satisfactoria (paso 306) basándose en sus comparaciones de los datos provenientes de sus respectivos búferes propios de sólo lectura.A satisfactory cross comparison can be declared by any of the CPUs, each of which does Your own comparison of the data. If a CPU determines that there is identical data from two other CPUs, but their own data is not identical to data from any of the other CPUs, a satisfactory cross comparison is not declared by part of that CPU. However, in this circumstance the two CPUs that gave rise to the identical data will declare each one of them a satisfactory cross comparison (step 306) based on your comparisons of data from their respective buffers Own read only.

Para una gran cantidad de datos que deben someterse a comparación cruzada, es decir, excediendo de la capacidad de la RAM, después del paso 304 puede hacerse una determinación referente a si todos los datos han sido sometidos a comparación cruzada (paso 307). Si hay datos remanentes, la secuencia retorna al paso 302, escribiendo cada procesador los datos siguientes a someter a comparación cruzada en el respectivo búfer de sólo escritura. Solamente cuando se determine que se intercambiaron todos los datos seguirá el paso 305.For a large amount of data that should undergo cross comparison, that is, exceeding the RAM capacity, after step 304 a determination regarding whether all data have been submitted to cross comparison (step 307). If there is any remaining data, the sequence returns to step 302, writing each processor the following data to be cross-checked in the respective write-only buffer. Only when it is determined that They exchanged all the data will follow step 305.

Se puede omitir el paso 307 implementado una RAM suficientemente grande, ya que la necesidad del paso 307 depende del tamaño de los datos que es preciso someter a comparación cruzada. A fin de tener el mejor tiempo de respuesta, un área de comparación cruzada grande asegurará que el proceso de comparación cruzada pueda realizarse con un paquete de datos.You can skip step 307 implemented a RAM large enough, since the need for step 307 depends of the size of the data to be compared crusade. In order to have the best response time, an area of large cross comparison will ensure that the comparison process cross can be done with a data packet.

Sistemas tales como unidades de control vital en tiempo real (RTVCUs) son un ejemplo de un sistema idealmente adecuado para su uso con la solución de comparación cruzada anteriormente descrita. No se requieren nuevos protocolos de comunicación, y la solución está limitada solamente por el tiempo de acceso a la memoria.Systems such as vital control units in Real time (RTVCUs) are an example of an ideally system suitable for use with the cross comparison solution previously described. No new protocols are required. communication, and the solution is limited only by the time of memory access

Las siguientes características pueden constituir también realizaciones ventajosas de la invención:The following characteristics may constitute also advantageous embodiments of the invention:

--
El ordenador multiprocesador reivindicado, en el que se prevé un tiempo de retardo para leer datos de los búferes de la segunda capa para realizar la comparación cruzada por parte de los procesadores;He claimed multiprocessor computer, in which time is expected delay to read data from the buffers of the second layer to perform cross comparison by processors;

--
El ordenador multiprocesador reivindicado, en el que se sincronizan los procesadores antes de la comparación cruzada, y en el que se detecta la sincronización por medio de un escrutinio de los búferes de la segunda capa por parte de cada uno de los procesadores;He claimed multiprocessor computer, in which the processors before cross comparison, and in which it detects synchronization by means of buffer scrutiny of the second layer by each of the processors;

--
El ordenador multiprocesador reivindicado, en el que cada uno de los procesadores es una unidad de procesamiento central, un microprocesador, una unidad de control vital del tiempo de ejecución y una unidad multiprocesadora;He claimed multiprocessor computer, in which each of the processors is a central processing unit, a microprocessor, a vital runtime control unit and a multiprocessor unit;

--
El ordenador multiprocesador reivindicado, en el que los búferes de las capas primera y segunda forman una memoria de acceso aleatorio multipuerto que se enchufa en una placa posterior de los procesadores que se conecta a un bus estándar o a un bus no estándar;He claimed multiprocessor computer, in which the buffers of the first and second layers form a random access memory multiport plugging into a backplate of the processors that connect to a standard bus or a non-bus standard;

--
El ordenador multiprocesador reivindicado, en el que unos FPGAs o ASICs realizan operaciones lógicas requeridas para los búferes de las capas primera y segunda, y en el que se prevé un FPGA o ASIC individual para un área de almacenaje de los búferes de las capas primera y segunda asignada a uno particular de los procesadores;He claimed multiprocessor computer, in which some FPGAs or ASICs perform logical operations required for the buffers of the first and second layers, and in which an FPGA or ASIC is planned individual for a storage area of the layer buffers first and second assigned to a particular one of the processors;

--
El ordenador multiprocesador reivindicado, en el que se prevé una fuente de alimentación individual para cada uno de los FPGAs o ASICs;He claimed multiprocessor computer, in which a individual power supply for each of the FPGAs or ASICs;

--
El ordenador multiprocesador reivindicado, en el que dichos datos almacenados en los registros son una entrada a una operación de computación o una salida de la operación de computación;He claimed multiprocessor computer, wherein said data stored in the logs are an entry to an operation of computing or an exit from the computing operation;

--
El método reivindicado de realizar una comparación cruzada, en el que se realiza dicha sincronización antes del paso ordenado (a) para escribir simultáneamente la información a someter a comparación cruzada en dicha pluralidad de búferes de la primera capa;He claimed method of performing a cross comparison, in which said synchronization is performed before the orderly step (a) to write simultaneously the information to be compared crossed in said plurality of buffers of the first layer;

--
El método reivindicado de realizar una comparación cruzada, en el que se realiza dicha sincronización después del paso ordenado (a) para escribir de forma asíncrona la información a someter a comparación cruzada en dicha pluralidad de búferes de la primera capa;He claimed method of performing a cross comparison, in which said synchronization is performed after the orderly step (a) to write the information to be submitted asynchronously crossed in said plurality of buffers of the first layer;

--
El método reivindicado de realizar una comparación cruzada, en el que dicha sincronización de datos y dicha comparación cruzada se realizan dos veces por cada ciclo de procesador, una al comienzo del ciclo de procesador para datos de entrada y la otra al final del ciclo de procesador para datos de salida;He claimed method of performing a cross comparison, in which said data synchronization and said cross comparison are performed twice for each processor cycle, once at the beginning of processor cycle for input data and the other at the end of processor cycle for output data;

--
El método reivindicado de realizar una comparación cruzada, en el que dicha comparación de los datos de salida se realiza después del procesamiento computacional en cada uno de la pluralidad de procesadores;He claimed method of performing a cross comparison, in which said comparison of the output data is made after computational processing in each of the plurality of processors;

--
El método reivindicado de realizar una comparación cruzada, en el que dicha transferencia de datos en los pasos ordenados (a) y (b) y dicho procesamiento computacional son realizados por una pluralidad de FPGAs o ASICs, y en el que se prevé al menos un FPGA o ASIC para cada uno de los al menos tres procesadores;He claimed method of performing a cross comparison, in which said data transfer in the steps ordered (a) and (b) and said computational processing are performed by a plurality of FPGAs or ASICs, and in which at least one FPGA or ASIC is provided for each of the at least three processors;

--
El método reivindicado de realizar una comparación cruzada, en el que cada uno de los búferes de la segunda capa comprende al menos un registro separado para cada procesador de dichos al menos tres procesadores;He claimed method of performing a cross comparison, in which each of the buffers of the second layer comprises at least one separate record for each processor of said at least three processors;

--
El ordenador multiprocesador reivindicado, en el que la primera capa de búferes son búferes de sólo escritura y en el que la segunda capa de búferes son búferes de sólo lectura;He claimed multiprocessor computer, in which the first layer of buffers are write-only buffers and in which the second layer of buffers are read-only buffers;

--
El ordenador multiprocesador reivindicado, en el que los procesadores escriben datos de forma asíncrona en los búferes de la primera capa;He claimed multiprocessor computer, in which the processors write data asynchronously in the buffers of the first cap;

       \newpage\ newpage
    

--
El ordenador multiprocesador reivindicado, en el que, cuando la información proveniente del procesador de comparación no casa con la información de los otros dos procesadores, no puede declararse la comparación cruzada satisfactoria y se aísla el procesador de comparación;He claimed multiprocessor computer, in which, when the information from the comparison processor does not match the information of the other two processors, the successful cross comparison and the processor is isolated from comparison;

--
El sistema de comparación cruzada descrito y/o reivindicado para un ordenador de tres procesadores, en el que cada área de almacenaje de la segunda capa de búferes, a saber, una cuarta, una quinta y una sexta áreas de almacenaje, comprende un registro, a saber, un primero, un segundo y un tercer registro, para cada procesador, a saber, el primero, el segundo y el tercer procesador, en el que el primer procesador compara la información almacenada en el primer registro de la cuarta área de almacenaje con la información almacenada en el segundo registro y con la información almacenada en el tercer registro de la cuarta área de almacenaje, en el que el segundo procesador compara la información almacenada en el segundo registro de la quinta área de almacenaje con la información almacenada en el primer registro y con la información almacenada en el tercer registro de la quinta área de almacenaje, y en el que el tercer procesador compara la información almacenada en el tercer registro de la sexta área de almacenaje con la información almacenada en el primer registro y con la información almacenada en el segundo registro de la sexta área de almacenaje;He cross comparison system described and / or claimed for a three processor computer, in which each storage area of the second layer of buffers, namely a fourth, a fifth and a sixth storage areas, includes a record, namely a first, a second and a third record, for each processor, to know, the first, the second and the third processor, in which the first processor compares the information stored in the first record of the fourth storage area with the information stored in the second record and with the information stored in the third record of the fourth storage area, in which the second processor compares the information stored in the second registration of the fifth storage area with the information stored in the first record and with the information stored in the third record of the fifth storage area, and in which the third processor compares the information stored in the third registration of the sixth storage area with the information stored in the first record and with the information stored in the second record of the sixth storage area;

--
El ordenador multiprocesador reivindicado, en el que se prevé para cada uno de dichos procesadores un puerto individual para transferir información de su respectiva área de almacenaje de la segunda capa de búferes a un respectivo procesador para realizar dicha comparación.He claimed multiprocessor computer, which is provided for each one of said processors an individual port to transfer information of their respective storage area of the second layer of buffers to a respective processor to perform said comparison.

La descripción anterior de realizaciones ilustrativas no limitativas ha sido dada a título de ejemplo. Las anteriores y otras características de la invención, incluyendo diversos pasos de método nuevos y diversos componentes nuevos, han sido particularmente descritos con referencia a los dibujos adjuntos y señalados en las reivindicaciones. Se entenderá que el proceso y la construcción particulares de partes que materializan la invención se muestra a título de ilustración solamente y no de limitación de la invención. Los principios y características de esta invención pueden emplearse en variadas y numerosas realizaciones sin apartarse del alcance de la invención tal como viene definido por las reivindicaciones adjuntas.The above description of embodiments Non-limiting illustrative has been given by way of example. The above and other features of the invention, including various new method steps and various new components, have been particularly described with reference to the attached drawings and indicated in the claims. It will be understood that the process and the particular construction of parts that materialize the invention is shown by way of illustration only and not of limitation of the invention The principles and characteristics of This invention can be used in many different ways. embodiments without departing from the scope of the invention such as It is defined by the appended claims.

Claims (11)

1. Un ordenador multiprocesador (10) que tiene al menos un primero y un segundo procesador (20, 21, 22) y un sistema de comparación cruzada, comprendiendo dicho sistema de comparación cruzada: una primera capa de búferes (40, 41, 42) que comprende una primera área de almacenaje para almacenar información proveniente del primer procesador (20) y una segunda área de almacenaje para almacenar información proveniente del segundo procesador (21); una segunda capa de búferes (50, 51, 52) que comprende una tercera área de almacenaje para almacenar la información proveniente de dicha primera área de almacenaje y la información proveniente de dicha segunda área de almacenaje, y una cuarta área de almacenaje para almacenar la información proveniente de dicha primera área de almacenaje y la información proveniente de dicha segunda área de almacenaje, en donde cada una de dichas áreas de almacenaje primera, segunda, tercera y cuarta se implementa dentro de una RAM multipuerto (30) y comprende al menos un búfer asignado solamente a su área de almacenaje dentro de dicha RAM multipuerto (30), comprendiendo además dicho sistema de comparación cruzada una lógica interna (60, 61, 62) dispuesta dentro de dicha RAM multipuerto (30), estando configurada dicha lógica interna (60, 61, 62) para transferir de forma síncrona la información de dicha primera área de almacenaje y dicha segunda área de almacenaje a dicha tercera área de almacenaje y a dicha cuarta área de almacenaje, en el que dicho primer procesador (20) está configurado para leer la información de dicha tercera área de almacenaje y para comparar datos almacenados en la tercera área de almacenaje provenientes de la primera área de almacenaje con datos almacenados en la tercera área de almacenaje provenientes de la segunda área de almacenaje a fin de determinar si la información almacenada en dicha tercera área de almacenaje proveniente de la primera área de almacenaje es idéntica a la información almacenada en la tercera área de almacenaje proveniente de la segunda área de almacenaje; y en el que dicho segundo procesador (21) está configurado para leer la información de dicha cuarta área de almacenaje y para comparar datos almacenados en la cuarta área de almacenaje provenientes de la primera área de almacenaje con datos almacenados en la cuarta área de almacenaje provenientes de la segunda área de almacenaje a fin de determinar si la información almacenada en dicha cuarta área de almacenaje proveniente de la primera área de almacenaje es idéntica a la información almacenada en la cuarta área de almacenaje proveniente de la segunda área de almacenaje.1. A multiprocessor computer (10) that has at least a first and a second processor (20, 21, 22) and a cross comparison system, said system comprising cross comparison: a first layer of buffers (40, 41, 42) that comprises a first storage area to store information from the first processor (20) and a second area of storage to store information from the second processor (21); a second layer of buffers (50, 51, 52) that it comprises a third storage area to store the information from said first storage area and the information from said second storage area, and a fourth storage area to store information from of said first storage area and the information coming from said second storage area, wherein each of said areas First, second, third and fourth storage is implemented within a multiport RAM (30) and comprises at least one buffer assigned only to its storage area within that RAM multiport (30), said comparison system further comprising crossed an internal logic (60, 61, 62) arranged within said Multiport RAM (30), said internal logic being configured (60, 61, 62) to synchronously transfer the information of said first storage area and said second storage area a said third storage area and to said fourth area of storage, wherein said first processor (20) is configured to read the information of said third storage area and to compare data stored in the third storage area from the first storage area with stored data in the third storage area from the second area of storage to determine if the information stored in said third storage area from the first area of storage is identical to the information stored in the third storage area from the second storage area; Y wherein said second processor (21) is configured to read the information of said fourth storage area and to compare data stored in the fourth storage area from the first storage area with data stored in the fourth area of storage from the second storage area in order of determining whether the information stored in said fourth area of storage from the first storage area is identical to the information stored in the fourth storage area from the second storage area. 2. El ordenador multiprocesador según la reivindicación 1, en el que la primera capa de búferes (40, 41, 42) son búferes de solo escritura y en el que la segunda capa de búferes (50, 51, 52) son búferes de sólo lectura.2. The multiprocessor computer according to the claim 1, wherein the first layer of buffers (40, 41, 42) they are write-only buffers and in which the second layer of buffers (50, 51, 52) are read-only buffers. 3. El ordenador multiprocesador según la reivindicación 2, en el que el primero y el segundo procesadores (20, 21) escriben datos de forma asíncrona en los búferes (40, 41, 42) de la primera capa y en el que los datos de los búferes (40, 41, 42) de la primera capa son transferidos de forma síncrona a los búferes (50, 51, 52) de la segunda capa.3. The multiprocessor computer according to the claim 2, wherein the first and second processors (20, 21) write data asynchronously in buffers (40, 41, 42) of the first layer and in which the data of the buffers (40, 41, 42) of the first layer are transferred synchronously to the buffers (50, 51, 52) of the second layer. 4. El ordenador multiprocesador según la reivindicación 1, caracterizado porque dicha lógica interna (60, 61, 62) comprende FPGAs y/o ASICs.4. The multiprocessor computer according to claim 1, characterized in that said internal logic (60, 61, 62) comprises FPGAs and / or ASICs. 5. El ordenador multiprocesador según la reivindicación 1, caracterizado porque dicha lógica interna (60, 61, 62) comprende un FPGA y/o ASIC individual propio para cada uno de dichos procesadores (20, 21, 22).5. The multiprocessor computer according to claim 1, characterized in that said internal logic (60, 61, 62) comprises its own individual FPGA and / or ASIC for each of said processors (20, 21, 22). 6. El ordenador multiprocesador según la reivindicación 5, caracterizado porque cada FPGA y/o ASIC individual (60, 61, 62) es alimentado por una fuente de alimentación individual (70, 71, 72).The multiprocessor computer according to claim 5, characterized in that each individual FPGA and / or ASIC (60, 61, 62) is powered by an individual power supply (70, 71, 72). 7. El ordenador multiprocesador (10) según la reivindicación 1, en el que dicho ordenador multiprocesador (10) está configurado para aislar dicho primer procesador (20) cuando no casan los datos que se están comparando en dicho primer procesador (20), y en el que dicho ordenador multiprocesador (10) está configurado para aislar dicho segundo procesador (21) cuando no casan los datos que se están comparado en dicho segundo procesador (21).7. The multiprocessor computer (10) according to the claim 1, wherein said multiprocessor computer (10) is configured to isolate said first processor (20) when not match the data that is being compared in said first processor (20), and wherein said multiprocessor computer (10) is configured to isolate said second processor (21) when not match the data that is being compared in said second processor (twenty-one). 8. El ordenador multiprocesador (10) según la reivindicación 1, en el que cada una de dichas áreas de almacenaje tercera y cuarta comprende un primer registro para los datos provenientes de la segunda área de almacenaje y un segundo registro para los datos provenientes de la segunda área de almacenaje, y cada uno de dichos procesadores primero y segundo (20, 21) está configurado para comparar datos del primer registro con datos del segundo registro y para declarar una comparación cruzada satisfactoria cuando los datos en el primer registro son idénticos a los datos en el segundo registro, estando ambos registros primero y segundo en un área de almacenaje asignada exclusivamente a un procesador de comparación.8. The multiprocessor computer (10) according to the claim 1, wherein each of said storage areas third and fourth comprises a first record for the data from the second storage area and a second record for data from the second storage area, and each one of said first and second processors (20, 21) is configured to compare data from the first record with data from the second record and to declare a cross comparison satisfactory when the data in the first record is identical to the data in the second record, both records being first and second in a storage area assigned exclusively to a comparison processor 9. Un método de realizar una comparación cruzada para un ordenador multiprocesador (10) que tiene al menos tres procesadores (20, 21, 22), en donde cada uno de dichos al menos tres procesadores (20, 21, 22) utiliza un lugar de memoria separado de una RAM multipuerto (30) y en donde cada uno de dichos al menos tres procesadores (20, 21, 22) está provisto de un puerto individual de dicha RAM multipuerto (30) y cada uno de los puertos individuales está provisto de un respectivo búfer de una pluralidad de búferes (40, 41, 42) de una primera capa, comprendiendo el método los pasos ordenados de: (a) hacer que cada procesador (20, 21, 22) escriba información a someter a comparación cruzada en el búfer de dicha pluralidad de búferes (40, 41, 42) de la primera capa correspondiente al puerto del respectivo procesador; (b) transferir de forma síncrona información escrita en todos los búferes de la pluralidad de búferes (40, 41, 42) de la primera capa a una pluralidad de búferes (50, 51, 52) de una segunda capa por medio de una lógica interna (60, 61, 62) dispuesta dentro de dicha RAM multipuerto (30), proporcionando cada búfer de la pluralidad de búferes (50, 51, 52) de la segunda capa un área de almacenaje para cada búfer de la primera pluralidad de búferes, y estando previsto un búfer respectivo de la pluralidad de búferes (50, 51, 52) de la segunda capa para cada uno de la pluralidad de procesadores (20, 21, 22), en donde la pluralidad de búferes (40, 41, 42) de la primera capa y la pluralidad de búferes (50, 51, 52) de la segunda capa se implementan dentro de dicha RAM multipuerto (30); (c) hacer que cada procesador (20, 21, 22) lea la información de un búfer respectivo de la pluralidad de búferes (50, 51, 52) de la segunda capa; y (d) hacer que cada procesador (20, 21, 22) compare la información leída en su búfer de la pluralidad de búferes (50, 51, 52) de la segunda capa y declare una comparación cruzada satisfactoria si la información de otro procesador casa con información del procesador de comparación, en donde dichos al menos tres procesadores (20, 21, 22) se sincronizan antes de ejecutar la transferencia de información en el paso ordenado (b).9. A method of cross-comparing for a multiprocessor computer (10) that has at least three processors (20, 21, 22), where each of said at least three processors (20, 21, 22) use a separate memory location from a multiport RAM (30) and where each of said at least three processors (20, 21, 22) is provided with an individual port of said multiport RAM (30) and each of the individual ports it is provided with a respective buffer of a plurality of buffers (40, 41, 42) of a first layer, the method comprising the steps ordered to: (a) have each processor (20, 21, 22) write information to cross-check in the buffer of said plurality of buffers (40, 41, 42) of the first layer corresponding to the port of the respective processor; (b) transfer synchronously written information in all buffers of the plurality of buffers (40, 41, 42) from the first layer to a plurality of buffers (50, 51, 52) of a second layer by means of an internal logic (60, 61, 62) arranged within said RAM multiport (30), providing each buffer with the plurality of buffers (50, 51, 52) of the second layer a storage area for each buffer of the first plurality of buffers, and being provided a respective buffer of the plurality of buffers (50, 51, 52) of the second layer for each of the plurality of processors (20, 21, 22), where the plurality of buffers (40, 41, 42) of the first layer and the plurality of buffers (50, 51, 52) of the second layer are implemented within said multiport RAM (30); (c) do that each processor (20, 21, 22) read the information of a buffer respective of the plurality of buffers (50, 51, 52) of the second cap; and (d) have each processor (20, 21, 22) compare the information read in your buffer of the plurality of buffers (50, 51, 52) of the second layer and declare a cross comparison satisfactory if the information of another processor matches with comparison processor information, where said at least three processors (20, 21, 22) are synchronized before executing the transfer of information in the orderly step (b). 10. Un método de realizar una comparación cruzada según la reivindicación 9, que comprende además un paso ordenado de: (e) determinar si hay información adicional a someter a comparación cruzada, y si es así, repetir los pasos con la información adicional, empezando en el paso (a).10. A method of making a comparison cross according to claim 9, further comprising a step ordered to: (e) determine if there is additional information to submit to cross comparison, and if so, repeat the steps with the additional information, beginning in step (a). 11. Un método de realizar una comparación cruzada según la reivindicación 9, que comprende, además, detectar una sincronización satisfactoria por cada uno de dicha pluralidad de procesadores (20, 21, 22) a través de un escrutinio de su búfer correspondiente de la pluralidad de segundos búferes (50, 51, 52), y en el que cuando, después de un período de tiempo predeterminado, no se detecta por un procesador de la pluralidad de procesadores (20, 21, 22) la sincronización satisfactoria entre todos los procesadores de dicha pluralidad de procesadores (20, 21, 22), ejecutar una operación de retardo de tiempo y realizar la comparación de la información por el procesador.11. A method of making a comparison cross-section according to claim 9, further comprising detecting a satisfactory synchronization for each of said plurality of processors (20, 21, 22) through a scrutiny of their buffer corresponding to the plurality of second buffers (50, 51, 52), and in which when, after a predetermined period of time, it is not detected by a processor of the plurality of processors (20, 21, 22) successful synchronization between all processors of said plurality of processors (20, 21, 22), execute a time delay operation and perform the Comparison of information by the processor.
ES05024885T 2004-12-03 2005-11-15 CROSS-COMPARED MEMORY-BASED COMPARISON FOR SYSTEMS SUBJECT TO CROSSED VERIFICATION. Active ES2331523T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US2237 2004-12-03
US11/002,237 US7350026B2 (en) 2004-12-03 2004-12-03 Memory based cross compare for cross checked systems

Publications (1)

Publication Number Publication Date
ES2331523T3 true ES2331523T3 (en) 2010-01-07

Family

ID=35929986

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05024885T Active ES2331523T3 (en) 2004-12-03 2005-11-15 CROSS-COMPARED MEMORY-BASED COMPARISON FOR SYSTEMS SUBJECT TO CROSSED VERIFICATION.

Country Status (6)

Country Link
US (1) US7350026B2 (en)
EP (1) EP1667024B1 (en)
CN (1) CN100361096C (en)
AT (1) ATE438895T1 (en)
DE (1) DE602005015811D1 (en)
ES (1) ES2331523T3 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2007119322A (en) * 2004-10-25 2008-12-10 Роберт Бош ГмбХ (DE) METHOD AND DEVICE FOR SWITCHING IN A COMPUTER SYSTEM INCLUDING AT LEAST TWO PROCESSING UNITS
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 (en) * 2006-09-05 2008-03-12 深圳迈瑞生物医疗电子股份有限公司 Embedded system and satellite communication method thereof
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 (en) * 2007-11-19 2010-08-11 フェリカネットワークス株式会社 COMMUNICATION SYSTEM, INFORMATION PROCESSING METHOD, PROGRAM, AND INFORMATION PROCESSING DEVICE
KR20100034415A (en) * 2008-09-24 2010-04-01 삼성전자주식회사 Multi processor system having booting function by using memory link architecture
US8458581B2 (en) * 2009-10-15 2013-06-04 Ansaldo Sts Usa, Inc. System and method to serially transmit vital data from two processors
JP5829392B2 (en) * 2010-09-30 2015-12-09 三菱重工業株式会社 Control device and nuclear power plant control system
JP2012079184A (en) * 2010-10-04 2012-04-19 Mitsubishi Heavy Ind Ltd Control device and nuclear power plant control system
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 (en) * 2014-06-23 2019-01-15 联想(北京)有限公司 A kind of data processing method and electronic equipment
FR3024869B1 (en) * 2014-08-14 2016-08-26 Zodiac Aero Electric ELECTRICAL DISTRIBUTION SYSTEM FOR AN AIRCRAFT AND CORRESPONDING CONTROL METHOD
JP5902778B1 (en) * 2014-09-03 2016-04-13 ファナック株式会社 Machine tools with functions to safely control peripheral equipment
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 (en) * 2017-10-25 2018-10-08 Публичное акционерное общество "Институт электронных управляющих машин им. И.С. Брука" Processor module
WO2021120132A1 (en) * 2019-12-19 2021-06-24 华为技术有限公司 Storage system and data crossing method
RU208501U1 (en) * 2021-06-28 2021-12-22 Общество с ограниченной ответственностью "Форк" Motherboard

Family Cites Families (26)

* Cited by examiner, † Cited by third party
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
JP3429139B2 (en) * 1996-09-25 2003-07-22 株式会社デジタル Address comparator of write buffer device in computer device and method of reading data from main storage device
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
DE19809089A1 (en) 1998-02-25 1999-08-26 Siemens Ag Process for synchronising and/or data exchange for secure high access computer in multi computer system
US6199171B1 (en) * 1998-06-26 2001-03-06 International Business Machines Corporation Time-lag duplexing techniques
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
US6463573B1 (en) * 1999-06-03 2002-10-08 International Business Machines Corporation Data processor storage systems with dynamic resynchronization of mirrored logical data volumes subsequent to a storage system failure
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 (en) * 2001-12-26 2005-09-07 日本電気株式会社 Data processing system, array type processor, data processing apparatus, computer program, information storage medium
US6948091B2 (en) * 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures
JP2004046455A (en) * 2002-07-10 2004-02-12 Nec Corp Information processor

Also Published As

Publication number Publication date
US20060123202A1 (en) 2006-06-08
EP1667024B1 (en) 2009-08-05
CN100361096C (en) 2008-01-09
ATE438895T1 (en) 2009-08-15
EP1667024A2 (en) 2006-06-07
CN1783035A (en) 2006-06-07
DE602005015811D1 (en) 2009-09-17
EP1667024A3 (en) 2007-02-21
US7350026B2 (en) 2008-03-25

Similar Documents

Publication Publication Date Title
ES2331523T3 (en) CROSS-COMPARED MEMORY-BASED COMPARISON FOR SYSTEMS SUBJECT TO CROSSED VERIFICATION.
US7406086B2 (en) Multiprocessor node controller circuit and method
US6138198A (en) Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data write accesses
US6223230B1 (en) Direct memory access in a bridge for a multi-processor system
US6587961B1 (en) Multi-processor system bridge with controlled access
EP0886225A1 (en) Microprocessor architecture capable of supporting multiple heterogenous processors
US6173351B1 (en) Multi-processor system bridge
US8458411B2 (en) Distributed shared memory multiprocessor and data processing method
EP1145131B1 (en) Resource control in a computer system
EP0251686B1 (en) Method and apparatus for sharing information between a plurality of processing units
US20060248247A1 (en) Apparatus and method for controlling access to a memory
US5408612A (en) Microprocessor system for selectively accessing a processor internal register when the processor has control of the bus and partial address identifying the register
US11443091B1 (en) Data processing engines with cascade connected cores
EP3198455B1 (en) Managing memory in a multiprocessor system
Schanin The design and development of a very high speed system bus—the encore Mutlimax nanobus
JP2000076089A (en) Multiple system processor
Blackmon et al. EXA Memory/IO Controller
JPH0784872A (en) Storage device
JPS60563A (en) Multiprocessor
JPH04373057A (en) Multiprocessor system
NL8600233A (en) Parallel processing computer system with master and slave processors - has single instruction and multiple data channels in multiple architecture bus