ES2248686T3 - Sistema de ordenador tolerante a fallos, metodo de resincronizacion para el mismo y programa de resincronizacion para el mismo. - Google Patents

Sistema de ordenador tolerante a fallos, metodo de resincronizacion para el mismo y programa de resincronizacion para el mismo.

Info

Publication number
ES2248686T3
ES2248686T3 ES03015797T ES03015797T ES2248686T3 ES 2248686 T3 ES2248686 T3 ES 2248686T3 ES 03015797 T ES03015797 T ES 03015797T ES 03015797 T ES03015797 T ES 03015797T ES 2248686 T3 ES2248686 T3 ES 2248686T3
Authority
ES
Spain
Prior art keywords
computer
instruction
instructions
value
counter
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
ES03015797T
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 ES2248686T3 publication Critical patent/ES2248686T3/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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono que incluye una pluralidad de módulos informáticos (100, 200, 300) que tienen un procesador (101, 102, 201, 202, 301, 302) y una memoria (104, 204, 304) en el que cada módulo informático (100, 200, 300) procesa la misma cadena de instrucciones en sincronización entre sí, cuyo sistema de ordenador comprende un detector de fallos (700) que vigila la existencia/no existencia de un fallo en el sistema: un monitor (701) de bus que vigila un estado de acceso al bus externo de cada uno de dichos procesadores de cada uno de dichos módulos informáticos (100, 200, 300) y unos medios (702) de control de interrupción.

Description

