ES2247459T3 - Sistema de computadores tolerante a fallos, metodo para la resincronizacion del mismo y programa para su resincronizacion. - Google Patents

Sistema de computadores tolerante a fallos, metodo para la resincronizacion del mismo y programa para su resincronizacion.

Info

Publication number
ES2247459T3
ES2247459T3 ES03015796T ES03015796T ES2247459T3 ES 2247459 T3 ES2247459 T3 ES 2247459T3 ES 03015796 T ES03015796 T ES 03015796T ES 03015796 T ES03015796 T ES 03015796T ES 2247459 T3 ES2247459 T3 ES 2247459T3
Authority
ES
Spain
Prior art keywords
computing
synchronization
modules
access
processors
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 - Lifetime
Application number
ES03015796T
Other languages
English (en)
Inventor
Shigeyuki Aino
Shigeo Yamazaki
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Application granted granted Critical
Publication of ES2247459T3 publication Critical patent/ES2247459T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

Un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo que incluye una pluralidad de módulos (100, 200, 300) de computación que tienen un procesador (101, 102, 201, 202, 301, 302) y una memoria (104, 204, 304), en el que cada módulo (100, 200, 300) de computación procesa la misma cadena de instrucciones con sincronización entre sí, y que además comprende un detector (702) de fallos que monitoriza la existencia/no existencia de un fallo en todo el sistema, un dispositivo (700) de monitorización de bus que monitoriza un acceso del procesador de cada uno de dichos módulos (100, 200, 300) de computación a un bus (103, 203, 303) externo y cuando detecta discrepancia en la salida entre los respectivos módulos (100, 200, 300) de computación, notifica una interrupción a cada uno de dichos procesadores, y un controlador (701) de sincronización que re- sincroniza cada módulo (100, 200, 300) de computación ajustando la temporización de una respuesta a un acceso desde cada uno de dichos procesadores que es causada por dicha interrupción, caracterizado porque dicho dispositivo (700) de monitorización de bus notifica dicha interrupción a cada uno de dichos procesadores, encolando así una tarea predeterminada que es una tarea que consiste en ejecutar un acceso a un recurso predeterminado en dicho controlador (701) de sincronización, para re-sincronizar los módulos (100, 200, 300) de computación, si dicho detector (702) de fallos no detecta ningún fallo, y porque dicho controlador (701) de sincronización transmite una respuesta a todos los módulos (100, 200, 300) de computación simultáneamente, cuando se reciben accesos a dicho recurso desde todos los procesadores.

Description

