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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1691—Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1679—Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1687—Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1044—Adding 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
- G06F11/184—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
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.
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).
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.
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.
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.
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.
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)
| 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)
| 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 | 情報処理装置 |
-
2002
- 2002-07-12 JP JP2002204167A patent/JP2004046599A/ja active Pending
-
2003
- 2003-07-01 TW TW92117918A patent/TWI229791B/zh not_active IP Right Cessation
- 2003-07-04 AU AU2003208129A patent/AU2003208129A1/en not_active Abandoned
- 2003-07-08 US US10/614,150 patent/US7107484B2/en not_active Expired - Fee Related
- 2003-07-10 DE DE2003602184 patent/DE60302184T2/de not_active Expired - Fee Related
- 2003-07-10 EP EP20030015797 patent/EP1380953B1/en not_active Expired - Lifetime
- 2003-07-10 ES ES03015797T patent/ES2248686T3/es not_active Expired - Lifetime
- 2003-07-11 KR KR20030047289A patent/KR100566338B1/ko not_active Expired - Fee Related
- 2003-07-11 CN CNA031474632A patent/CN1521625A/zh active Pending
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) | プログラマブルゲートアレイ及び電子装置 |