Sistema de ordenador tolerante a fallos, método de resincronización para el mismo y programa de resincronización para el mismo.
Antecedentes del invento 1. Campo de aplicación del invento
El presente invento se refiere a un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono que procesa la misma cadena de instrucciones de una manera completamente igual mediante una pluralidad de módulos informáticos en sincronización de reloj entre sí. Más particularmente, se refiere a un sistema de ordenador tolerante a fallos y a un método de controlar la resincronización a alta velocidad que realiza la aceleración del proceso de resincronización cuando se produce un fallo de sincronismo entre los módulos informáticos (se desconecta el sincronismo de funcionamiento al unísono).
2. Descripción de la técnica relacionada con el invento
Con un sistema convencional de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono, cuando, entre una pluralidad de módulos informáticos que ejecutan la misma cadena de instrucciones al mismo tiempo, se detecta un módulo informático que tiene una salida diferente de la de otros módulos informáticos debido a un fallo o a otro factor externo o interno, se toman las contramedidas que a continuación se indica. En lo que sigue, a un módulo informático que falle en el funcionamiento en sincronización con otros módulos informáticos se le hará referencia como un módulo informático en un estado de pérdida de funcionamiento al unísono.
Más específicamente, se toma una medida tal que, una vez que se corta un módulo informático cuyo funcionamiento al unísono se pierde y que se sustituye el módulo informático según se requiera de acuerdo con un factor que cause la salida del funcionamiento al unísono o cuando no sea necesaria su sustitución, conducir el proceso de reiniciación o un proceso similar de acuerdo con la necesidad de integrar el módulo informático en el estado operativo.
En el instante de la reintegración antes descrita al estado operativo en un sistema convencional tolerante a fallos con sincronismo de funcionamiento al unísono, porque independientemente de si se ha sustituido o no un módulo informático en el estado de pérdida de funcionamiento al unísono, para que el módulo informático se sincronice con otros módulos informáticos continuando con la operación para ejecutar de nuevo el mismo proceso, todos los datos de memoria retenidos por los módulos informáticos en el estado operativo se copian en una memoria mantenida por el módulo informático que se va a reintegrar en el instante de su reintegración.
En un sistema convencional tolerante a fallos con sincronismo de funcionamiento al unísono, después de ejecutar la sustitución de un módulo informático en el estado de pérdida de funcionamiento al unísono, procesar la reiniciación de acuerdo con una parte que cause la salida de la pérdida del funcionamiento al unísono o algo parecido, cuando se vuelva a integrar el módulo informático en cuestión al estado operativo, los módulos informáticos en el estado operativo se detienen durante un largo período de tiempo.
Más específicamente, el sistema convencional tolerante a fallos con sincronismo de funcionamiento al unísono tiene un problema en el sentido de que mientras un módulo informático en el estado de pérdida del funcionamiento al unísono está sometido al proceso de reintegración, el funcionamiento de todo el sistema de ordenador tolerante a fallos está detenido durante un largo período de tiempo (3 a 5 segundos en general o del orden de minutos).
La razón de lo anterior es que, con el fin de integrar un módulo informático en el estado de pérdida del funcionamiento al unísono en el estado operativo, todo el contenido de la memoria se copia todo el tiempo de los módulos informáticos que continúan con la operación en el módulo informático que se va a integrar.
Cuando la operación de un módulo informático normal continúa durante el proceso de copiado, el contenido de la memoria del módulo informático normal tiene una posibilidad de cambiarse también durante el proceso de copiado, con lo que el copiado no se puede realizar adecuadamente. Para evitar dicha situación, un módulo informático que se encuentre en el estado operativo se detiene temporalmente para evitar la actualización del contenido de su memoria.
Puesto que la capacidad de la memoria en un módulo informático actual asciende a varios Gigabytes, el copiado de toda la memoria requerirá un largo período de tiempo.
En un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono, un estado de pérdida del funcionamiento al unísono entre módulos informáticos ocurre debido a varias causas.
El primer caso es un fallo fijo que ocurre dentro de un módulo informático. En este caso, un módulo informático que tenga un fallo debería sustituirse, y cuando se integra el módulo informático que se va a sustituir en un sistema operativo, necesitan copiarse todos los datos contenidos en una memoria de un módulo informático en el estado operativo.
En un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono, se podría producir una pérdida del funcionamiento al unísono porque, además del fallo anteriormente descrito, los módulos informáticos funcionan en tiempos diferentes debido a la diferencia en la fabricación de cada unidad en un módulo informático aunque su funcionamiento sea normal, o debido a un fallo intermitente de memoria corregible automáticamente causado por los efectos de un rayo \alpha o a un fenómeno análogo.
En estos casos, puesto que un fallo fijo no ocurre en un módulo informático en sí mismo, el módulo fundamentalmente no necesita sustitución, y sincronizando de nuevo su proceso con el de otros módulos informáticos en operación para integrar el módulo informático en cuestión, la totalidad del sistema de ordenador tolerante a fallos se puede restablecer a su estado de operación normal.
En el documento DE-A- 41 04 114, se describe un sistema redundante de tratamiento de datos. El sistema redundante de tratamiento de datos comprende al menos dos unidades centrales y medios para detectar estados de interrupción, así como medios para sincronización después que se ha detectado un estado de interrupción. La unidad central con la ejecución del programa más adelantada se retiene en un estado de espera hasta que las otras unidades centrales han alcanzado el estado de programa de la citada unidad central con el fin de introducir una sincronización rápida.
En la patente de EE.UU. Nº 5.020.024, se describen un método y aparato para detectar la ausencia seleccionada de sincronismo lógico digital. El equipo lógico digital provisto, en el que dos elementos lógicos funcionan con control de temporización desde un elemento de reloj con sincronismo seleccionado, incluye un elemento detector de fallos que detecta la ausencia del sincronismo seleccionado entre los dos elementos lógicos aún cuando cada uno esté proporcionando de otro modo la operación lógica correcta.
Sumario del invento
Un objeto del presente invento, que se define mediante las reivindicaciones, es proveer un sistema de ordenador tolerante a fallos, un método de resincronización del mismo y un programa de resincronización del mismo que permiten que un módulo informático cuyo sincronismo de funcionamiento al unísono se desconecta debido a otras causas que a un fallo fijo se vuelva a integrar en un estado operativo a una velocidad mayor que mediante un sistema convencional, reduciendo drásticamente de ese modo el tiempo de detención provisional del funcionamiento del sistema causado por el proceso de la integración.
Otro objeto del presente invento es proveer un sistema de ordenador tolerante a fallos, un método de resincronización del mismo y un programa de resincronización del mismo que realizan un perfeccionamiento de la disponibilidad del sistema mediante la reducción de tiempo para el proceso de la reintegración anteriormente descrito.
De acuerdo con el primer aspecto del presente invento, un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono incluye una pluralidad de módulos informáticos que tienen un procesador y una memoria en los que cada módulo informático procesa la misma cadena de instrucciones en sincronización entre sí, en el que, cuando se detecta disconformidad en un estado de acceso a un bus externo entre los procesadores en cada uno de los módulos informáticos, si no se detecta fallo en el sistema que incluya cada uno de los módulos informáticos, se ejecuta el proceso de reanudar el funcionamiento en sincronización con respecto a cada uno de los módulos informáticos después de generar una interrupción a todos los procesadores para ejecutar el ajuste de retardo con el fin de hacer que sea coincidente un estado de ejecución de instrucción entre los módulos informáticos.
El sistema de ordenador tolerante a fallos comprende además un detector de fallos que vigila la existencia /no existencia de un fallo en el sistema;
un monitor de bus que vigila un estado de acceso al bus externo de cada uno de los procesadores en cada uno de los módulos informáticos;
unos medios de control de interrupción para, en un caso en el que el monitor de bus detecta carencia de sincronización en un estado de acceso al bus externo de cada uno de los procesadores en cada uno de los módulos de ordenador, cuando el detector de fallos detecta que no hay fallo, generar una interrupción para notificar el resultado de la detección a cada uno de los procesadores;
unos medios de control de comunicación entre sistemas conectados a cada uno de los módulos informáticos para notificar un estado de ejecución de instrucción entre los procesadores en cada uno de los módulos informáticos, y unos medios de control de sincronización conectados a cada uno de los módulos informáticos para generar una señal de reposición para reanudar el funcionamiento de todos los módulos informáticos en sincronización después de realizar el ajuste de retardo para hacer que sea coincidente un estado de ejecución de instrucción en cada uno de los módulos informáticos.
Cada uno de todos los procesadores incluye un contador de número de instrucciones que sirve para contar el número de instrucciones ejecutadas en el procesador; el contador de número de instrucciones tiene un fallo de funcionamiento cuando los procesadores reciben una interrupción procedente de los medios de control de interrupción para cambiar a un modo de gestión de procesador para resincronización;
cada uno de los procesadores compara un valor de su propio contador de número de instrucciones con un valor de contador de número de instrucciones recibido de cada procesador correspondiente de otros módulos informáticos;
el módulo informático, que no incluye el contador de número de instrucciones que indique el valor máximo entre todos los contadores, realiza el ajuste de retardo de instrucciones de ejecución hasta que el valor del contador de número de instrucciones coincide con el máximo valor de contador de número de instrucciones y cuando los valores coinciden, envía una notificación al módulo informático que incluye el contador de número de instrucciones que indica el valor máximo, y el módulo informático, que incluye el contador de número de instrucciones que indica el valor máximo, espera para recibir una notificación de todos los demás módulos informáticos y, cuando recibe todas las notificaciones, instruye a los medios de control de sincronización para que generen una señal de reposición para causar que todos los módulos informáticosr reanuden el funcionamiento sincronizados entre sí.
En otra construcción preferida, en el ajuste de retardo en el que el módulo de ordenador cuyo valor de contador de número de instrucciones no es el máximo ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones, el procesador se configura a un modo de ejecución escalonado para cambiar al modo de gestión de procesador después de ejecutar una instrucción, y el procesador repite el proceso del modo de ejecución escalonado hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones.
En otra construcción preferida, cada uno de todos los procesadores que haya recibido una interrupción de los medios de control de interrupción cambia a un modo de gestión de procesador para realizar un proceso de resincronización en el que un contador de número de instrucciones para contar el número de instrucciones ejecutadas deja de funcionar y se guarda y almacena un valor de contador de programa;
cada uno de los procesadores lee un valor de contador de número de instrucciones de cada procesador y el valor de contador del programa guardado y transmite los valores a todos los demás módulos informáticos.
En otra construcción preferida, en el ajuste de retardo en el que el módulo informático cuyo valor de contador de número de instrucciones no es el máximo ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones, el procesador se configura en un modo de ejecución de designación de punto de ruptura para cambiar al modo de gestión de procesador después de ejecutar hasta una instrucción en una posición específica en una cadena de instrucciones designada;
como posición específica en la cadena de instrucciones, se ha designado una posición de instrucción indicada por el valor de contador de programa recibido del módulo informático que incluye el contador de número de instrucciones que indica el valor máximo, y después de ejecutar la cadena de instrucciones hasta una posición específica en una cadena de instrucciones designada, el procesador se cambia al modo de gestión de procesador.
En otra construcción preferida, después de leer un estado de ejecución de programa, el módulo informático, que incluye el contador de número de instrucciones que indica el valor máximo, espera la notificación de otros módulos informáticos;
después de ejecutar el procesamiento del ajuste de retardo, todos los demás módulos informáticos, que no incluyen el contador de número de instrucciones que indica el valor máximo, leen un estado de ejecución de programa y transmiten el estado de ejecución de programa junto con una notificación de terminación del procesamiento de ajuste de retardo al módulo informático que incluye el contador de número de instrucciones que indica el valor máximo, y el módulo informático que incluye el contador de número de instrucciones que indica el valor máximo compara los estados de ejecución de programa de todos los módulos informáticos, y cuando todos coinciden entre sí, da instrucciones sobre la generación de la señal de reposición para reanudar la operación de sincronización, y cuando se detecta que un módulo informático cuyo estado de ejecución de programa no es coincidente, da instrucciones sobre la generación de la señal de reposición para reanudar la operación en sincronización después de ejecutar el procesamiento del corte y de invalidar el módulo informático.
En otra construcción preferida, se ha provisto una pluralidad de pares del detector de fallos, del monitor de bus, de los medios de comunicación entre sistemas y de los medios de control de comunicación.
De acuerdo con otro aspecto del invento, se provee un método de resincronización en un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono que incluye una pluralidad de módulos informáticos que tienen un procesador y una memoria en el que cada módulo informático procesa la misma cadena de instrucciones en sincronización entre sí, que comprende las etapas de, cuando se detecta disconformidad en un estado de acceso a un bus externo entre los procesadores de cada módulo informático, si no se detecta un fallo en el sistema que incluye el módulo informático, generar una interrupción a todos los procesadores, y después de ejecutar el ajuste de retardo para hacer que un estado de ejecución de instrucción coincida entre los módulos informáticos, ejecutar el proceso de reanudación de la operación en sincronización con respecto a cada uno de los módulos informáticos.
El método de resincronización de un sistema de ordenador tolerante a fallos comprende además las etapas de vigilar la existencia/no existencia de un fallo en el sistema;
vigilar un estado de acceso al bus externo de cada uno de los procesadores en cada uno de los módulos informáticos;
cuando detecta una disconformidad en un estado de acceso al bus externo de cada uno de los procesadores en cada uno de los módulos informáticos, generar una interrupción para notificar el resultado de la detección a todos los procesadores, y después de ejecutar el ajuste de retardo para hacer que un estado de ejecución de instrucción sea coincidente entre los módulos informáticos, generar una señal de reposición para ejecutar el proceso de reanudar la operación en sincronización de todos los módulos informáticos.
El método de resincronización comprende además las etapas de cambiar a cada uno de todos los procesadores que hayan recibido la interrupción a un modo de gestión de procesador para el proceso de la resincronización en el que haya fallado la operación de un contador de número de instrucciones para contar el número de instrucciones en el procesador;
cada uno de los procesadores, comparar el valor leído de contador de número de instrucciones con un valor de contador de número de instrucciones recibido de cada procesador de otros módulos informáticos;
el módulo informático, que no incluya el contador de número de instrucciones que indica el valor máximo entre todos los contadores, ejecutar el ajuste de retardo de instrucciones de ejecución hasta que el valor de contador de número de instrucciones coincida con el máximo valor de contador de número de instrucciones y cuando los valores coincidan, enviar una notificación al módulo informático que incluye el contador de número de instrucciones que indica el valor máximo, y el módulo informático, que incluye el contador de número de instrucciones que indica el valor máximo, esperar para recibir una notificación de todos los otros módulos informáticos y, cuando se reciban todas las notificaciones, generar la señal de reposición para causar que todos los módulos informáticos reanuden la operación en sincronización entre sí.
En otra construcción preferida, en el ajuste de retardo en el que el módulo informático cuyo valor de contador de número de instrucciones no es el máximo, ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones;
el procesador se configura en un modo de ejecución escalonado para cambiar al modo de gestión de procesador después de ejecutar una instrucción, y el procesador repite el proceso del modo de ejecución escalonado hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones.
En otra construcción preferida, cada uno de todos los procesadores que ha recibido la interrupción cambia a un modo de gestión de procesador para procesamiento de resincronización en el que un contador de número de instrucciones para contar el número de instrucciones ejecutadas en el procesador tiene un fallo de funcionamiento y se guarda y almacena un valor de contador de programa;
cada uno de los procesadores lee el valor de contador de instrucciones de cada procesador y el valor del contador de programa guardado y transmite los valores a todos los demás módulos informáticos.
En otra construcción preferida, en el ajuste de retardo en el que el módulo informático cuyo valor de contador de número de instrucciones no es el máximo, ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincida con el valor máximo de contador de número de instrucciones;
el procesador se configura en un modo de ejecución de designación de punto de ruptura para cambiar al modo de gestión de procesador después de ejecutar hasta una instrucción en una posición específica en una cadena de instrucciones designada;
como posición específica en la cadena de instrucciones, se ha designado una posición de instrucción indicada por el valor de contador de programa recibido del módulo informático que incluye el contador de número de instrucciones que indica el valor máximo, y después de ejecutar la cadena de instrucciones hasta una posición específica en una cadena de instrucciones designada, el procesador se cambia al modo de gestión de procesador.
En otra construcción preferida, después de leer un estado de ejecución de programa, el módulo informático, que incluye el contador de número de instrucciones que indica el valor máximo, espera la notificación de otros módulos informáticos;
después de ejecutar el proceso del retardo de ajuste, todos los otros módulos informáticos, que no incluyan el contador de número de instrucciones que indica el valor máximo, leen un estado de ejecución de programa y transmiten el estado de ejecución de programa junto con una notificación de terminación del proceso de ajuste de retardo al módulo informático que incluye el contador de número de instrucciones que indica el valor máximo, y el módulo informático que incluye el contador de número de instrucciones que indica el valor máximo compara los estados de ejecución de programa de todos los módulos informáticos, y cuando todos coinciden entre sí, da instrucciones sobre la generación de la señal de reposición para restablecer el funcionamiento de la sincronización, y cuando se detecte un módulo informático cuyo estado de ejecución de programa no sea coincidente, da instrucciones sobre la generación de la señal de reposición para reanudar la operación después de ejecutar el procesamiento de cortar e invalidar el módulo informático.
De acuerdo con otro aspecto del invento, se provee un programa de resincronización para ejecutar el proceso de resincronización de un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono que incluye una pluralidad de módulos informáticos que tienen un procesador y una memoria en el que cada módulo informático procesa la misma cadena de instrucciones en sincronización de reloj entre sí, que comprende las funciones de, cuando se detecta disconformidad en un estado de acceso a un bus externo entre los procesadores de cada módulo informático, si no se detecta un fallo en el sistema que incluye el módulo informático, generar una interrupción a todos los procesadores, y causar que cada procesador reanude la operación en sincronización después de ejecutar el ajuste de retardo para hacer que un estado de ejecución de instrucción sea coincidente entre los módulos informáticos.
El programa de resincronización comprende además las funciones de vigilar la existencia/no existencia de un fallo en el sistema;
vigilar un estado de acceso al bus externo de cada uno de los procesadores en cada uno de los módulos informáticos; cuando detecta una disconformidad en un estado de acceso al bus externo de cada uno de los procesadores en cada uno de los módulos informáticos, si no se detecta un fallo en la monitorización de fallos, generar una interrupción para notificar el resultado de la detección a cada uno de los procesadores, y después de ejecutar el ajuste de retardo para hacer que un estado de ejecución de instrucción sea coincidente entre los módulos informáticos, generar una señal de reposición para reanudar la operación en sincronización de todos los módulos informáticos.
El programa de resincronización comprende la función de cambiar a cada uno de todos los procesadores que hayan recibido la interrupción a un modo de gestión de procesador para el proceso de resincronización en el que haya fallado la operación de un contador de número de instrucciones para contar el número de instrucciones en el procesador;
la función de que cada uno de los procesadores compare el valor leído de contador de número de instrucciones con un valor de contador de número de instrucciones recibido de cada procesador de otros módulos informáticos;
la función de que el módulo informático, que no incluya el contador de número de instrucciones que indica el valor máximo entre todos los contadores, ejecute el ajuste de retardo de instrucciones de ejecución hasta que el valor de contador de número de instrucciones coincida con el máximo valor de contador de número de instrucciones y cuando los valores coincidan, enviar una notificación al módulo informático que incluye el contador de número de instrucciones que indica el valor máximo, y la función de que el módulo informático, que incluye el contador de número de instrucciones que indica el valor máximo, espere a recibir una notificación de todos los otros módulos informáticos y, cuando se reciban todas las notificaciones, dar instrucciones sobre la generación de la señal de reposición para causar que todos los módulos informáticos reanuden la operación en sincronización.
En otra construcción preferida, el programa de resincronización comprende, en el ajuste de retardo en el que el módulo informático cuyo valor de contador de número de instrucciones no es el máximo, ejecutar instrucciones hasta que el valor de contador de número de instrucciones coincida con el valor máximo de contador de número de instrucciones;
la función de configurar el procesador en un modo de ejecución escalonada para cambiar al modo de gestión de procesador después de ejecutar una instrucción;
la función de que el procesador repita el proceso del modo de ejecución escalonada hasta que el valor del contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones.
En otra construcción preferida, el programa de resincronización comprende la función de cambiar a cada uno de todos los procesadores que hayan recibido la interrupción al modo de gestión de procesador para el proceso de resincronización en el que haya fallado un contador de número de instrucciones del procesador, y se guarda y almacena un valor de contador de programa;
la función de que cada procesador lee el valor de contador de número de instrucciones de cada procesador y el valor guardado de contador de programa y transmite los valores a todos los demás módulos informáticos;
En otra construcción preferida, el programa de resincronización comprende, en el ajuste de retardo en el que el módulo informático cuyo valor de contador de número de instrucciones no es el máximo, ejecutar instrucciones hasta que el valor de contador de número de instrucciones coincida con el valor máximo de contador de número de instrucciones;
la función de configurar el procesador en un modo de ejecución de punto de ruptura para cambiar al modo de gestión de procesador después de ejecutar al procesador hasta una instrucción en una posición específica en una cadena de instrucciones designada;
la función de, como posición específica en la cadena de instrucciones, designar una posición de instrucción indicada por el valor de contador de programa recibido del módulo informático que incluye el contador de número de instrucciones que indica el valor máximo, y la función de cambiar el procesador al modo de gestión de procesador después que el procesador ejecuta la cadena de instrucciones hasta la posición específica en una cadena de instrucciones designada.
En otra construcción preferida, el programa de resincronización comprende la función de que el módulo informático, que incluye el contador de número de instrucciones que indica el valor máximo, espera la notificación de todos los otros módulos informáticos después de leer un estado de ejecución de programa, la función de que todos los otros módulos informáticos, que no incluyan el contador de número de instrucciones que indique el valor máximo, lean un estado de ejecución de programa y transmitan el estado de ejecución de programa junto con una notificación de terminación del proceso de ajuste de retardo al módulo informático que incluya el contador de número de instrucciones que indique el, valor máximo después de ejecutar el proceso del ajuste de retardo, y la función de que el módulo informático que incluya el contador de número de instrucciones que indica el valor máximo compare los estados de ejecución de programa de todos los módulos informáticos, y cuando todos coincidan entre sí, dé instrucciones sobre la generación de la señal de reposición para reanudar la operación en sincronización y, cuando se detecte un módulo informático cuyo estado de ejecución de programa no sea coincidente, dé instrucciones sobre la generación de la señal de reposición para reanudar la operación en sincronización después de ejecutar el proceso de cortar e invalidar el módulo informático.
Otros objetos, características y ventajas del presente invento resultarán claros a partir de la descripción detallada que se da a continuación en la presente memoria.
Breve descripción de los dibujos
El presente invento se entenderá con mayor plenitud a partir de la descripción detallada que se dá a continuación en la presente memoria y a partir de los dibujos adjuntos de la realización preferida del invento, la cual, no obstante, no debe considerarse con carácter limitativo, sino únicamente a título de explicación y comprensión.
En los dibujos:
La Figura 1 es un diagrama de bloques que muestra una estructura de un sistema de ordenador tolerante a fallos de acuerdo con un primer modo de realización del presente invento;
La Figura 2 es un diagrama de flujo para usar en la explicación de la primera operación del sistema de ordenador tolerante a fallos de acuerdo con el primer modo;
La Figura 3 es un diagrama de flujo para usar en la explicación de la primera operación del sistema de ordenador tolerante a fallos;
La Figura 4 es un diagrama de flujo para usar en la explicación de la segunda operación del sistema de ordenador tolerante a fallos;
La Figura 5 es un diagrama de flujo para usar en la explicación de la segunda operación del sistema de ordenador tolerante a fallos;
La Figura 6 es un diagrama de flujo para usar en la explicación de la tercera operación del sistema de ordenador tolerante a fallos;
La Figura 7 es un diagrama de bloques que muestra una estructura de un sistema de ordenador tolerante a fallos de acuerdo con un segundo modo de realización;
La Figura 8 es un diagrama de flujo para usar en la explicación de la operación del sistema de ordenador tolerante a fallos de acuerdo con el segundo modo;
La Figura 9 es un diagrama de flujo para usar en la explicación de la operación del sistema de ordenador tolerante a fallos de acuerdo con la segunda realización; y
La Figura 10 es un diagrama de bloques que muestra una estructura de un sistema de ordenador tolerante a fallos de acuerdo con un tercer modo de realización.
Descripción de la realización preferida
A continuación se describe detalladamente en la presente memoria la realización preferida del presente invento con referencia a los dibujos adjuntos. En la descripción siguiente, se especifican numerosos detalles específicos con el fin de proporcionar una comprensión completa del presente invento. Sin embargo, para los expertos en la técnica será obvio que el invento se puede llevar a la práctica sin estos detalles específicos. En otros casos, no se muestran estructuras bien conocidas con el fin de no oscurecer innecesariamente el presente invento.
En lo siguiente se describirán con detalle los modos de realización del presente invento con referencia a los dibujos adjuntos.
En la Figura 1 se muestra la estructura de un sistema de ordenador tolerante a fallos de acuerdo con un primer modo de realización del presente invento. En la Figura 1, el sistema de ordenador tolerante a fallos incluye una pluralidad de módulos informáticos 100 y 200, cada uno de cuyos módulos informáticos 100 y 200 procesa la misma cadena de instrucciones en sincronización de reloj entre sí. El sistema de ordenador tolerante a fallos compara un resultado de procesamiento de cada módulo informático para activarlo. Cuando un módulo informático desarrolla un fallo, el proceso puede continuar mediante el restante módulo informático.
Los módulos informáticos incluyen una pluralidad de procesadores 101 y 102, un bus externo 103 de procesador, una memoria 104 y una unidad 105 de control de memoria. El módulo informático 200 incluye también los mismos componentes que el módulo informático 100. Adicionalmente, los módulos informáticos 100 y 200 están conectados a unas unidades 400 y 500 de control de dispositivo periférico para controlar un dispositivo periférico a través de las unidades 105 y 205 de control de memoria.
El sistema de ordenador tolerante a fallos anteriormente descrito incluye un detector 700 de fallos, un monitor 701 de bus, una unidad 702 de control de interrupción, una unidad 703 de control de comunicación entre sistemas, y una unidad 704 de control de sincronización.
El detector 700 de fallos vigila la existencia/no existencia de un fallo en la totalidad del sistema incluyendo los respectivos módulos informáticos 100 y 200.
El monitor 701 de bus vigila un estado de acceso a los buses externos 103 y 203 del procesador en cada uno de los módulos informáticos 100 y 200.
En un caso en el que el monitor 701 de bus detecta una disconformidad en la salida de cada procesador en los respectivos módulos informáticos 100 y 200 al bus externo, cuando el detector 700 de fallo detecta que no hay fallo, la unidad 702 de control de interrupción genera una interrupción para notificar el efecto a todos los procesadores.
La unidad 703 de control de comunicación entre sistemas, que está conectada a los respectivos módulos informáticos 100 y 200, proporciona un camino de comunicación para comprobar un estado de disconformidad en operación por los procesadores de los respectivos módulos informáticos 100 y 200.
La unidad 704 de control de sincronización, que está conectada a los respectivos módulos informáticos 100 y 200, genera una señal de reposición para controlar la resincronización a todos los módulos informáticos 100 y 200 en respuesta a una instrucción de cualquiera de los procesadores.
En este caso, el número de procesadores incluidos en cada uno de los módulos informáticos 100 y 200 no se limita a dos como se ha mostrado en el presente modo de realización, y cada módulo informático se puede instalar con uno, o tres o más procesadores.
Adicionalmente, el número de módulos informáticos no se limita a dos como se ha mostrado en el presente modo de realización, y se podrían incluir tres o más módulos informáticos que tendrían el mismo efecto que el del presente invento.
A continuación se describe con detalle la operación de dicha estructura de sistema de ordenador tolerante a fallos de acuerdo con el primer modo de realización, con referencia a las Figuras 1, 2 y 3.
El detector 700 de fallos vigila la existencia/no existencia de un fallo en la totalidad del sistema de ordenador tolerante a fallos incluyendo los respectivos módulos informáticos 100 y 200 y las respectivas unidades 400 y 500 de control de dispositivo periférico, y notifica el resultado a la unidad 702 de control de interrupción:
El monitor 701 de bus está conectado a los buses externos 103 y 203 de los procesadores de los respectivos módulos informáticos 100 y 200. El monitor 701 de bus compara un estado de acceso (protocolo de bus) de los procesadores 101, 102, 201 y 202 al bus externo para vigilar si los procesadores respectivos 101, 102, 201 y 202 acceden o no a los buses externos 103 y 203 de procesador en los mismos tiempos en sincronización entre sí. Cuando detecta una falta de coincidencia en la operación de los procesadores 101, 102, 201 y 202, el monitor 701 de bus notifica el efecto a la unidad 702 de control de interrupción.
Cuando el monitor 701 de bus ha notificado la detección de falta de sincronización en operación, si el detector 700 de fallo detecta que no hay fallo en el sistema de ordenador tolerante a fallos, la unidad 702 de control de interrupción genera una interrupción con el fin de notificar el efecto a todos los procesadores de cada módulo informático.
La unidad 702 de control de interrupción suprime también la generación de una nueva interrupción después de la generación de una interrupción hasta que se haya dado una instrucción procedente de la unidad 704 de control de sincronización. La supresión impide el reconocimiento de falta de sincronización en operación de un acceso al bus externo de los procesadores, que es causado por el procesamiento de resincronización para cada módulo informático, como una falta de sincronización en funcionamiento normal.
Cada uno de los procesadores 101, 102, 201 y 202 que haya recibido la interrupción procedente de la unidad 702 de control de interrupción corrige la desviación en operación (pérdida del funcionamiento al unísono) entre los respectivos módulos informáticos 100 y 200 mediante la ejecución del procesamiento de resincronización para recuperar un estado en el que la misma cadena de instrucciones se ejecute en sincronización de reloj entre sí.
A continuación se describe el proceso relevante de resincronización con referencia a los diagramas de flujo representados en las Figuras 2 y 3.
Tras recibir una interrupción, cada uno de los procesadores 101, 102, 201 y 202 cambia a un modo de gestión de procesador para el procesamiento de resincronización en el que deja de funcionar un contador de número de instrucciones para contar el número de instrucciones ejecutadas en el procesador (etapa 201).
Luego, cada uno de los procesadores 101, 102, 201 y 202 lee un valor de su propio contador de número de instrucciones (etapa 202) para transmitir el valor leído del contador de número de instrucciones a otro módulo informático a través de las unidades 105 y 205 de control de memoria y de la unidad 703 de control de comunicación entre sistemas (etapa 203).
Cada uno de los procesadores 101, 102, 201 y 202 lee también el valor del contador de número de instrucciones del procesador en otro módulo informático transmitido desde el otro módulo informático a través de la unidad 703 de control de comunicación entre sistemas y de las unidades 105 y 205 de control de memoria (etapa 204). Cada uno de los procesadores compara dicho valor con el valor del contador de número de instrucciones del procesador correspondiente en cada uno de todos los módulos informáticos (etapa 205).
En este caso, el módulo informático que incluye un procesador cuyo contador de número de instrucciones indica el valor máximo entre todos los contadores(de aquí en adelante se le denominará el módulo informático con el contador de número de instrucciones del valor máximo), mientras otros módulos informáticos ejecutan instrucciones equivalentes a un retardo como un resultado de la comparación de los valores de contador de número de instrucciones, realiza el proceso de poner a la cola la ejecución (etapa 206). Cuando los números de instrucciones ejecutadas en todos los módulos informáticos 100 y 200 coinciden entre sí, el módulo informático con el contador de número de instrucciones del valor máximo da instrucciones a la unidad 704 de control de sincronización a través de la unidad 105 ó 205 de control de memoria para generar una instrucción de reposición para procesamiento de resincronización a todos los módulos informáticos 100 y 200 (etapa 207).
Por otra parte, todos los módulos informáticos que no incluyen el contador de número de instrucciones que indica el valor máximo ejecutan un proceso de ajuste escalonado de retardo de instrucciones de ejecución hasta introducir el mismo estado de ejecución de cadena de instrucciones que el del módulo informático cuyo número de instrucciones ejecutadas (el valor del contador de número de instrucciones) es el máximo (etapa 208). Cada uno de los módulos informáticos, cuyo valor de contador de número de instrucciones no es el máximo, notifica la terminación del proceso de ajuste escalonado de retardo al módulo informático cuyo valor de contador de número de instrucciones es el máximo (etapa 209) y después de ello espera una instrucción de reposición para el proceso de resincronización (etapa 210).
Tras recibir la instrucción del módulo informático con el contador de número de instrucciones que indica el valor máximo, la unidad 704 de control de sincronización genera una señal de reposición para reanudar la operación en sincronización simultáneamente a todos los módulos informáticos 100 y 200. Adicionalmente, la unidad 704 al mismo tiempo da a la unidad 702 de control de interrupción una instrucción para permitir la generación de una interrupción, preparando de ese modo para operación normal en la sincronización que se va a restablecer.
La Figura 3 muestra la función detallada del proceso de ajuste escalonado de retardo ilustrado en la Figura 2.
En el proceso de ajuste escalonado de retardo (etapa 208 de la Figura 2), los procesadores se configuran a un modo de ejecución escalonado en el que los procesadores se cambian al modo de gestión de procesador justo después de ejecutar una instrucción (etapa 301). Después de ello, los procesadores se cambian a un modo de ejecución normal (etapa 302).
Como resultado, después de ejecutar solamente una instrucción (etapa 303), el procesador cambia al modo de gestión de procesador (etapa 304).
El procesador lee el valor de su propio contador de número de instrucciones (etapa 305) y compara el valor leído con el valor del contador de número de instrucciones ya recibido del módulo informático con el valor máximo (etapa 306). Cuando dejan de coincidir entre sí, el procesador repite de nuevo el proceso del modo de ejecución escalonado (etapa 301) y cuando coinciden entre sí, completa el procesamiento del ajuste escalonado de retardo.
La función anteriormente descrita permite que un estado de un módulo informático cuyo sincronismo de funcionamiento al unísono se haya perdido debido a otra causa que a un fallo fijado coincida con un estado de otros módulos informáticos. En general, cuando la carencia de sincronización se detecta primero por la vigilancia de los buses externos, aún en el estado de pérdida de sincronismo, su grado de pérdida de sincronismoes suficientemente bajo para ser restablecido al estado que ejecuta la misma cadena de instrucciones mediante la ejecución de varias etapas de proceso anteriormente descritas. Por tanto, su tiempo de proceso se puede reducir drásticamente comparado con un sistema convencional en el que se copian todas las regiones de la memoria.
Las Figuras 4 y 5 son diagramas de flujo que explican la segunda operación del proceso de resincronización en el sistema de ordenador tolerante a fallos estructurado como se muestra en la Figura 1.
En esta segunda operación, los procesadores 101, 102, 201 y 202 que han recibido una interrupción de la unidad 702 de control de interrupción ejecutan cada uno el procesamiento de resincronización ilustrado en la Figura 4 para corregir la desviación en operación (pérdida del sincronismo de funcionamiento al unísono) entre los respectivos módulos informáticos 100 y 200 y para recuperar el estado en que la misma cadena de instrucciones se ejecuta en sincronización.
Tras recibir la interrupción, cada uno de los procesadores 101, 102, 201 y 202 cambia al modo de gestión de procesador para proceso de resincronización en el que el contador de número de instrucciones del procesador para contar el número de instrucciones ejecutadas tiene un fallo en su operación y se guarda y almacena un valor del contador de programa (PC) en operación normal (etapa 401).
Cada uno de los procesadores 101, 102, 201 y 202 lee su propio valor de contador de número de instrucciones y el valor guardado del contador de programa (eyapa 402) y transmite los valores leídos a otros módulos informáticos a través de las unidades 105 y 205 de control de memoria y de la unidad 703 de control de comunicación entre sistemas (etapa 403).
Cada uno de los procesadores 101, 102, 201 y 202 lee también un valor del contador de número de instrucciones y un valor de contador de programa del procesador de otro módulo informático que se haya transmitido desde el otro módulo informático a través de la unidad 703 de control de comunicación entre sistemas, y de las unidades 105 y 205 de control de memoria (etapa 404). Cada uno de los procesadores compara el valor de su propio contador de número de instrucciones con el valor del contador de número de instrucciones del procesador correspondiente de cada uno de todos los módulos informáticos (etapa 405).
En este caso, el módulo informático que incluye un procesador cuyo contador de número de instrucciones indica el valor máximo entre todos los procesadores, mientras otros módulos informáticos ejecutan instrucciones equivalentes a un retardo como un resultado de la comparación, realiza el proceso de poner a la cola la ejecución (etapa 406). Cuando los números de instrucciones ejecutadas coinciden en todos los módulos informáticos, el módulo informático con el contador de número de instrucciones del valor máximo da instrucciones a la unidad 704 de control de sincronización a través de la unidad 105 ó 205 de control de memoria para generar una instrucción de reposición para el proceso de resincronización a todos los módulos informáticos (etapa 407).
Por otra parte, todos los módulos informáticos cuyo valor de contador de número de instrucciones no es el valor máximo ejecutan un proceso de ajuste de etapa de retardo de instrucciones de ejecución hasta que se ha ejecutado el mismo número de instrucciones que el del módulo informático cuyo contador de número de instrucciones indica el valor máximo (etapa 408). Cada uno de los módulos informáticos, en los que no existe el contador de número de instrucciones de valor máximo, notifica la terminación del proceso de ajuste escalonado de retardo al módulo informático cuyo valor de contador de número de instrucciones es el máximo (etapa 409) y después de ello espera una instrucción de reposición para el proceso de resincronización (etapa 410).
La Figura 5 muestra detalles del proceso de ajuste escalonado de retardo.
En el proceso de ajuste escalonado de retardo anteriormente descrito (etapa 408 en la Figura 4), los procesadores se configuran a un modo de ejecución de designación de punto de ruptura que vuelve a cambiar al procesador al modo de gestión de procesador después que se han ejecutado instrucciones hasta una posición específica en una cadena de instrucciones designada. En este momento, como posición específica de la cadena de instrucciones, se designa una posición de instrucción indicada por un valor de contador de programa recibido del módulo informático con el contador de número de instrucciones del valor máximo (etapa 501). Después de esto, los procesadores se cambian al modo de ejecución normal (etapa 502).
Como resultado, después de ejecutar las instrucciones hasta la posición específica en la cadena de instrucciones designada, es decir, hasta la misma posición en la cadena de instrucciones que la existente en el módulo informático con el contador de número de instrucciones del valor máximo (etapa 503), el procesdor completa el proceso de ajuste de etapa de retardo y cambia otra vez al modo de gestión de procesador (etapa 504).
La Figura 6 es un diagrama de flujo que explica la tercera operación del sistema de ordenador tolerante a fallos de acuerdo con el primer modo de realización, que en particular muestra otro ejemplo de proceso siguiente al proceso de comparación de contadores de número de instrucciones (etapa 205 de la Figura 2 y etapa 405 de la figura 4) en la operación mostrada en las Figuras 2 y 4.
En el proceso mostrado en la figura 6, después de leer un estado de ejecución de programa en el módulo informático con el contador de número de instrucciones del valor máximo (etapa 601), el módulo informático con el valor máximo espera una notificación de terminación del proceso de ajuste escalonado de retardo desde otros módulos informáticos (etapa 602).
Por otra parte, después de ejecutar el proceso de ajuste escalonado de retardo por cualquiera de los métodos anteriormente descritos o por un método similar (etapa 701), todos los demás módulos informáticos cuyo valor de contador de número de instrucciones no es el valor máximo, leen cada uno su estado de ejecución de programa (etapa 702). Cada uno de los otros módulos informáticos transmite el estado de ejecución de programa al módulo informático cuyo valor de contador de número de instrucciones es el máximo junto con la notificación de la terminación del proceso de ajuste escalonado de retardo (etapa 703) y después de ello espera una instrucción de reposición para el proceso de resincronización (etapa 704).
El módulo informático con el contador de número de instrucciones que indica el valor máximo que ha recibido los estados de ejecución de programa, compara los estados de ejecución de programa de todos los módulos informáticos (etapa 603). El módulo informático con el contador de número de instrucciones que indica el valor máximo ejecuta la operación de sincronización reanudando el proceso inmediatamente en un caso en el que todos los estados coincidan. Cuando se detecta un módulo informático cuyo estado deja de coincidir, el módulo informático con el contador de número de instrucciones que indica el valor máximo ejecuta la operación reanudando el proceso de todos los otros módulos informáticos (etapa 605) después de ejecutar el proceso de cortar solamente el módulo informátio en cuestión para invalidar el mismo (etapa 604).
El contenido del proceso mostrado en la Figura 6 permite incluso a un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono adoptar un procesador que no siempre está disponible en la ejecución escalonada y en la ejecución de punto de ruptura para realizar el presente invento sin tener resultados erróneos de proceso.
A continuación, con referencia a la Figura 7, se hará una descripción de un sistema de ordenador tolerante a fallos de acuerdo con un segundo modo de realización del presente invento.
Con referencia a la Figura 7, el sistema de ordenador tolerante a fallos de acuerdo con el presente modo de realización incluye una pluralidad de módulos informáticos 100, 200 y 300 cada uno de los cuales tiene un procesador y una memoria y una pluralidad de unidades 400 y 500 de control de dispositivo periférico que tienen unos mecanismos 803 y 804 para la conexión con un dispositivo periférico, respectivamente. Cada uno de los módulos informáticos 100, 200 y 300 procesa la misma cadena de instrucciones en sincronización entre sí y compara un resultado de proceso de cada módulo informático para activarlo. Aún cuando un módulo informático desarrolle un fallo, el proceso se puede continuar mediante los restantes módulos informáticos.
En el sistema de ordenador tolerante a fallos de acuerdo con el segundo modo de realización, cada una de las unidades 400 y 500 de control de dispositivo periférico incluye un detector 700 de fallos, un monitor 701 de bus, una unidad 702 de control de interrupción, una unidad 703 de control de comunicación entre sistemas, y una unidad 704 de control de sincronización que se muestran en la Figura 1 y además incluye un puente de interconexión de componentes periféricos (en adelante PCI) 705 para controlar la conexión entre cada módulo informático y cada unidad de control en la unidad de control de dispositivo periférico y en los mecanismos 803 y 804 de conexión de dispositivo periférico.
Aunque no se ha mostrado en las figuras, la estructura interna de la unidad 500 de control de dispositivo periférico es completamente igual que la de la unidad 400 de control de dispositivo periférico, y el tipo de medios de control que se van a usar en la unidad 400 de control de dispositivo periférico o en la unidad 500 de control de dispositivo periférico se puede determinar arbitrariamente mediante un programa a ejecutar en el procesador del módulo informático, permitiendo de ese modo, aún cuando la unidad 400 o 500 de control de dispositivo periférico relacionada con la sincronización desarrolle un fallo, aumentar la disponibilidad mediante el uso de la unidad 400 o 500 de control de dispositivo periférico que no haya fallado.
El presente modo de realización consigue el efecto del presente invento mediante la misma operación que el modo de realización anteriormente descrito mostrado en la Figura 1, excepto que la conexión entre los respectivos módulos informáticos 100, 200 y 300 y las respectivas unidades 400 y 500 de control de dispositivo periférico se establece usando el puente de PCI 705 como una interfaz representativa de conexión de dispositivo periférico y que la transmisión y recepción de datos a y desde la unidad 703 de control de comunicación entre sistemas y una instrucción de proceso de reposición a la unidad 704 de control de sincronización se ejecutan mediante el uso del protocolo de PCI.
Adicionalmente, el presente modo de realización muestra la estructura donde se han provisto tres módulos informáticos, y el funcionamiento detallado del proceso de resincronización con la estructura es como se ha ilustrado en las Figura 8 y 9. La Figura 8 muestra un flujo de operación generalizada a partir de la operación anteriormente descrita en la Figura 2 en un caso en el que un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono incluye tres o más módulos informáticos. Los contenidos de los procesos son los mismos que los mostrados en las Figuras 2 y 3, excepto que el número de módulos informáticos es diferente.
Más específicamente, en los diagramas de flujo mostrados en las Figuras 8 y 9, tras recibir una interrupción, cada procesador cambia al modo de gestión de procesador para resincronización, un modo en el que el contador de número de instrucciones que sirve para contar el número de instrucciones ejecutadas en el procesador tiene un fallo de funcionamiento (etapa 801).
Entonces, cada procesador lee un valor de su propio contador de número de instrucciones (etapa 802) y transmite el valor leído del contador de número de instrucciones a los otros módulos informáticos a través de las unidades 105 y 205 de control de memoria, puente PCI 705 y unidad 703 de control de comunicación entre sistemas (etapa 803).
Cada procesador lee también el valor del contador de número de instrucciones del procesador de otro módulo informático transmitido desde el otro módulo informático en cuestión a través de la unidad 703 de control de comunicación entre sistemas, del puente PCI 705 y de las unidades 105 y 205 de control de memoria (etapa 804). Cada procesador compara dicho valor con el valor del contador de número de instrucciones del procesador correspondiente en cada uno de todos los módulos informáticos (etapa 805).
En este caso, el módulo informático que incluye un procesador cuyo contador de número de instrucciones indica el valor máximo entre todos los contadores, mientras otros módulos informáticos ejecutan instrucciones equivalentes a un retardo como un resultado de la comparación de los valores de contador de número de instrucciones, realiza el proceso de poner a la cola la ejecución (etapa 806). Cuando los números de instrucciones ejecutadas en todos los módulos informáticos 100, 200 y 300 coinciden entre sí, el módulo informático con el contador de número de instrucciones del valor máximo da instrucciones a la unidad 704 de control de sincronización para generar una instrucción de reposición para el proceso de resincronización a todos los módulos informáticos 100, 200 y 300 a través de la unidad 105 ó 205 de control de memoria y del puente PCI 705 (etapa 807).
Por otra parte, todos los módulos informáticos cuyo valor de contador de número de instrucciones no es el valor máximo, ejecutan el proceso de ajuste de etapa de retardo de instrucciones de ejecución hasta introducir el mismo estado de ejecución de cadena de instrucciones que el del módulo informático con el contador de número de instrucciones que indica el valor máximo (etapa 808). Cada uno de los módulos informáticos, en los que no existe el contador de número de instrucciones de valor máximo, notifica la terminación del proceso de ajuste de etapa de retardo al módulo informático cuyo valor de contador de número de instrucciones es el máximo (etapa 809) y después de ello espera una instrucción de reposición para el proceso de resincronización (etapa 810).
Tras recibir la instrucción, la unidad 704 de control de sincronización genera una señal de reposición para restablecer la operación en sincronización simultáneamente a todos los módulos informáticos 100, 200 y 300. Adicionalmente, la unidad 704 al mismo tiempo da a la unidad 702 de control de interrupción una instrucción para permitir la generación de una interrupción cuando la operación carece de sincronización, preparando dse ese modo para que se restablezca la operación normal en sincronización.
La Figura 9 muestra la función detallada del proceso de ajuste escalonado de retardo ilustrado en la Figura 8.
En el proceso de ajuste escalonado de retardo (etapa 808 de la Figura 8), los procesadores se configuran a un modo de ejecución de etapa en el que los procesadores se cambian al modo de gestión de procesador justo después de ejecutar una instrucción (etapa 901), Después de esto, los procesadores se cambian a un modo de ejecución normal (etapa 902).
Como resultado, después de ejecutar solamente una instrucción (etapa 903), el procesador cambia al modo de gestión de procesador (etapa 904).
El procesador lee el valor de su propio contador de número de instrucciones (etapa 905), y compara el valor leído con el valor del contador de número de instrucciones ya recibido del módulo informático con el contador de número de instrucciones que indica el valor máximo (etapa 906). Cuando fallan en coincidir entre sí, el procesador repite de nuevo el proceso del modo de ejecución escalonada (etapa 901) y cuando coinciden entre sí, completa el proceso de ajuste escalonado de retardo.
La Figura 10 muestra una estructura de un sistema de ordenador tolerante a fallos de acuerdo con un tercer modo de realización del presente invento. Con referencia a la Figura 10, el sistema de ordenador tolerante a fallos de acuerdo con el presente modo de realización es el mismo que el del segundo modo de realización mostrado en la Figura 7, con la excepción de que la transmisión y recepción de información a y desde cada módulo informático por el monitor 701 de bus y la unidad 702 de control de interrupción se ejecutan también a través del puente PCI 705, y obtiene el mismo efecto por la misma operación mostrada en las Figuras 8 y 9.
En el sistema de ordenador tolerante a fallos del presente invento, la función de cada unidad que ejecuta el proceso de resincronización se puede realizar no sólo por hardware, sino también mediante la carga de un programa 1000 de proceso de resincronización que ejecuta la función de cada una de las unidades anteriormente descritas en una memoria de un dispositivo de proceso de ordenador para controlar el dispositivo de proceso de ordenador. El programa 1000 de proceso de resincronización se guarda en un medio de grabación tal como un disco magnético o una memoria de semiconductor y se carga desde el medio de grabación al dispositivo de proceso de ordenador para controlar la operación del dispositivo de proceso de ordenador, realizando de ese modo cada una de las funciones anteriormente descritas.
Aunque en lo anterior se ha descrito el presente invento con respecto a los modos preferidos de realización, el presente invento no se limita necesariamente a los modos de realización anteriormente descritos, sino que se realiza en formas diversas dentro del alcance de las reivindicaciones.
Con independencia de si el número de módulos informáticos es de dos, tres o más, el presente invento logra completamente el mismo efecto mediante la estructura y operación anteriormente descritas.
Adicionalmente, no se plantea restricción alguna sobre el número de procesadores de cada módulo informático, y la estructura que está provista de un procesador funciona completamente de la misma manera que la estructura provista de tres o más procesadores. Además, aunque se ha mostrado en cada uno de los modos de realización anteriormente descritos un caso en el que los respectivos procesadores comparten un bus externo y están conectados al mismo bus, ni, por ejemplo, una estructura en la que una pluralidad de procesadores están conectados en la forma de una constelación a una unidad de control de memoria, ni una estructura en la que los procesadores que forman un módulo informático están formados físicamente divididos en una pluralidad de regletas afectan a los efectos del presente invento.
Más aún, el presente invento podría incluir un par de un módulo informático y unidades respectivas para resincronización tales como un monitor de bus o una pluralidad de pares de estos componentes. Adicionalmente, estos componentes podrían proveerse en una unidad de control de dispositivo periférico o podrían formarse en un cuadro exclusivo o elemento similar.
Alternativamente, el módulo informático y otras unidades respectivas para resincronización tales como el monitor de bus podrían conectarse mediante una PCI o unos medios de interfaz u otros medios estándar tales como PCI-X, o por medios de interfaz exclusivos no normalizados para obtener el mismo efecto que el descrito anteriormente.
Según se ha descrito en la exposición anterior, el presente invento obtiene los efectos siguientes.
El primer efecto es permitir que un cierto módulo informático de un sistema de ordenador tolerante a fallos, cuando se desconecta del estado de sincronismo con funcionamiento al unísono debido a otra causa que un fallo fijado, se restablezca al estado sincronismo con funcionamiento al unísono en un período de tiempo extremadamente corto.
La razón es que en una etapa inicial de generación de pérdida de sincronismo, cuando la desviación en el proceso de cada módulo informático es pequeña, mediante la generación de una interrupción a un procesador y después de ajustar un retardo de un módulo informático cuyo proceso tiene un retardo para restablecer la operación en sincronización, se puede restablecer la operación de sincronización sin copiar toda la memoria.
El segundo efecto es mejorar la disponibilidad del sistema de ordenador tolerante a fallos. La razón es que un período de tiempo de detención de todo el sistema se puede reducir drásticamente acelerando significativamente el tiempo del proceso de resincronización cuando se pierde el sincronismo de funcionamiento al unísono.
Aunque el invento se ha ilustrado y descrito con respecto a una realización ejemplar del mismo, los expertos en la técnica entenderán que en el anterior se pueden hacer otros diversos cambios, omisiones y adiciones en el mismo y al mismo, sin apartarse del alcance de las presentes reivindicaciones.