Sistema de computadores tolerante a fallos, método para la re-sincronización del mismo y programa para su re-sincronización.
Antecedentes de la invención 1. Campo de la invención
La presente invención se refiere a un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo que procesa la misma cadena de instrucciones de manera exactamente igual por una pluralidad de módulos de computación con sincronización de reloj entre sí. Más particularmente, se refiere a un sistema de computadores tolerante de fallos y a un método de control de re-sincronización de alta velocidad que consiguen acelerar el proceso de re-sincronización cuando se produce un fallo de sincronismo entre los módulos de computación (un paso de bloqueo se desprende).
2. Descripción de la técnica relacionada
Con un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo, cuando entre una pluralidad de módulos de computación que ejecutan la misma cadena de instrucciones al mismo tiempo, se detecta que un módulo de computación tiene una salida diferente de la de otros módulos de computación, debido a un fallo o a otro factor externo o interno, se llevan a cabo contramedidas como las que siguen. A partir de este punto, nos referiremos a un módulo de computación que falla en su funcionamiento en sincronización con otros módulos de computación como un módulo de computación que está en un estado de pérdida de paso.
Más específicamente, se toman medidas como separar un módulo de computación cuyo paso de bloqueo se separa de un estado operacional y sustituir el módulo de computación según lo requerido en función de un factor que provoca pérdida de paso o, cuando no es necesaria la sustitución, llevar a cabo el proceso de re-inicialización o similar según la necesidad de integrar el módulo de computación en el estado operacional.
En un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo, en el momento de esta re-integración al estado operacional, sin tener en cuenta si un módulo de computación que se encuentra en el estado de pérdida de paso ha sido sustituido o no, para que el módulo de computación se sincronice con otros módulos de computación que continúan en funcionamiento para llevar a cabo otra vez el mismo proceso, todos los datos de memoria almacenados por los módulos de computación en el estado operacional son copiados a una memoria del módulo de computación que se debe re-integrar en el momento de su re-integración.
En un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo, después de ejecutar la sustitución de un módulo de computación que está en el estado de pérdida de paso, re-inicializar el proceso en función de una parte causante de la pérdida de paso y similar, cuando se integra de nuevo el módulo de computación en cuestión al estado operacional, los módulos de computación en el estado operacional se interrumpen durante un largo período de tiempo.
Más específicamente, el sistema de computadores tolerante de fallos con sincronización por paso de bloqueo tiene un problema, que consiste en que mientras un módulo de computación que está en el estado de pérdida de paso es sometido a un proceso de re-integración, se detiene el funcionamiento de todo el sistema de computadores tolerante de fallos durante un largo período de tiempo (3 a 5 segundos en general o del orden de minutos).
La razón es que para integrar un módulo de computación que se encuentra en el estado de pérdida de paso al estado operacional, todos los contenidos de las memorias son copiados siempre desde los módulos de computación que continúan en funcionamiento al módulo de computación que debe ser re-integrado.
Cuando el funcionamiento de un módulo de computación normal continúa durante el proceso de copia, es posible que los contenidos de la memoria del módulo de computación normal cambien también durante el proceso de copia, de forma que la copia no se llevará a cabo adecuadamente. Para evitar dicha situación, un módulo de computación que está en el estado operacional es detenido temporalmente para evitar la actualización de los contenidos de su memoria.
Debido a que la capacidad de memoria de un módulo de computación hoy llega hasta varios Gigabytes, copiar toda la región de memoria requerirá un largo período de tiempo.
En un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo, un estado de pérdida de paso entre módulos de computación ocurre debido a varias causas.
El primer caso es un fallo fijo que ocurre dentro de un módulo de computación. En este caso, un módulo de computación que tiene un fallo debería ser reemplazado, y cuando se integrase el módulo de computación que debe ser reemplazado a un sistema operacional, todos los datos en una memoria de un módulo de computación en el estado operacional deben ser copiados.
En un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo, un estado de pérdida de paso puede ocurrir debido, además del fallo fijo arriba descrito, a que módulos de computación funcionen con temporizaciones diferentes debido a la diferencia de fabricación de cada unidad en cada módulo de computación, aunque su funcionamiento sea normal, o debido a un fallo intermitente de memoria corregible automáticamente, causado por los efectos de los rayos \alpha o similar.
En estos casos, debido a que un fallo fijo no ocurre propiamente en un módulo de computación, el módulo fundamentalmente no necesita ninguna sustitución, y mediante la sincronización de nuevo de su proceso con el de los otros módulos de computación en funcionamiento para integrar el módulo de computación en cuestión, todo el sistema de computadores tolerante de fallos puede ser devuelto a su estado normal de funcionamiento.
En la patente EP 1 029 267, se describe un método para mantener una ejecución sincronizada en un sistema de computadores insensible/tolerante a fallos. Un sistema de computadores tolerante de fallos incluye, al menos, dos elementos de computación conectados a, al menos, un controlador. Los elementos de computación funcionan según un primer y un segundo modo. En el primer modo, los elementos de computación ejecutan cada uno un primer flujo de instrucciones en paso de bloqueo de reloj simulado. En el segundo modo, los elementos de computación ejecutan un segundo flujo de instrucciones en paso de bloqueo de instrucciones. El funcionamiento del paso de bloqueo de instrucciones requiere que los elementos de computación lleven a cabo la misma secuencia de instrucciones en el mismo orden, pero no requiere que los elementos de computación lleven a cabo las instrucciones en el mismo ciclo de reloj como en el primer modo.
La patente US 5,020,024 describe un método y un aparato para detectar la ausencia seleccionada de sincronismo lógico digital. Equipamiento lógico digital en el que dos elementos lógicos funcionan con control de temporización con un elemento de reloj con sincronismo seleccionado, incluye un elemento de detección de fallos que detecta la ausencia del sincronismo seleccionado entre los dos elementos lógicos, incluso cuando cada uno está desarrollando, por otro lado, un funcionamiento lógico correcto.
Compendio de la invención
La invención está definida por las reivindicaciones.
Un objetivo de la presente invención es proporcionar un sistema de computadores tolerante de fallos, un método de re-sincronización para el mismo y un programa de re-sincronización para el mismo que permitan a un módulo de computación cuyo paso de bloqueo se desprende debido a causas diferentes de un fallo fijo sea integrado otra vez al estado operacional más rápidamente que mediante un método convencional, reduciendo así drásticamente el tiempo de parada temporal de funcionamiento del sistema debido al proceso de integración.
Otro objetivo de la presente invención es proporcionar un sistema de computadores tolerante de fallos, un método de re-sincronización para el mismo y un programa de re-sincronización para el mismo que consigan mejorar la disponibilidad del sistema mediante la reducción de tiempo para el proceso de re-integración arriba descrito.
Según el primer aspecto de la invención, se proporciona un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo que incluye una pluralidad de módulos de computación que tienen un procesador y una memoria en el que cada módulo de computación procesa la misma cadena de instrucciones de forma sincronizada entre sí, donde
cuando se detecta discrepancia en un estado de acceso a un bus externo entre los procesadores respectivos de cada módulo de computación, si no se detecta ningún fallo en el sistema incluyendo cada módulo de computación, se recupera la sincronización entre cada módulo de computación ajustando la temporización de una respuesta a un acceso que cada procesador ejecuta como una instrucción de control de sincronización por una interrupción.
El sistema de computadores tolerante de fallos comprende además un detector de fallos que monitoriza la existencia/no existencia de un fallo en todo el sistema;
un dispositivo de monitorización de bus, que monitoriza un acceso del procesador de cada uno de los módulos de computación al bus externo y cuando detecta discrepancia en la salida entre los respectivos módulos de computación, si no es detectado ningún fallo por el detector de fallos, notifica una interrupción a cada procesador, y un controlador de sincronización que re-sincroniza cada módulo de computación ajustando la temporización de una respuesta a un acceso desde cada uno de los procesadores que es provocado por la interrupción.
El dispositivo de monitorización de bus, cuando detecta discrepancia en la salida entre los respectivos módulos de computación, si no es detectado ningún fallo por el detector de fallos, interrumpe cada uno de los procesadores con una tarea predeterminada, que es una tarea consistente en ejecutar un acceso a un recurso predeterminado en el controlador de sincronización, para re-sincronizar los módulos de computación, y el controlador de sincronización transmite una respuesta a todos los módulos de computación simultáneamente, cuando recibe los accesos al recurso desde todos los procesadores.
Según otra construcción preferida, se proporcionan una pluralidad de pares del dispositivo de monitorización de bus, del detector de fallos y del controlador de sincronización.
Según otra construcción preferida, el dispositivo de monitorización de bus, el detector de fallos y el controlador de sincronización se disponen en una unidad periférica de control de dispositivos que controla un dispositivo periférico y está conectada al bus externo en el módulo de computación a través de un puente PCI.
Según el segundo aspecto de la invención, se proporciona un método de re-sincronización en un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo que incluye una pluralidad de módulos de computación que tienen un procesador y una memoria en el que cada módulo de computación procesa la misma cadena de instrucciones de forma sincronizada entre sí, comprendiendo los pasos de
cuando se detecta discrepancia en un estado de acceso a un bus externo entre los procesadores respectivos de cada módulo de computación, si no se detecta ningún fallo en el sistema incluyendo cada módulo de computación, generar una interrupción para todos los procesadores, y hacer que cada procesador ejecute una instrucción de control de sincronización para ajustar la temporización de una respuesta a un acceso desde cada procesador, haciendo así que cada módulo de computación continúe el funcionamiento en sincronización.
El método de re-sincronización comprende además las operaciones de
detectar la existencia/no existencia de un fallo en todo el sistema incluyendo cada módulo de computación, monitorizar un acceso del procesador de cada módulo de computación al bus externo,
cuando se detecta discrepancia en la salida entre los respectivos módulos de computación, si no se detecta ningún fallo en el sistema, notificar una interrupción a cada procesador, y hacer que cada procesador ejecute la instrucción de control de sincronización de reloj para ajustar la temporización de una respuesta a un acceso desde cada procesador, haciendo así que cada módulo de computación continúe el funcionamiento en sincronización.
El método de re-sincronización comprende además las operaciones de
cuando se detecta discrepancia en la salida entre los respectivos módulos de computación, si no se detecta ningún fallo en el sistema, interrumpe cada procesador con una tarea predeterminada para re-sincronizar los respectivos módulos de computación, que es una tarea consistente en ejecutar un acceso a un recurso predeterminado;
encolar los accesos al recurso desde cada procesador, y responder a los accesos desde todos los módulos de computación simultáneamente cuando todos los accesos de los procesadores se han recibido.
Según otro aspecto de la invención, un programa de re-sincronización para ejecutar un proceso de re-sincronización de un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo que incluye una pluralidad de módulos de computación que tienen un procesador y una memoria en el que cada módulo de computación procesa la misma cadena de instrucciones de forma sincronizada entre si, comprendiendo las funciones de
cuando se detecta discrepancia en un estado de acceso a un bus externo entre los procesadores respectivos de cada módulo de computación, si no se detecta ningún fallo en el sistema incluyendo cada módulo de computación, generar una interrupción para todos los procesadores, y hacer que cada procesador ejecute una instrucción de control de sincronización de reloj para ajustar la temporización de una respuesta a un acceso desde cada procesador, haciendo así que cada módulo de computación continúe el funcionamiento en sincronización.
El programa de re-sincronización además comprende las funciones de detectar la existencia/no existencia de un fallo en todo el sistema incluyendo cada módulo de computación, monitorizar un acceso del procesador de cada módulo de computación al bus externo.
Cuando se detecta discrepancia en la salida entre los respectivos módulos de computación, si no se detecta ningún fallo en el sistema, notificar una interrupción a cada procesador, y hacer que cada procesador ejecute la instrucción de control de sincronización para ajustar la temporización de una respuesta a un acceso desde cada procesador, haciendo así que cada módulo de computación continúe su funcionamiento en sincronización.
El programa de re-sincronización comprende además las funciones de, cuando se detecta discrepancia en la salida entre los respectivos módulos de computación, si no se detecta fallo en el sistema, interrumpe cada procesador con una tarea predeterminada para re-sincronizar los respectivos módulos de computación, la cual es una tarea que consiste en ejecutar un acceso a un recurso predeterminado;
encolar el acceso al recurso desde cada procesador, y responder a los accesos desde todos los módulos de computación simultáneamente cuando todos los accesos desde los procesadores se hayan recibi-
do.
Otros objetivos, características y ventajas de la presente invención serán evidentes a partir de la descripción detallada que se da en lo que sigue.
Breve descripción de los dibujos
La presente descripción se comprenderá más completamente a partir de la descripción detallada que se ofrece a partir de aquí y a partir de los dibujos que se acompañan de la realización preferida de la invención, que, sin embargo, no deberían tomarse como limitantes de la invención, ya que son sólo explicativos y por motivos de comprensión.
En los dibujos:
La Fig. 1 es un diagrama de bloques que muestra una estructura de un sistema de computadores tolerante de fallos según un primer modo de implementación de la presente invención;
La Fig. 2 es un diagrama utilizado para explicar los contenidos del proceso de re-sincronización del sistema de computadores tolerante de fallos;
La Fig. 3 es un diagrama de bloques que muestra una estructura de un sistema de computadores tolerante de fallos según un segundo modo de implementación de la presente invención; y
La Fig. 4 es un diagrama de bloques que muestra una estructura de un sistema de computadores tolerante de fallos según un tercer modo de implementación de la presente invención.
Descripción de la realización preferida
La realización preferida de la presente invención será tratada en detalle en lo que sigue haciendo referencia a los dibujos que se acompañan. En la siguiente descripción, se exponen numerosos detalles específicos para proporcionar una comprensión completa de la presente invención. Será obvio, sin embargo, para los entendidos en la materia que la presente invención se puede llevar a la práctica sin estos detalles específicos. Por otro lado, estructuras bien conocidas no se muestran en detalle para no oscurecer innecesariamente la presente invención.
Modos de implementación de la presente invención se describirán con detalle en lo que sigue haciendo referencia a los dibujos. La Fig. 1 es un diagrama de bloques que muestra una estructura de un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo según un primer modo de implementación de la presente invención.
Haciendo referencia a la Fig. 1, el sistema de computadores tolerante de fallos según el presente modo de implementación incluye una pluralidad de módulos 100, 200 y 300 de computación, procesando cada uno de dichos módulos 100, 200 y 300 de computación la misma cadena de instrucciones con sincronización de reloj entre sí. El sistema de computadores tolerante de fallos compara un resultado del proceso de cada módulo de computación. Incluso cuando un modo de computación tiene un fallo, el proceso puede ser continuado por el resto de los módulos de computación.
Los módulos 100, 200 y 300 de computación respectivos incluyen una pluralidad de procesadores 101 y 102, 201 y 202, y 301 y 302, buses 103, 203 y 303 externos del procesador, memorias 104, 204 y 304 y unidades 105, 205 y 305 de control de memoria, respectivamente.
Además, los módulos 100, 200 y 300 de computación están conectados a unidades 400 y 500 de control de dispositivos periféricos para controlar un dispositivo periférico a través de las unidades 105, 205 y 305 de control de memoria y de líneas 600, 601, 602, 610, 611 y 612 de señal de interfaz.
El sistema de computadores tolerante de fallos arriba descrito incluye además un dispositivo 700 de monitorización de bus, una unidad 702 de detección de fallos y una unidad 701 de control de sincronización.
El dispositivo 700 de monitorización de bus monitoriza un acceso de un procesador de cada módulo de computación al bus externo. El dispositivo 700 de monitorización de bus está conectado a los buses 103, 203 y 303 externos del procesador de los respectivos módulos 100, 200 y 300 de computación a través de líneas 710, 711 y 712 de señal de interfaz.
La unidad 702 de detección de fallos monitoriza la existencia/no-existencia de un fallo en todo el sistema, incluyendo los respectivos módulos de computación.
La unidad 701 de control de sincronización, que está conectada a cada módulo de computación, ajusta la temporización de una respuesta a un acceso desde cada módulo de computación para hacer que cada módulo de computación continúe su funcionamiento con sincronización de reloj. La unidad 701 de control de sincronización está conectada a las unidades 105, 205 y 305 de control de memoria de los respectivos módulos 100, 200 y 300 de computación a través de líneas 730, 731 y 732 de señal de interfaz.
A continuación, se hará una descripción del funcionamiento de un sistema de computadores tolerante de fallos estructurado así según el presente modo de implementación.
La unidad 702 de detección de fallos monitoriza la existencia/no-existencia de un fallo fijo en todo el sistema de computadores tolerante de fallos incluyendo los respectivos módulos 100, 200 y 300 de computación y las unidades 400 y 500 de control de dispositivos periféricos. Entonces, la unidad 702 de detección de fallos notifica un resultado de la monitorización al dispositivo 700 de monitorización de bus.
El dispositivo 700 de monitorización de bus, que está conectado a los buses 103, 203 y 303 externos del procesador de los módulos 100, 200 y 300 de computación respectivos a través de las líneas 710, 711 y 712 de señal de interfaz, compara las señales de control de acceso externo de los respectivos procesadores 101, 102, 201, 202, 301 y 302 para monitorizar si los respectivos procesadores 101, 102, 201, 202, 301 y 302 acceden a los buses 103, 203 y 303 externos en sincronización de reloj entre sí con la misma temporización o no.
En un caso en el que mediante la operación de monitorización arriba descrita, el dispositivo 700 de monitorización de bus detecta que cualquiera de los procesadores 101, 102, 201, 202, 301, y 302 funciona con una temporización diferente de la temporización de los demás, cuando la unidad 702 de detección de fallos no detecta ningún fallo fijo en ningún lugar del sistema de computadores tolerante de fallos, el dispositivo 700 de monitorización de bus detecta que la pérdida de paso no está provocada por un fallo. El resultado es notificado a todos los módulos 100, 200 y 300 de computación a través de las líneas 710, 711 y 712 de señal de interfaz para generar una interrupción a cada procesador. Además, el dispositivo 700 de monitorización de bus al mismo tiempo pasa a monitorizar los buses 103, 203 y 303 externos de los procesadores según un modo de interrupción.
Aquí, el dispositivo 700 de monitorización de bus monitoriza todos los accesos a los buses 103, 203 y 303 externos que incluyan un acceso de memoria desde el procesador y cuando detecta falta de sincronización en el funcionamiento entre los módulos de computación, instantáneamente interrumpe todos los procesadores 101, 102, 201, 202, 301 y 302 para interrumpir el proceso, de forma que en el momento en que se genera la interrupción, los contenidos de las memorias 104, 204 y 304 en los respectivos módulos 100, 200 y 300 de computación son todos coincidentes entre sí.
En lo que sigue, se hará una descripción de los contenidos específicos del funcionamiento del sistema de computadores tolerante de fallos según el presente modo de implementación haciendo referencia a la Fig. 2.
Cuando el dispositivo 700 de monitorización de bus detecta falta de sincronización en el funcionamiento entre los módulos de computación (Operación 201 en la Fig. 2), la detección es notificada a través de las líneas 710, 711 y 712 de señal de interfaz para generar una interrupción a cada procesador.
Todos los procesadores 101, 102, 201, 202, 301 y 302 están en el momento de la interrupción pertinente procesando y encolan una tarea de control de sincronización pensada para obtener la re-sincronización del funcionamiento con sincronización de reloj entre los respectivos módulos 100, 200 y 300 en la parte superior de una cola como una tarea de la más alta prioridad (Operación 202 en la Fig. 2).
La tarea de control de sincronización tiene la función de ejecutar una instrucción para acceder a un recurso especialmente prescrito en la unidad 701 de control de sincronización. A partir de ahí, cuando la tarea de control de sincronización arriba descrita es pasada a un estado de ejecución por un OS, la tarea ejecuta la instrucción para acceder al recurso prescrito en la unidad 701 de control de sincronización (Operación 203 en la Fig. 2).
En este momento de tiempo, un acceso al recurso prescrito desde un módulo de computación en el estado de pérdida de paso y un acceso al recurso prescrito desde otros módulos de computación en el estado de paso de bloqueo son naturalmente transmitidas a la unidad 701 de control de sincronización con un retraso de tiempo.
Al detectar un acceso desde los módulos 100, 200 y 300 de computación al recurso interno especialmente prescrito, la unidad 701 de control de sincronización, cuando el acceso es el primero, se abstiene de devolver una respuesta al módulo de computación pertinente y espera que lleguen los accesos de todos los demás módulos de computación (Operación 204 en la Fig. 2). Cuando los accesos desde todos los módulos 100, 200 y 300 son transmitidos, devuelve una respuesta a los accesos simultáneamente a todos los módulos 100, 200 y 300 de computación.
En respuesta a la respuesta desde la unidad 701 de control de sincronización, todos los procesadores de los respectivos módulos 100 200 y 300 de computación terminan la ejecución de la tarea de control de sincronización (Operación 205 en la Fig. 2). Después de esto, todos los procesadores continúan con el funcionamiento ordinario del programa (Operación 206 en la Fig. 2).
El funcionamiento descrito en lo que sigue habilita a los módulos 100, 200 y 300 de computación para continuar una vez más con su funcionamiento con sincronización de reloj entre sí. En este momento de tiempo, como se describió anteriormente, debido a que el proceso de sincronización se ejecuta antes de que los contenidos de las memorias 104, 204 y 304 de los módulos 100, 200 y 300 de computación pierdan la coincidencia, después de comenzar el funcionamiento de nuevo con sincronización de reloj, se permite de nuevo a todos los módulos 100, 200 y 300 de computación ejecutar la misma cadena de instrucciones con la misma temporización. Esto elimina la necesidad de copiar memoria para la re-sincronización que se requiere en un sistema de computadores tolerante de fallos convencional, permitiendo así una rápida ejecución del proceso de re-sincroniza-
ción.
La Fig. 3 es un diagrama de bloques que muestra una estructura de un sistema de computadores tolerante de fallos según un segundo modo de implementación de la presente invención. Con referencia a la Fig. 3, el sistema de computadores tolerante de fallos según el presente modo de implementación de la presente invención está estructurado para incluir una pluralidad de módulos 100 y 200 de computación, teniendo cada uno un procesador y una memoria y una pluralidad de unidades 400 y 500 de control de dispositivos periféricos, teniendo cada uno un puente 703 PCI. Cada uno de los módulos 100 y 200 procesa la misma cadena de instrucciones con sincronización de reloj entre sí. El sistema de computadores tolerante de fallos compara un resultado del proceso de cada módulo de computación. Incluso cuando un modo de computación tiene un fallo, el resto de módulos de computación puede continuar el proceso. Además, cada una de las unidades 400 y 500 de control de dispositivos periféricos está estructurada para ser multiplexada mediante control por software para habilitar, incluso cuando una unidad de control de dispositivos periféricos sufre un fallo, la continuación del proceso utilizando la otra unidad de control de dispositivos periféricos.
Cada unidad 400 de control de dispositivos periféricos incluye el puente 703 PCI conectado a las unidades 105 y 205 de control de memoria de los respectivos módulos 100 y 200 de computación a través de un PCI para establecer la conexión con un dispositivo periférico, un dispositivo 700 de monitorización de bus para monitorizar un acceso de cada procesador de cada uno de los módulos 100 y 200 de computación a un bus externo, una unidad 702 de detección de fallos para monitorizar la existencia/no existencia de un fallo en todo el sistema de computadores tolerante de fallos incluyendo los módulos 100 y 200 de computación, y una unidad 701 de control de sincronización conectada a cada módulo de computación a través del puente 703 PCI para ajustar la temporización de una respuesta a un acceso desde cada módulo de computación para recuperar la sincronización de reloj de cada módulo de computación.
Aunque no se ilustra en la figura, la unidad 500 de control de dispositivos periféricos también tiene los respectivos componentes arriba descritos de forma similar a la unidad 400 de control de dispositivos periféricos.
El sistema de computadores tolerante de fallos con sincronización por paso de bloqueo estructurado según el presente modo de implementación monitoriza generalmente el funcionamiento con sincronización de reloj de cada uno de los módulos 100 y 200 de computación y controla un dispositivo periférico utilizando la unidad 400 de control de dispositivos periféricos. Cuando se produce un fallo en la unidad 400 de control de dispositivos periféricos, se lleva a cabo el mismo proceso conmutando el uso a la unidad 500 de control de dispositivos periféricos.
En el presente modo de implementación, la ejecución de una instrucción para acceder al recurso prescrito en la unidad 701 de control de sincronización que se muestra en la Fig. 2 (Operación 203 en la Fig. 2) se lleva acabo mediante la ejecución de una instrucción de lectura a un registro en la unidad 701 de control de sincronización en la unidad 400 de control de dispositivos periféricos y la instrucción de lectura es transmitida a la unidad 701 de control de sincronización a través de los buses 800 y 801 PCI y del puente 703 PCI y su respuesta es transmitida a cada uno de los módulos 100 y 200 de computación a través de la misma ruta.
El contenido del proceso de re-sincronización según el presente modo de implementación es el mismo que el mostrado en la Fig. 2.
Además, aunque en el presente modo de implementación se muestra una realización en la que existen dos módulos de computación, estructuras que tengan tres módulos de computación como se muestra en el primer modo de implementación ilustrado en la Fig. 1 o estructuras que tengan cuatro o más módulos funcionan de la misma forma.
La Fig. 4 es un diagrama de bloques que muestra una estructura de un sistema de computadores tolerante de fallos según un tercer modo de implementación de la presente invención.
En el presente modo de implementación se muestra una estructura en la cual un dispositivo 700 de monitorización de bus está conectado a los módulos 100 y 200 de computación a través de un puente 703 PCI.
Según el presente modo de implementación, la monitorización de los buses 103 y 203 externos de los respectivos procesadores es ejecutada mediante una señal (protocolo bus PCI) transmitida al dispositivo 700 de monitorización de bus a través de unidades 105 y 205 de control de memoria de los respectivos módulos 100 y 200 de computación, los buses 800 y 801 PCI y el puente 703 PCI. Además, la transmisión de una interrupción desde el dispositivo 700 de monitorización de bus a cada módulo de computación es ejecutada a través de una ruta inversa a la ruta arriba descrita.
El contenido del proceso de re-sincronización en el presente modo de implementación es el mismo que el mostrado en la Fig. 2.
Aunque en el segundo y tercer modo de implementación, los respectivos módulos de computación y el dispositivo de monitorización de bus y similar se conectan utilizando un PCI, la conexión entre estos componentes puede establecerse utilizando un interfaz de otro estándar, como PCI-X o un interfaz exclusivo no estandarizado para múltiples usos, lo que no afecta a ninguno de los efectos de la presente invención.
En el sistema de computadores tolerante de fallos de la presente invención, el funcionamiento de cada unidad para ejecutar el proceso de re-sincronización puede ser llevado a cabo no sólo por hardware sino también cargando un programa 1000 de proceso de re-sincronización que ejecute el funcionamiento de cada una de las unidades arriba descritas dentro de una memoria de un dispositivo procesador de computadora para controlar el dispositivo procesador de computadora. El programa 1000 de proceso de re-sincronización es almacenado en un disco magnético, una memoria de semiconductor u otro medio de grabación y es cargado desde el medio de grabación al el dispositivo procesador de computadora para controlar el funcionamiento del dispositivo procesador de computadora, realizando así todas las funciones arriba descritas.
Aunque la presente invención ha sido descrita con respecto a los modos preferidos de implementación en lo anteriormente mencionado, la presente invención no se limita necesariamente a los modos de implementación arriba descritos, sino que se puede llevar a cabo de diferentes formas dentro del alcance de su idea técnica.
Aunque en cada uno de los modos de implementación arriba descritos se muestra la estructura en la que cada módulo de computación tiene dos procesadores, una estructura que tenga un procesador o tres o más procesadores funciona completamente de la misma manera.
Además, aunque en cada uno de los modos de implementación se muestra un caso en el que los respectivos procesadores comparten un bus externo y están conectados a dicho bus, ni, por ejemplo, una estructura en la que una pluralidad de procesadores estén conectados en forma de asterismo a una unidad de control de memoria ni una estructura en la que procesadores que formen un módulo de computación sean físicamente montados en una pluralidad de tarjetas afecta los efectos de la presente invención.
Como se describió anteriormente, la presente invención consigue los siguientes efectos.
El primer efecto es conseguir que un cierto módulo de computación de un sistema de computadores tolerante de fallos, cuando sale del estado de paso de bloqueo debido a causas diferentes que un fallo fijo, sea restaurado al estado de paso de bloqueo en un período de tiempo extremadamente corto.
La razón es que en un estado inicial de la generación de la pérdida de paso, cuando una memoria de cada módulo de computación están a punto de discrepar entre sí, el dispositivo de monitorización de bus genera una interrupción a un procesador para ejecutar preferencialmente una tarea de ejecutar una cadena de instrucciones para controlar la re-sincronización, recuperando así la sincronización sin copia de memoria.
El segundo efecto es mejorar la disponibilidad del sistema de computadores tolerante de fallos. La razón es que un período de parada de todo el sistema puede ser drásticamente reducido acelerando significativamente el tiempo de reintegración cuando se sale del paso de bloqueo.
Aunque la invención se ha ilustrado y descrito con respecto a la realización ejemplar de la misma, los expertos en la materia deben entender que se pueden realizar los cambios anteriormente descritos y varios otros, omisiones y adiciones en el mismo, sin salirse del alcance de las presente reivindicaciones.

