ES2264749T3 - Sincronizacion del procesamiento de datos en unidades de procesamiento de datos redundantes de un sistema de procesamiento de datos. - Google Patents
Sincronizacion del procesamiento de datos en unidades de procesamiento de datos redundantes de un sistema de procesamiento de datos.Info
- Publication number
- ES2264749T3 ES2264749T3 ES03023526T ES03023526T ES2264749T3 ES 2264749 T3 ES2264749 T3 ES 2264749T3 ES 03023526 T ES03023526 T ES 03023526T ES 03023526 T ES03023526 T ES 03023526T ES 2264749 T3 ES2264749 T3 ES 2264749T3
- Authority
- ES
- Spain
- Prior art keywords
- unit
- data processing
- synchronization
- data
- units
- 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/14—Error detection or correction of the data by redundancy in operations
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- 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/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Método para la sincronización del procesamiento de datos en al menos dos unidades de procesamiento de datos redundantes (1a, 1b) de un sistema de procesamiento de datos (2), en el que los datos (D) se procesan en la unidad de procesamiento de datos correspondiente (1a, 1b) paralelamente mediante uno o varias unidades de ejecución (1-1a/1b hasta n-1a/1b), con una unidad de sincronización (S1-1a/1b hasta Sn-1a/1b) asignada a varias unidades de ejecución (1-1a/1b hasta n-1a/1b) que acceden a los mismos datos (D), dicha unidad de sincronización está dividida en una zona de sincronización (B) y una zona de memoria común (C), con lo que, en una de las unidades de procesamiento de datos (1a, 1b), se accede a los datos (D) mediante una de las unidades de ejecución (1-1a/1b bis n-1a/1b) en la zona de memoria común (C) de manera que, antes del acceso de la unidad de ejecución en cuestión (1-1a/1b hasta n-1a/1b) a la zona de memoria común (C), se envía, mediante la unidad de sincronización correspondiente (S1-1a/1b bis Sn-1a/1b) en la zona de sincronización (B), una petición de confirmación de acceso (ZB) a la unidad de sincronización correspondiente (S1-1a/1b hasta Sn-1a/1b) de la otra unidad de procesamiento de datos (1a, 1b), caracterizado porque, mediante una comparación de un número de identificación (I) que representa la unidad de ejecución solicitada (1- 1a/1b hasta n-1a/1b) con el número de identificación (I) de la unidad de ejecución recibida (1-1a/1b hasta n- 1a/1b) de la otra unidad de procesamiento de datos (1a, 1b), se autoriza o se bloquea el acceso.
Description
Sincronización del procesamiento de datos en
unidades de procesamiento de datos redundantes de un sistema de
procesamiento de datos.
La presente invención trata de un proceso para
la sincronización del procesamiento de datos en al menos dos
unidades de procesamiento de datos redundantes de un sistema de
procesamiento de datos y un sistema de procesamiento de datos con
numerosas unidades de procesamiento de datos que están conectadas
mediante una unidad de transmisión de datos, por ejemplo, un
control con memoria programable para automatizar una instalación
técnica, especialmente de una máquina, de una instalación de central
eléctrica o fábrica.
Las instalaciones de procesamiento de datos
tienen usos muy distintos en el marco de los procesos de
automatización industriales. En las instalaciones técnicas
complejas, se conectan la mayoría de unidades de procesamiento de
datos a costosas redes de datos e informáticas mediante al menos una
unidad de transmisión de datos. Para aumentar la disponibilidad del
sistema de procesamiento de datos se ejecutan de manera redundante
las unidades de procesamiento de datos y/o las unidades de
transmisión de datos. Con la denominada redundancia del sistema,
aumenta la disponibilidad del sistema completo de procesamiento de
datos al ejecutar de manera redundante las unidades de
procesamiento de datos y otros componentes especialmente relevantes
para la seguridad como, por ejemplo, los sistemas de control
descentrales, las impresoras. En este caso, los sistemas de
automatización corrientes con una estructura de hardware
convencional no pueden satisfacer las altas exigencias de
disponibilidad. Por este motivo, se utilizan los sistemas de
procesamiento de datos o de automatización con disponibilidad
especialmente alta, los cuales comprenden normalmente dos unidades
de procesamiento de datos con hardware y software idénticos para el
procesamiento paralelo de las mismas tareas de automatización. Si se
interrumpe una de las dos unidades de procesamiento de datos, la
segunda unidad de procesamiento de datos puede continuar la tarea de
automatización.
Esto requiere que las dos unidades de
procesamiento de datos muestren en cualquier momento el mismo estado
de procesamiento. Para ello se sincronizaron normalmente las dos
unidades de procesamiento de datos.
Se explica detalladamente, como se representa en
la figura 1, la sincronización de dos unidades de procesamiento de
datos 1a y 1b de un sistema de procesamiento de datos diseñados de
forma redundante 2 mediante un diagrama de operaciones. Las dos
unidades de procesamiento de datos 1a y 1b están conectadas mediante
una unidad de transmisión de datos 3, especialmente para la
conexión de sincronización. Para el control de una instalación
técnica, en las dos unidades de procesamiento de datos se llevan a
cabo unidades de ejecución idénticas 1-1a hasta
n-1a ó 1-1b hasta
n-1b. Por ejemplo, para la unidad de procesamiento
de datos 1a se activa un ciclo de sincronización
Z-1a (también llamado ISR = Interrupt Service
Routine) mediante un software de aplicación o una unidad de
ejecución 3-1a (también llamada tarea) utilizando
una alarma asincrónica A1. En el ciclo de sincronización
Z-1a de la unidad de procesamiento de datos
solicitada 1a, se determina primero su estado de procesamiento
V-1a mediante la unidad de ejecución
3-1a activada en ese momento. Por ejemplo, la unidad
de ejecución 3-1a se determina mediante el número
de órdenes realizadas a través de un contador de órdenes de
hardware. El estado de procesamiento actual V-1a de
la unidad de procesamiento de datos 1a se transmite a través de una
unidad de transmisión de datos 3 a la unidad de procesamiento de
datos redundante o correspondiente 1b. Mediante el estado de
procesamiento V-1a transmitido por el ciclo de
sincronización Z-1a, se activa ahora un ciclo de
sincronización Z-1b mediante una alarma A2 en la
unidad de procesamiento de datos 1b. Mediante el ciclo de
sincronización Z-1b correspondiente, se determina
ahora el estado de procesamiento V-1b, es decir, la
unidad de ejecución 7-1b, de la unidad de
procesamiento de datos 1b.
Además, se determina, mediante el ciclo de
sincronización Z-1b, una unidad de ejecución
posterior 8-1a y 8-1b basada en dos
unidades de procesamiento de datos 1a y 1b y se define para la
sincronización como el llamado punto de retorno. En esto se
transmite el estado de procesamiento actual V-1b de
la unidad de procesamiento de datos recibida 1b mediante la unidad
de ejecución actual 7-1b y el punto de retorno, es
decir, la próxima unidad de ejecución común 8-1a y
8-1b, a la unidad de procesamiento de datos
solicitada. Si las dos unidades de procesamiento de datos 1a y 1b
alcanzaron el paso de procesamiento o la unidad de ejecución
8-1a o 8-1b, se activa
sincrónicamente una alarma A3 también llamada interrupción de
retorno.
Al saltar la alarma A3, las dos unidades de
procesamiento de datos 1a y 1b se encuentran en la misma unidad de
ejecución 8-1a ó 8-1b. Si al saltar
la alarma A3 los datos D de la unidad de procesamiento de datos 1b
deben transmitirse a la unidad de procesamiento de datos 1a o
viceversa, éstos deberán transmitirse ahora. Además, las tareas
necesarias para el procesamiento de la alarma A3 en las dos unidades
de procesamiento de datos 1a y 1b se llevan a cabo en el ciclo de
sincronización Z-1a, Z-1b mediante
una gestión de sistema. Por último, la unidad de ejecución activada
anteriormente 8-1a ó 8-1b se ejecuta
y/o se termina en las dos unidades de procesamiento de datos 1a y
1b en el mismo estado de procesamiento V. Así los datos D
introducidos en el sistema de procesamiento de datos 2 se procesan
de nuevo en las dos unidades de procesamiento de datos 1a y 1b del
mismo modo, es decir, las dos unidades de procesamiento de datos 1a
y 1b están sincroniza-
das.
das.
En este caso, resulta una desventaja que este
tipo de proceso de sincronización ocasione inconsistencia en los
datos debido a la dependencia del sistema y de la aplicación y por
las diferencias en el tiempo de ejecución o el distinto orden de
las unidades de ejecución. Por ejemplo, al acceder a las zonas de
memoria utilizadas en común de las dos unidades de procesamiento de
datos en un orden distinto, puede producirse a través de las
unidades de ejecución correspondientes que las dos unidades de
ejecución modifiquen la misma zona de datos, especialmente su
contenido, de manera que las unidades de procesamiento de datos
muestren distintos estados de procesamiento. Por lo tanto, ya no se
garantiza la exigencia, en un sistema de procesamiento de datos de
alta disponibilidad, de que las dos unidades de procesamiento de
datos deban tener el mismo estado en cualquier momento.
La US 2002/0010880 A1 describe un sistema
informático de multiprocesador tolerante a fallos que muestra un
número de unidades de procesamiento. Al menos una de las unidades de
procesamiento puede funcionar asincrónicamente a una segunda unidad
de procesamiento. Está conectado un monitor para recibir señales de
salida de las unidades de procesamiento e identificar las
operaciones erróneas de estas unidades. Asimismo el monitor puede
utilizarse para sincronizar el funcionamiento de las unidades de
procesamiento identificando la recepción de señales de salida de
unidades de procesamiento en las demás unidades de procesamiento. El
monitor tampona las señales de salida de las unidades de
procesamiento y transmite de manera selectiva estas señales a un bus
externo. Aquí la unidad de procesamiento puede presentar uno o
varios procesadores.
Por tanto, la función de la presente invención
se basa en proporcionar un método para la sincronización del
procesamiento de datos de al menos dos unidades de procesamiento de
datos redundantes de un sistema de procesamiento de datos, en el
que la sincronización de las unidades de procesamiento de datos
tiene lugar sin que influya el proceso del procesamiento de
datos.
La función se soluciona según la invención
mediante un proceso para la sincronización del procesamiento de
datos en al menos dos unidades de procesamiento de datos redundantes
de un sistema de procesamiento de datos, en el que los datos se
procesan en la unidad de procesamiento de datos correspondiente
paralelamente mediante uno o varias unidades de ejecución, con una
unidad de sincronización asignada a varias unidades de ejecución
que acceden a los mismos datos, dicha unidad de sincronización está
dividida en una zona de sincronización y una zona de memoria común,
con lo que, en una de las unidades de procesamiento de datos, se
accede a los datos mediante una de las unidades de ejecución en la
zona de memoria común de manera que, antes del acceso de la unidad
de ejecución en cuestión a la zona de memoria común, se envía,
mediante la unidad de sincronización correspondiente en la zona de
sincronización, una petición de confirmación de acceso a la unidad
de sincronización correspondiente de la otra unidad de
procesamiento de datos, con lo que mediante una comparación de un
número de identificación que representa la unidad de ejecución
solicitada con el número de identificación de la unidad de
ejecución recibida de la otra unidad de procesamiento de datos, se
autoriza o se bloquea el acceso.
La presente invención trata de la consideración
de que sólo debería llevarse a cabo una sincronización de las dos
unidades de procesamiento de datos para conseguir una consistencia
de datos lo suficientemente exacta y segura, cuando las dos
unidades de procesamiento de datos se encuentran en el mismo estado
de procesamiento. Especialmente en un sistema de procesamiento de
datos o de automatización ejecutado de manera redundante, en el que
se llevan a cabo al mismo tiempo las funciones de regulación y
control idénticas en las dos unidades de procesamiento de datos
mediante unidades de ejecución, puede producirse un acceso retardado
de unidades de ejecución a los mismos datos debido a un retraso en
el procesamiento de datos de una de las dos unidades de
procesamiento de datos. Esto provoca incompatibilidades entre las
unidades de procesamiento de datos o los dispositivos de
automatización que muestran los mismos datos. Para evitarlo, debe
controlarse y vigilarse si cada acceso de las unidades de ejecución
o tarea presentan los mismos datos en una zona de memoria común.
Para ello, se incorpora, en varias unidades de ejecución que acceden
a los mismos datos, una unidad de sincronización común que se
divide en una zona de sincronización y en una zona de memoria común
para los mismos datos. Así se incorpora una unidad de
sincronización para las unidades de ejecución correspondientes en
cada unidad de procesamiento de datos redundante. Mediante la
unidad de sincronización se identifica, utilizando un número de
identificación que representa la unidad de ejecución
correspondiente, la unidad de ejecución redundante que corresponda
de la otra unidad de procesamiento de datos y, por último, se
autoriza el acceso a los datos. Este tipo de unidad de
sincronización separada facilita un funcionamiento de sincronización
superior, es decir, aislado de las unidades de ejecución.
Para una identificación segura de las unidades
de ejecución que acceden a los mismos datos de las dos unidades de
procesamiento de datos, se envía el número de identificación de
manera controlada por el tiempo y/o un evento. Si, por ejemplo, la
unidad de procesamiento de datos solicitada según un orden definido
se encuentra en la segunda unidad de ejecución y la unidad de
procesamiento de datos solicitada se encuentra todavía en la
primera unidad de ejecución, se ejecutarán los pasos de
procesamiento que todavía no se han realizado hasta la siguiente
unidad de ejecución común, es decir, hasta una tercera unidad de
ejecución, esto significa que no se procesarán todavía ni la
primera ni la segunda unidad de ejecución de la unidad procesamiento
de datos recibida. La unidad de procesamiento de datos solicitada
se encuentra en modo de espera y envía el número de identificación
de manera cíclica, por ejemplo, cada 2 ms, hasta que se identifica
la unidad de ejecución respectiva mediante el número de
identificación correspondiente y, por tanto, se asegura el mismo
estado de procesamiento en las dos unidades de procesamiento de
datos.
Para un control de ajuste, se envía
convenientemente, después de registrar el mismo estado de
procesamiento, una petición de confirmación de acceso a la otra
unidad de procesamiento de datos y se supervisa una señal de
autorización para el acceso común a la memoria de datos. Con el fin
de implementar de la manera más fácil posible el algoritmo de
sincronización en el procesamiento de datos, se ejecuta la petición
de confirmación de acceso separada del acceso de datos mediante una
unidad de sincronización. Después de accederse a los datos,
preferiblemente se anula la petición de confirmación de acceso.
La función nombrada en segundo lugar se
soluciona según la invención mediante un sistema de procesamiento
de datos con al menos dos unidades de procesamiento de datos
redundantes que están conectadas a través de una unidad de
transmisión de datos, con lo que cada unidad de procesamiento de
datos comprende para el procesamiento de datos una o varias
unidades de ejecución a las que se asigna para el acceso a los
mismos datos una unidad de sincronización que está dividida en una
zona de sincronización y una zona de memoria común, dicha unidad de
sincronización está prevista, mediante la zona de sincronización en
el acceso de una de las unidades de ejecución a la zona de memoria
común, para enviar una petición de confirmación de acceso a la
unidad de sincronización correspondiente de la otra unidad de
procesamiento de datos, y para comparar un número de identificación
que representa la unidad de ejecución solicitada con el número de
identificación de la unidad de ejecución recibida de otra unidad de
procesamiento de datos, así como para autorizar o bloquear el acceso
en función del resultado de la comparación.
Las ventajas conseguidas con la invención
consisten especialmente en que, mediante la implantación de una
unidad de sincronización con un ciclo de petición de dos etapas para
la identificación segura del mismo estado de procesamiento de las
dos unidades de procesamiento de datos utilizando los números de
identificación que representan las unidades de ejecución es
posible, independientemente del hardware, un algoritmo de
sincronización más sencillo de transmitir al sistema operativo que
desee para sincronizar aplicaciones o unidades de ejecución
idénticas en unidades de procesamiento de datos que son dependientes
unas de otras. Por tanto, la unidad de sincronización
independientemente del sistema operativo y de hardware puede ser
utilizada tanto por aplicaciones y/o sistemas operativos como por
sus utilizaciones. Además, la unidad de sincronización también puede
emplearse en la transición de sistemas operativos para la
aplicación (= programa de usuario) sin que sea necesaria ninguna
modificación del sistema operativo. Según el tipo y
acondicionamiento de la comparación de los números de
identificación para la identificación del estado de procesamiento de
las dos unidades de procesamiento de datos, la sincronización de
unidades de ejecución (también llamadas tareas) que se llevan a cabo
sincrónica y/o asincrónicamente puede realizarse independientemente
del hardware y del servicio. En resumen, este tipo de sistema de
procesamiento de datos es especialmente económico y de eficacia
temporal con respecto a su disponibilidad, así como a su uso como
sistema de automatización en instalaciones en donde es importante la
seguridad.
Los ejemplos de aplicación de la invención se
explican detalladamente mediante las ilustraciones. Estas
muestran:
Fig 2 un esquema de un sistema de
procesamiento de datos redundante con dos
unidades de procesamiento de datos que comprenden cada una la
unidad de sincronización correspondiente y
Fig 3 un esquema de un algoritmo
para la sincronización del procesamiento de datos de
las dos unidades de procesamiento de datos del sistema de
procesamiento de datos redundante.
En las dos figuras, las partes que corresponden
una con otra están indicadas con los mismos caracteres de
referencia.
La figura 2 muestra un esquema de dos unidades
de procesamiento de datos redundantes 1a y 1b de un sistema de
procesamiento de datos 2. Las unidades de procesamiento de datos
redundantes 1a y 1b están conectadas a través de una unidad de
transmisión de datos 3. El sistema de procesamiento de datos 2 es,
por ejemplo, un sistema de control con memoria programable o un
sistema informático conectado en red. Según el tipo y la ejecución
del sistema de procesamiento de datos 2, las unidades de
procesamiento de datos 1a, 1b y/o las unidades de transmisión de
datos 3 pueden ejecutarse de manera redundante. En la figura 2, se
representa una redundancia sencilla que muestra dos unidades de
procesamiento de datos 1a, 1b diseñadas de manera redundante una con
la otra. Según las exigencias de seguridad de la instalación
técnica que debe controlarse mediante el sistema de procesamiento
de datos 2, también puede incorporarse una redundancia múltiple, por
ejemplo, una redundancia triple, y/o, además de la llamada
redundancia del sistema, también puede incorporarse una redundancia
de medios. La unidad de transmisión de datos 3 es una línea de
transmisión estándar, por ejemplo, un cable coaxial ethernet, y
muestra elementos de transmisión asimismo estándar, que no se
representan, tales como amplificadores, repetidores o puentes.
En un sistema de procesamiento de datos o de
automatización 2 ejecutado de manera redundante, un dispositivo de
automatización o la unidad de procesamiento de datos 1a funciona
adecuadamente como el llamado maestro y otro dispositivo de
automatización y la unidad de procesamiento de datos 1b, como el
llamado esclavo. Dependiendo de las funciones de regulación y/o
control idénticas que se llevan a cabo en varias unidades de
procesamiento de datos 1a, 1b de un sistema redundante, pueden
existir al mismo tiempo peticiones para acceder a los mismos datos
D de varias unidades de ejecución 1-1a hasta
4-1a ó 1-1b hasta
4-1b. En otras palabras, con el fin de regular y
controlar y de este modo automatizar una instalación técnica que
deba controlarse y/o debe regularse, por ejemplo, una fábrica, cada
unidad de procesamiento de datos 1a, 1b comprende, para el
procesamiento de datos D, una o varias unidades de ejecución
1-1a hasta n-1a ó
1-1b hasta n-1b (abreviado como
1-1a/1b hasta n-1a/1b). Las
unidades de ejecución 1-1a/1b hasta
n-1a/1b son las llamadas tareas que procesan señales
de procesamiento como elementos del sistema y/o de la aplicación de
la instalación técnica para generar señales de control de la
instalación técnica. Las unidades de ejecución
1-1a/1b hasta n-1a/1b pueden ser
distintos programas de procesamiento de datos que se asignan a un
sistema operativo y a una aplicación de usuario.
En el ejemplo según la figura 2, el programa de
procesamiento de datos correspondiente idéntico a las unidades de
procesamiento de datos 1a y 1b comprende cuatro tareas idénticas o
cuatro unidades de ejecución idénticas 1-1a hasta
4-1a y 1-1b hasta
4-1b. Para identificar qué unidad de ejecución
1-1a/1b hasta n-1a/1b se ejecuta en
qué unidad de procesamiento de datos 1a ó 1b, las unidades de
ejecución 1-1a/1b hasta n-1a/1b se
complementan con el índice 1a ó 1b que caracteriza la unidad de
procesamiento de datos correspondiente 1a ó 1b, es decir, la unidad
de procesamiento de datos 1a comprende las unidades de ejecución
1-1a hasta n-1a y la unidad de
procesamiento de datos correspondiente 1b, las unidades de ejecución
idénticas 1-1b hasta n-1b.
Para la sincronización del procesamiento de
datos de las unidades de procesamiento de datos diseñadas con
hardware y software idénticos 1a y 1b, especialmente para el acceso
de las unidades de ejecución 1-1a hasta
4-1a ó 1-1b hasta
4-1b a los mismos datos D, se asigna una unidad de
sincronización S1-1a y S1-1b ó
S2-1a y S2-1b a cada unidad de
ejecución 1-1a y 2-1a ó
1-1b y 2-1b ó3-1a y
4-1a ó 3-1b y 4-1b
correspondiente, es decir, que procesa los mismos datos D- La
unidad de sincronización respectiva S1-1a,
S2-1a y S1-1b,
S2-1b de las unidades de procesamiento de datos
redundantes 1a ó 1b está dividida en una zona de sincronización B y
una zona de memoria C para los datos D. El proceso de sincronización
realizado mediante la unidad de sincronización en cuestión
1-1a ó 2-1a y la unidad de
sincronización correspondiente 1-1b ó
2-1b del procesamiento de datos de las dos unidades
de datos redundantes 1a y 1b se describe en la figura 3.
El proceso de sincronización puede implementarse
independientemente del número de redundancias y del hardware y
software en que se basa y, por tanto, independientemente del sistema
operativo y/o de la aplicación de usuario.
Para sincronizar las dos unidades de
procesamiento de datos 1a y 1b, se asigna, en un acceso de varias
unidades de ejecución 1-1a/1b hasta
n-1a/1b, la unidad de sincronización común
S1-1a, S1-1b, S2-1a
o S2-1b a aquellas unidades de ejecución
1-1a y 2-1a ó 1-1b y
2-1b ó 3-1a y 4-1a ó
3-1b y 4-1b que acceden a la zona de
memoria común C.
En la sincronización, por ejemplo, la unidad de
ejecución correspondiente 1-1a y
2-1a ó 1-1b y 2-1b
accede a la unidad de sincronización correspondiente
S1-1a ó S1-1b. En la figura 3, se
representa un ejemplo del algoritmo de una de las unidades de
sincronización S1-1a hasta S1-1b.
Aquí el algoritmo realizado en la unidad de sincronización
S1-1a ó S1-1b es independiente de la
unidad de procesamiento de datos correspondiente 1a ó 1b y está
creada independientemente de la unidad de ejecución
1-1a, 2-1a ó 1-1b,
2-1b que accede a la unidad de sincronización
S1-1a ó S1-1b.
Para ello, se identifica mediante la unidad de
sincronización S1-1a ó S1-1b en el
primer paso S1 si se trata de una unidad maestro o de una unidad de
modo de espera (también llamada unidad esclavo) en la unidad de
procesamiento de datos solicitada 1a. Esto significa que primero se
identifica en qué unidad de procesamiento de datos 1a o 1b se lleva
a cabo la respectiva unidad de ejecución 1-1a/1b
hasta n-1a/1b (por ejemplo, la unidad de ejecución
1-1a ó 1-1b)
Según el tipo de unidad de procesamiento de
datos correspondiente identificada 1a, por ejemplo, una unidad
maestro, se comprueba en el segundo paso S2 si, por ejemplo, la
unidad de ejecución correspondiente 1-1a (también
llamada tarea 1) es la primera unidad de ejecución
1-1a hasta n-1a que accede en esta
secuencia de accesos a los datos comunes D de la unidad de
sincronización 1-1a. En el caso de que sea así, la
unidad de ejecución correspondiente 1-1a envía
primero en el paso S3 el número de identificación correspondiente I
a la unidad de ejecución 1-1b correspondiente,
especialmente interlocutora, de la otra unidad de procesamiento de
datos 1b (= unidad de modo de espera).
El número de identificación I (también llamado
ID de tarea) es un identificador exclusivo que representa cada
unidad de ejecución 1-1a/1b hasta
n-1a/1b, donde las unidades de ejecución que
correspondan preferiblemente 1-1a y
1-1b ó 2-1a y 2-1b,
etc., muestran números de identificación idénticos. En otras
palabras, los números de identificación idénticos I se asignan a
las unidades de ejecución 1-1a y
1-1b que deban sincronizarse de las dos unidades de
procesamiento de datos. Como alternativa, en lugar de esta
asignación en pares de números de identificación I a las unidades
de ejecución correspondientes 1-1a y
1-1b, se lleva a cabo una asignación adicional
mediante un identificador exclusivo. Durante el procesamiento de la
función de sincronización mediante la unidad de sincronización
S1-1a, los accesos de otras unidades de ejecución,
por ejemplo, 3-1a ó 4-1a se
trasladan a un llamado estado de espera.
En el cuarto paso S4, la unidad de
sincronización S1-1a envía una petición de
confirmación de acceso ZB a la unidad de sincronización
correspondiente S1-1b de la otra unidad de
procesamiento de datos 1b (= unidad de modo de espera). En el
quinto paso S5, la unidad de sincronización S1-1a
espera la recepción de la petición de confirmación de acceso ZB.
Según el tipo y la ejecución del proceso de
sincronización, se accede paralelamente o de forma retardada a la
unidad de sincronización S1-1b correspondiente en la
unidad de procesamiento de datos correspondiente
1-1b (= unidad de modo de espera). En esto no se
asegura que el acceso a la unidad de sincronización
S1-1b se lleve a cabo a través de la unidad de
ejecución correspondiente 1-1b. Con el fin de
sincronizar las dos unidades de procesamiento de datos 1a y 1b, se
identifica primero en el paso S6 si éste es el primer acceso en la
secuencia de accesos. Si se trata del primer acceso en esta
secuencia de accesos, la unidad de sincronización
S1-1b espera en el paso S7 a la recepción del
número de identificación I de la unidad de ejecución
1-1a de la unidad maestro o unidad de procesamiento
de datos 1a. Después de recibir el número de identificación I o en
el siguiente acceso más próximo de la secuencia de accesos, en el
paso S8 se compara el número de identificación I de la unidad de
ejecución 1-1b a la que se accede con el número de
identificación I recibido o recibido anteriormente de la unidad de
ejecución correspondiente 1-1a. En el caso de que
los números de identificación I sean iguales, se efectúan también,
analógicamente a los pasos S3 a S5 de la unidad de sincronización
S1-1a de la unidad maestro, estos pasos S3 a S5 de
la unidad de unidad de sincronización S1-1b de la
unidad de modo de espera.
Después de recibir la petición de confirmación
de acceso ZB a través de la unidad de procesamiento de datos 1a o a
través de la unidad de procesamiento de datos correspondiente 1b,
mediante la unidad de ejecución respectiva 1-1a ó
1-1b se lleva a cabo en el paso S9 el acceso a la
zona de memoria común C.
En el caso de que no coincidan los dos números
de identificación I, la unidad de ejecución 3-1b
hasta n-1b que accede a la unidad de modo de espera
o a la unidad de procesamiento de datos 1b se traslada en el paso
S10 al estado de espera. Esto significa que el procesamiento de
datos se detiene e interrumpe a través de la unidad de ejecución
correspondiente 3-1b hasta n-1b en
la unidad de procesamiento de datos 1b. Por tanto, otra unidad de
ejecución 1-1b hasta 2-1b puede
acceder en el paso S11 a la unidad de sincronización
S1-1b. Aquí puede determinarse previamente la
próxima unidad de ejecución 1-1b hasta
n-1b, por ejemplo, a través de un control de
sistema. Cada unidad de ejecución 1-1b hasta
n-1b realiza la misma secuencia de pasos de S1, S6
a S8 y de S10 a S11 hasta que el resultado de la comparación de los
números de identificación I en el paso S8 sea positivo. Esto
significa que, las unidades de ejecución 1-1a y
1-1b ó 2-1a y 2-1b
correspondientes o idénticas en pares a las dos unidades de
procesamiento de datos 1a y 1b acceden a la zona de memoria común
C, de modo que el estado cambia de la misma manera mediante el
acceso en las dos unidades de procesamiento de datos 1a y 1b. Esto
significa que las dos unidades de procesamiento de datos 1a y 1b
funcionan sincrónicamente en el paso S9.
Después de concluir el acceso común de las
unidades de ejecución correspondientes 1-1a y
1-1b a la zona de memoria común C, finaliza en el
paso S12 el acceso a la unidad de sincronización
S1-1a ó S1-1b a través de las
unidades de ejecución correspondientes 1-1a y
1-1b, con lo cual en el paso S13 se autorizan todas
las unidades de ejecución 1-1a/1b hasta
n-1a/1b establecidas en el estado de espera o
inactividad, y en el paso S14 termina el acceso a la zona de memoria
común C y la función basada en este acceso.
Este tipo de algoritmo de sincronización
ejecutado mediante una unidad de sincronización común
S1-1a hasta Sn-1b asegura que se
consiga, en una zona de memoria común C (= zona de memoria
compartida), un acceso para cada una de las dos unidades de
procesamiento de datos 1a y 1b en el mismo orden mediante las mismas
unidades de ejecución 1-1a/1b hasta
n-1a/1b (= tareas). De este modo se asegura que las
aplicaciones en las dos unidades de procesamiento de datos 1a y 1b
sean y permanezcan siempre en el mismo estado de procesamiento.
En resumen, la invención trata de un proceso
para la sincronización del procesamiento de datos en al menos dos
unidades de procesamiento de datos redundantes 1a, 1b de un sistema
de procesamiento de datos 2 y un sistema de procesamiento de datos
2 con varias unidades de procesamiento de datos 1a, 1b. En éste los
datos D se procesan en la unidad de procesamiento de datos
correspondiente 1a, 1b paralelamente mediante uno o varias unidades
de ejecución 1-1a/1b hasta n-1a/1b,
con una unidad de sincronización S1-1a/1b hasta
Sn-1a/1b asignada a varias unidades de ejecución
1-1a/1b hasta n-1a/1b que acceden a
los mismos datos D, dicha unidad de sincronización está dividida en
una zona de sincronización B y una zona de memoria común C, con lo
que, en una de las unidades de procesamiento de datos 1a, 1b, se
accede a los datos D mediante una de las unidades de ejecución
1-1a/1b bis n-1a/1b en la zona de
memoria común C de manera que, antes del acceso de la unidad de
ejecución en cuestión 1-1a/1b hasta
n-1a/1b a la zona de memoria común C, se envía,
mediante la unidad de sincronización correspondiente
S1-1a/1b bis Sn-1a/1b en la zona de
sincronización B, una petición de confirmación de acceso ZB a la
unidad de sincronización correspondiente S1-1a/1b
hasta Sn-1a/1b de la otra unidad de procesamiento de
datos 1a, 1b, y mediante una comparación de un número de
identificación I que representa la unidad de ejecución solicitada
1-1a/1b hasta n-1a/1b con el número
de identificación I de la unidad de ejecución recibida
1-1a/1b hasta n-1a/1b de la otra
unidad de procesamiento de datos 1a, 1b, se autoriza o se bloquea el
acceso.
Claims (5)
1. Método para la sincronización del
procesamiento de datos en al menos dos unidades de procesamiento de
datos redundantes (1a, 1b) de un sistema de procesamiento de datos
(2), en el que los datos (D) se procesan en la unidad de
procesamiento de datos correspondiente (1a, 1b) paralelamente
mediante uno o varias unidades de ejecución
(1-1a/1b hasta n-1a/1b), con una
unidad de sincronización (S1-1a/1b hasta
Sn-1a/1b) asignada a varias unidades de ejecución
(1-1a/1b hasta n-1a/1b) que acceden
a los mismos datos (D), dicha unidad de sincronización está
dividida en una zona de sincronización (B) y una zona de memoria
común (C), con lo que, en una de las unidades de procesamiento de
datos (1a, 1b), se accede a los datos (D) mediante una de las
unidades de ejecución (1-1a/1b bis
n-1a/1b) en la zona de memoria común (C) de manera
que, antes del acceso de la unidad de ejecución en cuestión
(1-1a/1b hasta n-1a/1b) a la zona de
memoria común (C), se envía, mediante la unidad de sincronización
correspondiente (S1-1a/1b bis
Sn-1a/1b) en la zona de sincronización (B), una
petición de confirmación de acceso (ZB) a la unidad de
sincronización correspondiente (S1-1a/1b hasta
Sn-1a/1b) de la otra unidad de procesamiento de
datos (1a, 1b), caracterizado porque, mediante una
comparación de un número de identificación (I) que representa la
unidad de ejecución solicitada (1-1a/1b hasta
n-1a/1b) con el número de identificación (I) de la
unidad de ejecución recibida (1-1a/1b hasta
n-1a/1b) de la otra unidad de procesamiento de datos
(1a, 1b), se autoriza o se bloquea el acceso.
2. Método según la reivindicación 1,
caracterizado porque el número de identificación (I) se envía
de manera controlada por el tiempo y/o un evento.
3. Método según la reivindicación 1 ó 2,
caracterizado porque, después del acceso a los datos (D), se
anula la petición de confirmación de acceso (ZB).
4. Método según una de las reivindicaciones 1 a
3, caracterizado porque, mediante la unidad de sincronización
(S1-1a/1b hasta Sn-1a/1b), la
petición de confirmación de acceso (ZB) se ejecuta separadamente del
acceso a datos.
5. Sistema de procesamiento de datos (2) con al
menos dos unidades de procesamiento de datos redundantes (1a, 1b)
que están conectadas mediante una unidad de transmisión de datos
(3), con lo que cada unidad de procesamiento de datos (1a, 1b)
comprende para el procesamiento de datos (D) una o varias unidades
de ejecución (1-1a/1b hasta n-1a/1b)
a las que se asigna para el acceso a los mismos datos (D) una unidad
de sincronización (S1-1a/1b hasta
Sn-1a/1b) que está dividida en una zona de
sincronización (B) y una zona de memoria común (C), dicha unidad de
sincronización (S1-1a/1b hasta
Sn-1a/1b) está prevista, mediante la zona de
sincronización (B) en el acceso de una de las unidades de ejecución
(1-1a/1b hasta n-1a/1b) a la zona de
memoria común (C), para enviar una petición de confirmación de
acceso (ZB) a la unidad de sincronización correspondiente
(S1-1a/_1b hasta Sn-_1a/_1b) de otra
unidad de procesamiento de datos (1a, 1b), caracterizado
porque la unidad de sincronización está prevista para comparar un
número de identificación (I) que representa la unidad de ejecución
solicitada (1-1a/1b bis n-1a/1b) con
el número de identificación (I) de la unidad de ejecución recibida
(1-1a/1b bis n-1a/1b) de la otra
unidad de procesamiento de datos (1a, 1b), así como para autorizar o
bloquear el acceso en función del resultado de la comparación.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10251912 | 2002-11-07 | ||
| DE10251912A DE10251912A1 (de) | 2002-11-07 | 2002-11-07 | Synchronisation der Datenverarbeitung in redundanten Datenverarbeitungseinheiten eines Datenverarbeitungssystems |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2264749T3 true ES2264749T3 (es) | 2007-01-16 |
Family
ID=32115355
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES03023526T Expired - Lifetime ES2264749T3 (es) | 2002-11-07 | 2003-10-15 | Sincronizacion del procesamiento de datos en unidades de procesamiento de datos redundantes de un sistema de procesamiento de datos. |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP1426862B1 (es) |
| AT (1) | ATE329310T1 (es) |
| DE (2) | DE10251912A1 (es) |
| ES (1) | ES2264749T3 (es) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8516355B2 (en) | 2011-02-16 | 2013-08-20 | Invensys Systems, Inc. | System and method for fault tolerant computing using generic hardware |
| US8745467B2 (en) | 2011-02-16 | 2014-06-03 | Invensys Systems, Inc. | System and method for fault tolerant computing using generic hardware |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
| DE4219005A1 (de) * | 1992-06-10 | 1993-12-16 | Siemens Ag | Rechnersystem |
| US6247143B1 (en) * | 1998-06-30 | 2001-06-12 | Sun Microsystems, Inc. | I/O handling for a multiprocessor computer system |
| FR2803057B1 (fr) * | 1999-12-22 | 2002-11-29 | Centre Nat Etd Spatiales | Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme |
-
2002
- 2002-11-07 DE DE10251912A patent/DE10251912A1/de not_active Withdrawn
-
2003
- 2003-10-15 AT AT03023526T patent/ATE329310T1/de not_active IP Right Cessation
- 2003-10-15 ES ES03023526T patent/ES2264749T3/es not_active Expired - Lifetime
- 2003-10-15 DE DE50303669T patent/DE50303669D1/de not_active Expired - Lifetime
- 2003-10-15 EP EP03023526A patent/EP1426862B1/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP1426862A3 (de) | 2005-01-26 |
| DE10251912A1 (de) | 2004-05-19 |
| EP1426862B1 (de) | 2006-06-07 |
| ATE329310T1 (de) | 2006-06-15 |
| EP1426862A2 (de) | 2004-06-09 |
| DE50303669D1 (de) | 2006-07-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4539655A (en) | Microcomputer based distributed control network | |
| EP0106084B1 (en) | Modular computer system | |
| US5675830A (en) | Addressing scheme for control network having remote address request device | |
| EP0318221B1 (en) | Controlling responding by users of an intercommunications bus | |
| US7428659B2 (en) | Programmable controller with CPU units and special-function modules and method of doubling up | |
| US9356800B2 (en) | Communication method for the transmission of TT ethernet messages in a distributed real time computer system | |
| US20050060606A1 (en) | Safety controller providing for execution of standard and safety control programs | |
| AU604345B2 (en) | Interrupting node for providing interrupt requests to a pended bus | |
| AU604959B2 (en) | Servicing interrupts using a pended bus | |
| US7287184B2 (en) | High speed synchronization in dual-processor safety controller | |
| US20090193229A1 (en) | High-integrity computation architecture with multiple supervised resources | |
| EP2153328A1 (en) | Data processing system, data processing method, and apparatus | |
| US7206877B1 (en) | Fault tolerant data communication network | |
| ES2264749T3 (es) | Sincronizacion del procesamiento de datos en unidades de procesamiento de datos redundantes de un sistema de procesamiento de datos. | |
| US5051946A (en) | Integrated scannable rotational priority network apparatus | |
| US5038274A (en) | Interrupt servicing and command acknowledgement system using distributed arbitration apparatus and shared bus | |
| EP1977566B1 (de) | Zeitgesteuerte sichere kommunikation | |
| US7228390B2 (en) | Safety controller with hardware memory lock | |
| RU2595507C2 (ru) | Платформа интегрированной модульной авионики боевых комплексов | |
| EP0251234B1 (en) | Multiprocessor interrupt level change synchronization apparatus | |
| ES2252664T3 (es) | Procedimiento para la proyeccion y/o configuracion de un proyecto. | |
| Färber | Principles and applications of decentralized process control computer systems | |
| GB2146810A (en) | Achieving redundancy in a distributed process control system | |
| KR0120012B1 (ko) | 송신버스 점유 예약방법 | |
| KR100718082B1 (ko) | 멀티포트 i2c 컨트롤러 및 그의 동작제어방법 |