Claims (16)

1. Un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono que incluye una pluralidad de módulos informáticos (100, 200, 300) que tienen un procesador (101, 102, 201, 202, 301, 302) y una memoria (104, 204, 304) en el que cada módulo informático (100, 200, 300) procesa la misma cadena de instrucciones en sincronización entre sí, cuyo sistema de ordenador comprende
un detector de fallos (700) que vigila la existencia/no existencia de un fallo en el sistema:
un monitor (701) de bus que vigila un estado de acceso al bus externo de cada uno de dichos procesadores de cada uno de dichos módulos informáticos (100, 200, 300);
unos medios (702) de control de interrupción para, en un caso en que dicho monitor (701) de bus detecte carencia de sincronización en un estado de acceso al bus externo de cada uno de dichos procesadores de cada uno de dichos módulos informáticos (100, 200, 300), cuando dicho detector (700) de fallos detecta que no hay fallo, generar una interrupción para notificar el resultado de la detección a cada uno de dichos procesadores;
unos medios (703) de control de comunicación entre sistemas conectados a cada uno de dichos módulos informáticos (100, 200, 300) para notificar un estado de ejecución de instrucción entre dichos procesadores de cada uno de dichos módulos informáticos (100, 200, 300), y
unos medios (704) de control de sincronización conectados a cada uno de dichos módulos informáticos (100, 200, 300) para generar una señal de reposición para reanudar la operación de todos los mencionados módulos informáticos (100, 200, 300) en sincronización después de realizar un ajuste de retardo para hacer que sea coincidente un estado de ejecución de instrucción en cada uno de dichos módulos informáticos (100, 200, 300),
en el que cada uno de dichos módulos informáticos está configurado de tal manera que
cada uno de todos los mencionados procesadores incluye un contador de número de instrucciones para contar el número de instrucciones ejecutadas en el procesador, dicho contador de número de instrucciones tiene un fallo de operación cuando dichos procesadores reciben una interrupción de dichos medios (702) de control de interrupción y cambia a un modo de gestión de procesador para resincronización; cada uno de dichos procesadores compara su propio valor de contador de número de instrucciones con un valor de contador de número de instrucciones recibido de cada procesador correspondiente de otros módulos informáticos (100, 200, 300),
dicho módulo informático (100, 200, 300) que no incluye el contador de número de instrucciones que indica el valor máximo entre todos los contadores, realiza un ajuste de retardo de instrucciones de ejecución hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones, y cuando los valores coinciden, envía una notificación al módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, y
dicho módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, espera a recibir una notificación de todos los demás módulos informáticos (100, 200, 300) y cuando recibe todas las notificaciones, da instrucciones a dichos medios (704) de control de sincronización para generar una señal de reposición para causar que todos los módulos informáticos (100, 200, 300) reanuden la operación en sincronización entre sí.
2. El sistema de ordenador tolerante a fallos según se ha reivindicado en la reivindicación 1, en el que
en el ajuste de retardo en el que dicho módulo informático (100, 200, 300) cuyo valor de contador de número de instrucciones no es el máximo ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones,
dicho procesador se configura en un modo de ejecución escalonado para cambiar a dicho modo de gestión de procesador después de ejecutar una instrucción, y
dicho procesador repite el proceso del modo de ejecución escalonado hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones.
3. El sistema de ordenador tolerante a fallos según se ha reivindicado en la reivindicación 1, en el que
en dicho modo de gestión de procesador para proceso de resincronización, cada uno de todos los mencionados procesadores que recibe una interrupción de dichos medios de control de interrupción guarda y almacena un valor de contador de programa,
cada uno de dichos procesadores lee un valor de contador de número de instrucciones de cada procesador y dicho valor guardado de contador de programa y transmite los valores a todos los otros módulos informáticos mencionados (100, 200, 300).
4. El sistema de ordenador tolerante a fallos según se ha reivindicado en la reivindicación 3, en el que
en el ajuste de retardo en el que dicho módulo informático (100, 200, 300) cuyo valor de contador de número de instrucciones no es el máximo ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones,
dicho procesador se configura en un modo de ejecución de designación de punto de ruptura para cambiar a dicho modo de gestión de procesador después de ejecutar hasta una instrucción en una posición específica de una cadena de instrucciones designada;
como dicha posición específica de la cadena de instrucciones, se designa una posición de instrucción indicada por el valor de contador de programa recibido de dicho módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, y
después de ejecutar la cadena de instrucciones hasta dicha posición específica de una cadena de instrucciones designada que es la misma posición de la cadena de instrucciones que la del módulo informático con el contador de número de instrucciones del valor máximo, dicho procesador se cambia al modo de gestión de procesador.
5. El sistema de ordenador tolerante a fallos según se ha reivindicado en la reivindicación 1, en el que
después de leer un estado de ejecución de programa, dicho módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, espera dicha notificación de otros módulos informáticos (100, 200, 300);
después de ejecutar el proceso de ajuste de retardo, todos los otros módulos informáticos (100, 200, 300) que no incluyen el contador de número de instrucciones que indica el valor máximo, leen un estado de ejecución de programa y transmiten el estado de ejecución de programa junto con una notificación de terminación del proceso de ajuste de retardo al módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, y
el módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo compara los estados de ejecución de programa de todos los módulos informáticos (100, 200, 300) y cuando todos coinciden entre sí, da una instrucción sobre la generación de la señal de reposición para reanudar la operación de sincronización y, cuando se detecta un módulo informático (100, 200, 300) cuyo estado de ejecución de programa no es coincidente, da una instrucción sobre la generación de la señal de reposición para reanudar la operación en sincronización después de ejecutar el proceso de corte e invalidación del módulo informático (100, 200, 300) cuyo estado no es coincidente.
6. El sistema de ordenador tolerante a fallos según se ha reivindicado en la reivindicación 1, en el que
se ha provisto una pluralidad de pares de dicho detector (700) de fallos, de dicho monitor (701) de bus, de dichos medios (702) de control de interrupción, de dichos medios (703) de control de comunicación entre sistemas, y de dichos medios (704) de control de sincronización.
7. Un método de resincronización para un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono que incluye una pluralidad de módulos informáticos (100, 200, 300) que tienen un procesador (101, 102, 201, 202, 301, 302) y una memoria (104, 204, 304) en el que cada módulo informático (100, 200, 300) procesa la misma cadena de instrucciones en sincronización entre sí,
cuyo método comprende las etapas de:
vigilar la existencia/no existencia de un fallo en el sistema;
vigilar un estado de acceso al bus externo de cada uno de dichos procesadores de cada uno de dichos módulos informáticos (100, 200, 300);
cuando se detecta una disconformidad en un estado de acceso al bus externo de cada uno de dichos procesadores de cada uno de dichos módulos informáticos (100, 200, 300), si no se detecta fallo, generar una interrupción para notificar el resultado de la detección a todos los citados procesadores, y
después de ejecutar el ajuste de retardo para hacer que un estado de ejecución de instrucción sea coincidente entre dichos módulos informáticos (100, 200, 300), generar una señal de reposición para ejecutar el proceso de reanudar la operación en sincronización de todos los mencionados módulos informáticos (100, 200, 300),
cada uno de todos los citados procesadores que haya recibido dicha interrupción, cambiar a un modo de gestión de procesador para el proceso de resincronización en el que un contador de número de instrucciones que sirve para contar el número de instrucciones ejecutadas en el procesador tiene un fallo de funcionamiento;
cada uno de dichos procesadores, comparar su propio valor leído de contador de número de instrucciones con un valor de contador de número de instrucciones recibido de cada procesador de otros módulos informáticos (100, 200, 300);
dicho módulo informático (100, 200, 300), que no incluye el contador de número de instrucciones que indica el valor máximo entre todos los contadores, ejecutar el ajuste de retardo mediante la ejecución de instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones y cuando los valores coinciden, envía una notificación al módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, y
dicho módulo informático (100, 200, 300), que incluye el contador de número de instrucciones que indica el valor máximo, esperar a recibir una notificación de todos los otros módulos informáticos (100, 200, 300) y, cuando recibe todas las notificaciones, generar una señal de reposición para causar que todos los módulos informáticos (100, 200, 300) reanuden la operación en sincronización entre sí.
8. El método de resincronización según se ha reivindicado en la reivindicación 7, en el que
en el ajuste de retardo en el que dicho módulo informático (100, 200, 300) cuyo valor mencionado de contador de número de instrucciones no es el máximo, ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones, el procesador de dicho módulo informático se configura a un modo de ejecución escalonado para cambiar a dicho modo de gestión de procesador después de ejecutar una instrucción, y
dicho procesador repite el proceso del modo de ejecución escalonado hasta que el valor del contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones.
9. El método de resincronización según se ha reivindicado en la reivindicación 7, en el que
en dicho modo de gestión de procesador para el proceso de resincronización, cada uno de todos los citados procesadores que haya recibido dicha interrupción guarda y almacena un valor de contador de programa,
cada uno de dichos procesadores lee el valor de contador de número de instrucciones de cada procesador y dicho valor guardado de contador de programa y transmite los valores a todos los otros módulos informáticos mencionados (100, 200, 300).
10. El método de resincronización según se ha reivindicado en la reivindicación 9, en el que
en el ajuste de retardo en el que dicho módulo informático (100, 200, 300) cuyo valor mencionado de contador de número de instrucciones no es el máximo, ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones;
el procesador de dicho módulo informático se configura a un modo de ejecución de designación de punto de ruptura para cambiar a dicho modo de gestión de procesador después de ejecutar hasta una instrucción en una posición específica de una cadena de instrucciones designada;
como dicha posición específica en la cadena de instrucciones, se designa una posición de instrucción indicada por el valor de contador de programa recibido de dicho módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, y
después de ejecutar la cadena de instrucciones hasta dicha posición específica de una cadena de instrucciones designada que es la misma posición de la cadena de instrucciones que la del módulo informático con el contador de número de instrucciones del valor máximo, dicho procesador se cambia al modo de gestión de procesador.
11. El método de resincronización según se ha reivindicado en la reivindicación 7, en el que
después de leer un estado de ejecución de programa, dicho módulo informático (100, 200, 300), que incluye el contador de número de instrucciones que indica el valor máximo, espera dicha notificación de otros módulos informáticos (100, 200, 300);
después de ejecutar el proceso de ajuste de retardo, todos los otros módulos informáticos (100, 200, 300), que no incluyen el contador de número de instrucciones que indica el valor máximo, leen un estado de ejecución de programa y transmiten el estado de ejecución de programa junto con una notificación de terminación del proceso de ajuste de retardo al módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, y
el módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo compara los estados de ejecución de programa de todos los módulos informáticos (100, 200, 300) y cuando todos coinciden entre sí, da una instrucción de generación de la señal de reposición para reanudar la operación de sincronización y cuando se detecta un módulo informático (100, 200, 300) cuyo estado de ejecución de programa no es coincidente, da una instrucción sobre la generación de la señal de reposición para reanudar la operación en sincronización después de ejecutar el proceso de corte e invalidación del módulo informático (100, 200, 300) cuyo estado de ejecución de programa no coincide.
12. Un programa de resincronización para ejecutar un proceso de resincronización de un sistema de ordenador tolerante a fallos con sincronismo de funcionamiento al unísono que incluye una pluralidad de módulos informáticos (100, 200, 300) que tienen un procesador (101, 102, 201, 202, 301, 302) y una memoria (104, 204, 304) en el que cada módulo informático (100, 200, 300) procesa la misma cadena de instrucciones en sincronización de reloj entre sí, cuyo programa comprende las funciones de:
vigilar la existencia/no existencia de un fallo en el sistema;
vigilar un estado de acceso al bus externo de cada procesador en cada uno de dichos módulos informáticos (100, 200, 300);
cuando se detecta una disconformidad en un estado de acceso al bus externo de cada uno de dichos procesadores de cada uno de dichos módulos informáticos (100, 200, 300), si no se detecta fallo en dicha vigilancia de fallos, generar una interrupción para notificar el resultado de la detección a cada uno de dichos procesadores; y
generar una señal de reposición para reanudar la operación en sincronización de todos los módulos informáticos mencionados (100, 200, 300) después de ejecutar el ajuste de retardo para hacer que un estado de ejecución de instrucción sea coincidente entre dichos módulos informáticos (100, 200, 300),
y que comprende además
la función de, cuando cada uno de todos los citados procesadores haya recibido dicha interrupción, cambiar a un modo de gestión de procesador para realizar un proceso de resincronización en el que un contador de número de instrucciones que sirve para contar el número de instrucciones ejecutadas en el procesador tiene un fallo de funcionamiento;
la función de que cada uno de dichos procesadores compare su propio valor leído de contador de número de instrucciones con un valor de contador de número de instrucciones recibido de cada procesador de otros módulos informáticos (100, 200, 300);
la función de que, dicho módulo informático (100, 200, 300), que no incluye el contador de número de instrucciones que indica el valor máximo entre todos los contadores, ejecute el ajuste de retardo de instrucciones de ejecución hasta que el valor del contador de número de instrucciones coincida con el valor máximo de contador de número de instrucciones y cuando los valores coincidan, enviar una notificación al módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, y
la función de que dicho módulo informático (100, 200,300), que incluye el contador de número de instrucciones que indica el valor máximo, espere a recibir una notificación de todos los otros módulos informáticos (100, 200, 300) y cuando haya recibido todas las notificaciones, da una instrucción de la generación de la señal de reposición para causar que todos los módulos informáticos (100, 200, 300) reanuden la operación en sincronización.
13. El programa de resincronización según se ha reivindicado en la reivindicación 12, que comprende
en el ajuste de retardo en el que dicho módulo informático (100, 200, 300) cuyo valor de contador de número de instrucciones no es el máximo ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones; la función de configurar dicho procesador a un modo de ejecución escalonadopara cambiar a dicho modo de gestión de procesador después de ejecutar una instrucción, y
la función de que dicho procesador repita el proceso del modo de ejecución escalonado hasta que el valor de contador de número de instrucciones coincida con el valor máximo de contador de número de instrucciones.
14. El programa de resincronización según se ha reivindicado en la reivindicación 12, que comprende:
en dicho modo de gestión de procesador para el proceso de resincronización, la función de que cada uno de todos los procesadores mencionados que haya recibido dicha interrupción guarde y almacene un valor de contador de programa,
la función de que cada uno de dichos procesadores lea el valor de contador de número de instrucciones de cada procesador y dicho valor guardado de contador de programa y transmita los valores a todos los otros módulos informáticos mencionados (100, 200, 300).
15. El programa de resincronización según se ha reivindicado en laa reivindicación 14, que comprende
en el ajuste de retardo en el que dicho módulo informático (100, 200, 300) cuyo mencionado valor de contador de número de instrucciones no es el máximo ejecuta instrucciones hasta que el valor de contador de número de instrucciones coincide con el valor máximo de contador de número de instrucciones,
la función de configurar el procesador de dicho módulo informático en un modo de ejecución de designación de punto de ruptura para cambiar a dicho modo de gestión de procesador después de ejecutar dicho procesador hasta una instrucción en una posición específica de una cadena de instrucciones designada,
la función de, como dicha posición específica en la cadena de instrucciones, designar una posición de instrucción indicada por el valor de contador de programa recibido de dicho módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, y
la función de cambiar dicho procesador al modo de gestión de procesador después que dicho procesador ejecuta la cadena de instrucciones hasta dicha posición específica de una cadena de instrucciones designada que es la misma posición en la cadena de instrucciones que la del módulo informático con el contador de número de instrucciones del valor máximo.
16. El programa de resincronización según se ha reivindicado en la reivindicación 12, que comprende:
la función de que dicho módulo informático (100, 200, 300), que incluye el contador de número de instrucciones que indica el valor máximo, espere dicha notificación de los otros módulos informáticos (100, 200, 300) después de leer un estado de ejecución de programa,
la función de que, todos los otros módulos informáticos (100, 200, 300) que no incluyan el contador de número de instrucciones que indica el valor máximo, lean un estado de ejecución de programa, y transmitan el estado de ejecución de programa junto con una notificación de terminación del proceso de ajuste de retardo al módulo informático (100, 200, 300) que incluya el contador de número de instrucciones que indica el valor máximo después de ejecutar el proceso de ajuste de retardo, y
la función de que el módulo informático (100, 200, 300) que incluye el contador de número de instrucciones que indica el valor máximo, compare los estados de ejecución de programa de todos los módulos informáticos (100, 200, 300) y cuando todos coincidan entre sí, dé una instrucción de la generación de la señal de reposición para reanudar la operación en sincronización y, cuando se detecta un módulo informático (100, 200, 300) cuyo estado de programa de ejecución no es coincidente, dé una instrucción de generación de la señal de reposición para reanudar la operación en sincronización después de ejecutar el proceso de cortar e invalidar el módulo informático (100, 200, 300) cuyo estado de ejecución de programa no coincide.
ES03015797T 2002-07-12 2003-07-10 Sistema de ordenador tolerante a fallos, metodo de resincronizacion para el mismo y programa de resincronizacion para el mismo. Expired - Lifetime ES2248686T3 (es)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
ES2248686T3 true ES2248686T3 (es) 2006-03-16