Claims (5)

1. Un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo que incluye una pluralidad de módulos (100, 200, 300) de computación que tienen un procesador (101, 102, 201, 202, 301, 302) y una memoria (104, 204, 304), en el que cada módulo (100, 200, 300) de computación procesa la misma cadena de instrucciones con sincronización entre sí, y que además comprende
un detector (702) de fallos que monitoriza la existencia/no existencia de un fallo en todo el sistema,
un dispositivo (700) de monitorización de bus que monitoriza un acceso del procesador de cada uno de dichos módulos (100, 200, 300) de computación a un bus (103, 203, 303) externo y cuando detecta discrepancia en la salida entre los respectivos módulos (100, 200, 300) de computación, notifica una interrupción a cada uno de dichos procesadores, y
un controlador (701) de sincronización que re-sincroniza cada módulo (100, 200, 300) de computación ajustando la temporización de una respuesta a un acceso desde cada uno de dichos procesadores que es causada por dicha interrupción,
caracterizado porque
dicho dispositivo (700) de monitorización de bus notifica dicha interrupción a cada uno de dichos procesadores, encolando así una tarea predeterminada que es una tarea que consiste en ejecutar un acceso a un recurso predeterminado en dicho controlador (701) de sincronización, para re-sincronizar los módulos (100, 200, 300) de computación, si dicho detector (702) de fallos no detecta ningún fallo, y porque
dicho controlador (701) de sincronización transmite una respuesta a todos los módulos (100, 200, 300) de computación simultáneamente, cuando se reciben accesos a dicho recurso desde todos los procesadores.
2. El sistema de computadores tolerante de fallos como el expuesto en la reivindicación 1, en el que se suministran una pluralidad de pares de dicho dispositivo (700) de monitorización de bus, dicho detector (702) de fallos y dicho controlador (701) de sincronización.
3. El sistema de computadores tolerante de fallos como el expuesto en la reivindicación 1, en el que dicho dispositivo (700) de monitorización de bus, dicho detector (702) de fallos y dicho controlador (701) de sincronización están dispuestos en una unidad (400, 500) de control de dispositivos periféricos que controla un dispositivo periférico y está conectado al bus externo en dicho módulo (100, 200, 300) de computación a través de un puente PCI.
4. Un método de re-sincronización para su uso en un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo que incluye una pluralidad de módulos (100, 200, 300) de computación que tienen un procesador (101, 102, 201, 202, 301, 302) y una memoria (104, 204, 304) en el que cada módulo (100, 200, 300) de computación procesa la misma cadena de instrucciones con sincronización entre sí, comprendiendo dicho método las operaciones de
detectar la existencia/no existencia de un fallo en todo el sistema incluyendo cada uno de dichos módulos (100, 200, 300) de computación,
monitorizar un acceso del procesador de cada uno de dichos módulos (100, 200, 300) de computación a un bus (103, 203, 303) externo,
cuando se detecta discrepancia en la salida entre los respectivos módulos (100, 200, 300) de computación, notificar una interrupción a cada uno de dichos procesadores, y
hacer que cada uno de dichos procesadores ejecute una instrucción de control de sincronización de reloj para ajustar la temporización de una respuesta a un acceso desde cada procesador, haciendo así que cada módulo (100, 200, 300) de computación reanude el funcionamiento en sincronización,
caracterizado porque
dicha interrupción de cada uno de dichos procesadores provoca una tarea predeterminada para re-sincronizar los respectivos módulos (100, 200, 300) de computación, la cual es una tarea que consiste en ejecutar un acceso a un recurso predeterminado, si no se detecta ningún fallo en el sistema, para encolar un acceso a dicho recurso desde cada procesador, y responder a dichos accesos desde todos los módulos (100, 200, 300) de computación simultáneamente cuando todos se reciben los accesos desde dichos procesadores.
5. Un programa de re-sincronización para ejecutar el proceso de re-sincronización de un sistema de computadores tolerante de fallos con sincronización por paso de bloqueo que incluye una pluralidad de módulos (100, 200, 300) de computación que tienen un procesador (101, 102, 201, 202, 301, 302) y una memoria (104, 204, 304), en el que cada módulo (100, 200, 300) de computación procesa la misma cadena de instrucciones con sincronización entre sí, comprendiendo dicho programa las funciones de
detectar la existencia/no existencia de un fallo en todo el sistema incluyendo cada uno de dichos módulos (100, 200, 300) de computación,
monitorizar un acceso del procesador de cada uno de dichos módulos (100, 200, 300) de computación a un bus (103, 203, 303) externo,
cuando se detecta discrepancia en la salida entre los respectivos módulos (100, 200, 300) de computación, si no se detecta ningún fallo en el sistema, notificar una interrupción a cada uno de dichos procesadores, y
hacer que cada uno de dichos procesadores ejecute una instrucción de control de sincronización para ajustar la temporización de una respuesta a un acceso desde cada procesador, haciendo así que cada módulo (100, 200, 300) de computación reanude el funcionamiento en sincronización,
caracterizado porque
dicha interrupción de cada uno de dichos procesadores provoca una tarea predeterminada para re-sincronizar los respectivos módulos (100, 200, 300) de computación, que es una tarea que consiste en ejecutar un acceso a un recurso predeterminado, si no se detecta ningún fallo en el sistema, para encolar un acceso a dicho recurso desde cada procesador, y responder a dichos accesos desde todos los módulos (100, 200, 300) de computación simultáneamente cuando se reciben todos los accesos desde dichos procesadores.
ES03015796T 2002-07-12 2003-07-10 Sistema de computadores tolerante a fallos, metodo para la resincronizacion del mismo y programa para su resincronizacion. Expired - Lifetime ES2247459T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002204305 2002-07-12
JP2002204305A JP3982353B2 (ja) 2002-07-12 2002-07-12 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム

Publications (1)

Publication Number Publication Date
ES2247459T3 true ES2247459T3 (es) 2006-03-01

Family

ID=29728536

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03015796T Expired - Lifetime ES2247459T3 (es) 2002-07-12 2003-07-10 Sistema de computadores tolerante a fallos, metodo para la resincronizacion del mismo y programa para su resincronizacion.

Country Status (10)

Country Link
US (1) US7225355B2 (es)
EP (1) EP1380952B1 (es)
JP (1) JP3982353B2 (es)
KR (1) KR100566339B1 (es)
CN (1) CN1326042C (es)
AU (1) AU2003208108A1 (es)
CA (1) CA2434494C (es)
DE (1) DE60301702T2 (es)
ES (1) ES2247459T3 (es)
TW (1) TWI226983B (es)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047094B2 (en) 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
US8484441B2 (en) 2004-03-31 2013-07-09 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths
US7949856B2 (en) * 2004-03-31 2011-05-24 Icera Inc. Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit
US7529807B1 (en) * 2004-05-05 2009-05-05 Sun Microsystems, Inc. Common storage in scalable computer systems
DE102004032405A1 (de) * 2004-07-03 2006-02-09 Diehl Bgt Defence Gmbh & Co. Kg Weltraum-taugliche Rechnerarchitektur
US7308605B2 (en) * 2004-07-20 2007-12-11 Hewlett-Packard Development Company, L.P. Latent error detection
US7487395B2 (en) * 2004-09-09 2009-02-03 Microsoft Corporation Method, system, and apparatus for creating an architectural model for generating robust and easy to manage data protection applications in a data protection system
US7818614B2 (en) * 2004-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for reintroducing a processor module to an operating system after lockstep recovery
US7516359B2 (en) * 2004-10-25 2009-04-07 Hewlett-Packard Development Company, L.P. System and method for using information relating to a detected loss of lockstep for determining a responsive action
US20080320287A1 (en) * 2004-10-25 2008-12-25 Roberts Bosch Gmbh Method and Device for Performing Switchover Operations in a Computer System Having at Least Two Processing Units
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
US7624302B2 (en) * 2004-10-25 2009-11-24 Hewlett-Packard Development Company, L.P. System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor
US7627781B2 (en) 2004-10-25 2009-12-01 Hewlett-Packard Development Company, L.P. System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP2006178616A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
US20060212677A1 (en) * 2005-03-15 2006-09-21 Intel Corporation Multicore processor having active and inactive execution cores
US7590885B2 (en) * 2005-04-26 2009-09-15 Hewlett-Packard Development Company, L.P. Method and system of copying memory from a source processor to a target processor by duplicating memory writes
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
JP5220281B2 (ja) * 2006-03-31 2013-06-26 日本電気株式会社 情報処理システムのコアセル変更制御方式及びその制御プログラム
EP2011018B1 (en) 2006-04-12 2016-07-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
US7434096B2 (en) * 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US7480827B2 (en) * 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US8041985B2 (en) 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
CN107368285B (zh) 2006-11-14 2020-10-09 英特尔公司 多线程架构
US8756402B2 (en) * 2007-09-14 2014-06-17 Intel Mobile Communications GmbH Processing module, processor circuit, instruction set for processing data, and method for synchronizing the processing of codes
CN101383690B (zh) * 2008-10-27 2011-06-01 西安交通大学 一种基于socket的容错计算机系统的网络同步方法
GB2471138B (en) * 2009-06-19 2014-08-13 Advanced Risc Mach Ltd Handling integer and floating point registers during a context switch
CN101882098B (zh) * 2009-07-10 2012-07-11 威盛电子股份有限公司 微处理器集成电路以及相关除错方法
US8645286B2 (en) 2010-02-23 2014-02-04 Prior Knowledge, Inc. Configurable circuitry for solving stochastic problems
US8058916B2 (en) 2010-04-15 2011-11-15 Xilinx, Inc. Lockstep synchronization and maintenance
EP3156896B1 (en) 2010-09-17 2020-04-08 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
EP2628076B1 (en) 2010-10-12 2017-08-30 Intel Corporation An instruction sequence buffer to store branches having reliably predictable instruction sequences
TWI541721B (zh) 2010-10-12 2016-07-11 軟體機器公司 使用指令序列緩衝器來增強分支預測效能的方法、系統及微處理器
GB2489000B (en) 2011-03-14 2019-09-11 Advanced Risc Mach Ltd Diagnosing code using single step execution
KR101620676B1 (ko) 2011-03-25 2016-05-23 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
CN108108188B (zh) 2011-03-25 2022-06-28 英特尔公司 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
CN107729267B (zh) 2011-05-20 2022-01-25 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
US9442772B2 (en) 2011-05-20 2016-09-13 Soft Machines Inc. Global and local interconnect structure comprising routing matrix to support the execution of instruction sequences by a plurality of engines
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
US9811338B2 (en) * 2011-11-14 2017-11-07 Intel Corporation Flag non-modification extension for ISA instructions using prefixes
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
CN102521086B (zh) * 2011-12-08 2014-07-16 上海交通大学 基于锁步同步的双模冗余系统及其实现方法
US8832720B2 (en) * 2012-01-05 2014-09-09 Intel Corporation Multimedia driver architecture for reusability across operating systems and hardware platforms
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
DE102012219180A1 (de) * 2012-10-22 2014-05-08 Robert Bosch Gmbh Recheneinheit für ein Steuergerät und Betriebsverfahren hierfür
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US9563579B2 (en) 2013-02-28 2017-02-07 Intel Corporation Method, apparatus, system for representing, specifying and using deadlines
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
EP2972845B1 (en) 2013-03-15 2021-07-07 Intel Corporation A method for executing multithreaded instructions grouped onto blocks
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014151043A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US9792121B2 (en) * 2013-05-21 2017-10-17 Via Technologies, Inc. Microprocessor that fuses if-then instructions
US9183155B2 (en) * 2013-09-26 2015-11-10 Andes Technology Corporation Microprocessor and method for using an instruction loop cache thereof
US9952620B2 (en) 2014-04-10 2018-04-24 Intel Corporation Time-synchronizing a group of nodes
JP6360387B2 (ja) * 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
US9697094B2 (en) * 2015-02-06 2017-07-04 Intel Corporation Dynamically changing lockstep configuration
TWI514148B (zh) * 2015-03-16 2015-12-21 Univ Nat Sun Yat Sen 快取記憶體
JP6436031B2 (ja) * 2015-09-18 2018-12-12 信越半導体株式会社 単結晶引き上げ装置、及び単結晶引き上げ方法
JP6083480B1 (ja) * 2016-02-18 2017-02-22 日本電気株式会社 監視装置、フォールトトレラントシステムおよび方法
US10152427B2 (en) 2016-08-12 2018-12-11 Google Llc Hybrid memory management
US10037173B2 (en) * 2016-08-12 2018-07-31 Google Llc Hybrid memory management
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3864670A (en) * 1970-09-30 1975-02-04 Yokogawa Electric Works Ltd Dual computer system with signal exchange system
US5020024A (en) 1987-01-16 1991-05-28 Stratus Computer, Inc. Method and apparatus for detecting selected absence of digital logic synchronism
JPH0432955A (ja) 1990-05-23 1992-02-04 Oki Electric Ind Co Ltd プロセッサ障害検出装置
JPH05298134A (ja) 1991-12-16 1993-11-12 Internatl Business Mach Corp <Ibm> コンピュータシステムにおける処理誤りの処理機構及び方法
WO1995015529A1 (en) 1993-12-01 1995-06-08 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5832253A (en) * 1993-12-06 1998-11-03 Cpu Technology, Inc. Multiprocessors system for selectively wire-oring a combination of signal lines and thereafter using one line to control the running or stalling of a selected processor
JPH08235015A (ja) 1995-02-27 1996-09-13 Mitsubishi Electric Corp プロセッサ装置並びにプロセッサ故障診断方法
JP3241997B2 (ja) 1996-06-28 2001-12-25 富士通株式会社 情報処理装置
US5805870A (en) * 1996-06-28 1998-09-08 International Business Machines Corporation System and method for correcting clock drift in multiprocessor systems
US5875320A (en) * 1997-03-24 1999-02-23 International Business Machines Corporation System and method for synchronizing plural processor clocks in a multiprocessor system
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US5923830A (en) 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
JP2001523855A (ja) 1997-11-14 2001-11-27 マラソン テクノロジーズ コーポレイション 故障回復/耐故障計算機
US6175930B1 (en) * 1998-02-17 2001-01-16 International Business Machines Corporation Demand based sync bus operation
GB2340627B (en) * 1998-08-13 2000-10-04 Plessey Telecomm Data processing system
US6757847B1 (en) * 1998-12-29 2004-06-29 International Business Machines Corporation Synchronization for system analysis
JP2000200255A (ja) 1999-01-07 2000-07-18 Hitachi Ltd プロセッサ間の同期化方法及び同期回路
US6643787B1 (en) * 1999-10-19 2003-11-04 Rambus Inc. Bus system optimization
US6980617B1 (en) * 2000-11-15 2005-12-27 Advantest Corporation Reception data synchronizing apparatus and method, and recording medium with recorded reception data synchronizing program
US6480966B1 (en) * 1999-12-07 2002-11-12 International Business Machines Corporation Performance monitor synchronization in a multiprocessor system
JP2002049501A (ja) 2000-08-04 2002-02-15 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法