Family

ID=38834973

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03015797T Expired - Lifetime ES2248686T3 (es) 2002-07-12 2003-07-10 Sistema de ordenador tolerante a fallos, metodo de resincronizacion para el mismo y programa de resincronizacion para el mismo.

Country Status (9)

Country Link
US (1) US7107484B2 (es)
EP (1) EP1380953B1 (es)
JP (1) JP2004046599A (es)
KR (1) KR100566338B1 (es)
CN (1) CN1521625A (es)
AU (1) AU2003208129A1 (es)
DE (1) DE60302184T2 (es)
ES (1) ES2248686T3 (es)
TW (1) TWI229791B (es)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155721B2 (en) * 2002-06-28 2006-12-26 Hewlett-Packard Development Company, L.P. Method and apparatus for communicating information between lock stepped processors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
DE102004032405A1 (de) * 2004-07-03 2006-02-09 Diehl Bgt Defence Gmbh & Co. Kg Weltraum-taugliche Rechnerarchitektur
US7669027B2 (en) * 2004-08-19 2010-02-23 Micron Technology, Inc. Memory command delay balancing in a daisy-chained memory topology
US7308566B2 (en) * 2004-10-25 2007-12-11 Hewlett-Packard Development Company, L.P. System and method for configuring lockstep mode of a processor module
US20060107116A1 (en) * 2004-10-25 2006-05-18 Michaelis Scott L System and method for reestablishing lockstep for a processor module for which loss of lockstep is detected
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
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
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
DE502005006442D1 (de) * 2004-10-25 2009-02-26 Bosch Gmbh Robert Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
US7356733B2 (en) * 2004-10-25 2008-04-08 Hewlett-Packard Development Company, L.P. System and method for system firmware causing an operating system to idle a 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
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
US7366948B2 (en) * 2004-10-25 2008-04-29 Hewlett-Packard Development Company, L.P. System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
JP4182486B2 (ja) * 2004-12-20 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータ・リセット方法及びそのシステム
JP4117684B2 (ja) * 2004-12-20 2008-07-16 日本電気株式会社 フォルトトレラント・二重化コンピュータシステムとその制御方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
US8826288B2 (en) * 2005-04-19 2014-09-02 Hewlett-Packard Development Company, L.P. Computing with both lock-step and free-step processor modes
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
US7730350B2 (en) * 2005-04-28 2010-06-01 Hewlett-Packard Development Company, L.P. Method and system of determining the execution point of programs executed in lock step
US7549082B2 (en) * 2005-04-28 2009-06-16 Hewlett-Packard Development Company, L.P. Method and system of bringing processors to the same computational point
US7426614B2 (en) * 2005-04-28 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system of executing duplicate copies of a program in lock step
US8103861B2 (en) * 2005-04-28 2012-01-24 Hewlett-Packard Development Company, L.P. Method and system for presenting an interrupt request to processors executing in lock step
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
CA2614330A1 (en) * 2005-07-05 2007-01-11 Viasat, Inc. Synchronized high-assurance circuits
US7802075B2 (en) * 2005-07-05 2010-09-21 Viasat, Inc. Synchronized high-assurance circuits
US8190877B2 (en) * 2005-07-05 2012-05-29 Viasat, Inc. Trusted cryptographic processor
US8527741B2 (en) * 2005-07-05 2013-09-03 Viasat, Inc. System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7891012B1 (en) * 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
US7778800B2 (en) * 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
JP4822000B2 (ja) * 2006-12-12 2011-11-24 日本電気株式会社 フォールトトレラントコンピュータ
FR2912526B1 (fr) * 2007-02-13 2009-04-17 Thales Sa Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante.
ATE537502T1 (de) 2007-03-29 2011-12-15 Fujitsu Ltd Informationsverarbeitungsvorrichtung und fehlerverarbeitungsverfahren
US7797575B2 (en) * 2007-04-04 2010-09-14 International Business Machines Corporation Triple voting cell processors for single event upset protection
US8296738B1 (en) 2007-08-13 2012-10-23 Nvidia Corporation Methods and systems for in-place shader debugging and performance tuning
US9035957B1 (en) 2007-08-15 2015-05-19 Nvidia Corporation Pipeline debug statistics system and method
US7765500B2 (en) * 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
US8004962B2 (en) * 2007-12-24 2011-08-23 At&T Intellectual Property I, L.P. Method and system of addressing a problem associated with a network including a video access ready device
JP5206009B2 (ja) * 2008-02-18 2013-06-12 日本電気株式会社 フォルトトレラントコンピュータ、同期制御方法、及びプログラム
JP5181762B2 (ja) * 2008-03-25 2013-04-10 富士通株式会社 分散処理を実行する演算装置とサーバおよび分散処理方法
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
JP5147586B2 (ja) * 2008-07-30 2013-02-20 株式会社日立製作所 ストレージ装置及びその制御方法
JP5347414B2 (ja) 2008-10-03 2013-11-20 富士通株式会社 同期制御装置,情報処理装置及び同期管理方法
US8090984B2 (en) * 2008-12-10 2012-01-03 Freescale Semiconductor, Inc. Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
US8171328B2 (en) * 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
DE102009000045A1 (de) * 2009-01-07 2010-07-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Steuergerätes
JP5604799B2 (ja) * 2009-03-06 2014-10-15 日本電気株式会社 フォールトトレラントコンピュータ
JP5278530B2 (ja) * 2009-03-09 2013-09-04 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
CN101859330B (zh) * 2009-04-09 2012-11-21 辉达公司 验证集成电路效能模型的方法
US7979746B2 (en) * 2009-04-27 2011-07-12 Honeywell International Inc. Dual-dual lockstep processor assemblies and modules
JP4911372B2 (ja) * 2009-10-06 2012-04-04 日本電気株式会社 Cpu再リセットを伴うcpu再初期化時におけるタイムアウト防止方法、その装置及びそのプログラム
JP2011090553A (ja) * 2009-10-23 2011-05-06 Nec System Technologies Ltd 情報処理装置、同期制御方法およびプログラム
JP5174784B2 (ja) * 2009-11-06 2013-04-03 株式会社日立製作所 処理装置、処理制御システム、およびその制御方法
US8392750B2 (en) * 2010-02-16 2013-03-05 Hewlett-Packard Development Company, L.P. Method and apparatus for crash recovery and resynchronization
WO2011117155A1 (de) 2010-03-23 2011-09-29 Continental Teves Ag & Co. Ohg Redundante zwei-prozessor-steuerung und steuerungsverfahren
CN102822807B (zh) 2010-03-23 2015-09-02 大陆-特韦斯贸易合伙股份公司及两合公司 控制计算机系统及其控制方法和使用
US8499193B2 (en) * 2010-07-30 2013-07-30 Honeywell International Inc. Integrated dissimilar high integrity processing
CN102231125B (zh) * 2011-05-16 2013-02-27 铁道部运输局 临时限速服务器的安全通信机平台
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
JP6098778B2 (ja) * 2012-03-29 2017-03-22 日本電気株式会社 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
JP6069951B2 (ja) * 2012-08-23 2017-02-01 日本電気株式会社 フォールトトレラントコンピュータシステム、フォールトトレラントコンピュータシステムの起動方法およびフォールトトレラントコンピュータシステムの起動プログラム
US9342358B2 (en) * 2012-09-14 2016-05-17 General Electric Company System and method for synchronizing processor instruction execution
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
JP5700009B2 (ja) 2012-09-18 2015-04-15 横河電機株式会社 フォールトトレラントシステム
US9519568B2 (en) 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
JP6337676B2 (ja) * 2014-07-29 2018-06-06 富士通株式会社 情報処理システム及び方法
CN104484299B (zh) * 2014-12-05 2017-12-22 中国航空工业集团公司第六三一研究所 一种松耦合的Lockstep处理器系统
WO2016132432A1 (ja) * 2015-02-16 2016-08-25 三菱電機株式会社 プロセッサ及びマイクロコンピュータ
TWI571712B (zh) * 2015-10-29 2017-02-21 行政院原子能委員會核能研究所 多重容錯控制系統及其同步方法
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置
US11132268B2 (en) * 2019-10-21 2021-09-28 The Boeing Company System and method for synchronizing communications between a plurality of processors
FR3108993A1 (fr) * 2020-04-07 2021-10-08 Airbus Operations Procédé et système de synchronisation d’unités de calcul d’un aéronef.
CN112291029B (zh) * 2020-11-02 2024-05-28 温州大学 一种系统同步方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3235762A1 (de) 1982-09-28 1984-03-29 Fried. Krupp Gmbh, 4300 Essen Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen
US5020024A (en) * 1987-01-16 1991-05-28 Stratus Computer, Inc. Method and apparatus for detecting selected absence of digital logic synchronism
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
JPH04247531A (ja) 1991-02-04 1992-09-03 Fujitsu Ltd 障害検出方式
DE4104114C2 (de) 1991-02-11 2000-06-08 Siemens Ag Redundantes Datenverarbeitungssystem
WO1995015529A1 (en) 1993-12-01 1995-06-08 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
JPH10326199A (ja) 1997-05-27 1998-12-08 Yaskawa Electric Corp デュアルシステムにおける割込同期装置
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
US6289022B1 (en) * 1997-10-21 2001-09-11 The Foxboro Company Methods and systems for fault-tolerant data transmission
JP2001523855A (ja) * 1997-11-14 2001-11-27 マラソン テクノロジーズ コーポレイション 故障回復/耐故障計算機
US6247143B1 (en) * 1998-06-30 2001-06-12 Sun Microsystems, Inc. I/O handling for a multiprocessor computer system
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
US6779128B1 (en) * 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
IES20010397A2 (en) * 2000-07-06 2002-02-06 Richmount Computers Ltd Performance monitoring in a storage enclosure
JP2002049501A (ja) 2000-08-04 2002-02-15 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法
US20030163769A1 (en) * 2002-02-27 2003-08-28 Sun Microsystems, Inc. Memory module including an error detection mechanism for address and control signals
US6931568B2 (en) * 2002-03-29 2005-08-16 International Business Machines Corporation Fail-over control in a computer system having redundant service processors
US6948091B2 (en) * 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures
JP2004046455A (ja) * 2002-07-10 2004-02-12 Nec Corp 情報処理装置