Also Published As

Publication number Publication date
TWI226983B (en) 2005-01-21
DE60301702D1 (de) 2005-11-03
KR20040007322A (ko) 2004-01-24
CN1326042C (zh) 2007-07-11
EP1380952B1 (en) 2005-09-28
CA2434494A1 (en) 2004-01-12
CN1495611A (zh) 2004-05-12
CA2434494C (en) 2008-11-25
TW200401187A (en) 2004-01-16
AU2003208108A1 (en) 2004-01-29
EP1380952A1 (en) 2004-01-14
US7225355B2 (en) 2007-05-29
DE60301702T2 (de) 2006-07-06
JP3982353B2 (ja) 2007-09-26
US20040010789A1 (en) 2004-01-15
JP2004046611A (ja) 2004-02-12
KR100566339B1 (ko) 2006-03-31

Similar Documents

Publication Publication Date Title
ES2247459T3 (es) Sistema de computadores tolerante a fallos, metodo para la resincronizacion del mismo y programa para su resincronizacion.
US7107484B2 (en) Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
CA1259415A (en) High level self-checking intelligent i/o controller
US7987385B2 (en) Method for high integrity and high availability computer processing
US9594646B2 (en) Reestablishing synchronization in a memory system
JPH0773059A (ja) フォールトトレラント型コンピュータシステム
JP2004326151A (ja) データ処理装置
US9104564B2 (en) Early data delivery prior to error detection completion
JPH03184129A (ja) 特定のデータをシステムデータに変換する方法
AU2005246990A1 (en) Fault tolerant computer system and interrupt control method for the same
US5905875A (en) Multiprocessor system connected by a duplicated system bus having a bus status notification line
US7493517B2 (en) Fault tolerant computer system and a synchronization method for the same
US7590885B2 (en) Method and system of copying memory from a source processor to a target processor by duplicating memory writes
CN101861569B (zh) 高集成度和高可用性计算机处理模块
JP3774826B2 (ja) 情報処理装置
JPH06161798A (ja) 情報処理装置
JP3069585B2 (ja) データ処理装置における目標指定リセット法
CN114416436A (zh) 基于SoC芯片面向单粒子翻转效应的可靠性方法
JP3415636B2 (ja) プロセッサ装置