Also Published As

Publication number Publication date
EP1380953B1 (en) 2005-11-09
AU2003208129A1 (en) 2004-01-29
DE60302184D1 (de) 2005-12-15
KR20040007338A (ko) 2004-01-24
JP2004046599A (ja) 2004-02-12
TWI229791B (en) 2005-03-21
KR100566338B1 (ko) 2006-03-31
US7107484B2 (en) 2006-09-12
DE60302184T2 (de) 2006-08-03
TW200401186A (en) 2004-01-16
US20040153857A1 (en) 2004-08-05
EP1380953A1 (en) 2004-01-14
CN1521625A (zh) 2004-08-18

Similar Documents

Publication Publication Date Title
ES2248686T3 (es) Sistema de ordenador tolerante a fallos, metodo de resincronizacion para el mismo y programa de resincronizacion para el mismo.
ES2247459T3 (es) Sistema de computadores tolerante a fallos, metodo para la resincronizacion del mismo y programa para su resincronizacion.
US9594646B2 (en) Reestablishing synchronization in a memory system
US9318171B2 (en) Dual asynchronous and synchronous memory system
US9594647B2 (en) Synchronization and order detection in a memory system
US8832324B1 (en) First-in-first-out queue-based command spreading
US9037811B2 (en) Tagging in memory control unit (MCU)
CN110825555B (zh) 具有主机隔离的非易失性存储器交换机
US9146864B2 (en) Address mapping including generic bits for universal addressing independent of memory type
US9136987B2 (en) Replay suspension in a memory system
US20030182594A1 (en) Fault tolerant computer system
CA2022260A1 (en) Method of handling errors in software
US9092330B2 (en) Early data delivery prior to error detection completion
ES2199527T3 (es) Sistema de tratamiento de datos pseudo lockstep.
US10746792B1 (en) Debug mechanisms for a processor circuit
US7590885B2 (en) Method and system of copying memory from a source processor to a target processor by duplicating memory writes
BRPI0813077B1 (pt) sistema de módulo de processamento de computador
CA2435001C (en) Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
JP2013257640A (ja) コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム
US20060184840A1 (en) Using timebase register for system checkstop in clock running environment in a distributed nodal environment
CN114416436B (zh) 基于SoC芯片面向单粒子翻转效应的可靠性方法
Horauer et al. An FPGA based SoC design for testing embedded automotive communication systems employing the flexray protocol
US20200259506A1 (en) Error trapping in memory structures
CN121284199A (zh) 一种数据传输异常处理方法及系统
JP2015201814A (ja) プログラマブルゲートアレイ及び電子装置