ES2311238T3 - Procedimiento y dispositivo para la evaluacion de una señal de un sistema de ordenadores con al menos dos unidades de ejecucion. - Google Patents
Procedimiento y dispositivo para la evaluacion de una señal de un sistema de ordenadores con al menos dos unidades de ejecucion. Download PDFInfo
- Publication number
- ES2311238T3 ES2311238T3 ES05801572T ES05801572T ES2311238T3 ES 2311238 T3 ES2311238 T3 ES 2311238T3 ES 05801572 T ES05801572 T ES 05801572T ES 05801572 T ES05801572 T ES 05801572T ES 2311238 T3 ES2311238 T3 ES 2311238T3
- Authority
- ES
- Spain
- Prior art keywords
- mode
- signal
- mode signal
- comparison
- variations
- 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
-
- 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/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/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Procedimiento de evaluación de una señal de un sistema de ordenadores con al menos dos unidades de ejecución, conmutándose el sistema de ordenadores entre al menos dos modos de operación y a un primer modo de operación le corresponde un modo de comparación y a un segundo modo de operación un modo de actuación, caracterizado porque el sistema de ordenadores produce una señal de modo y/o variaciones de la señal de modo, que indica el modo de operación actual y porque se proporciona(n) al menos variaciones de la señal de modo y/o esta misma señal de modo para la evaluación fuera del sistema de ordenadores.
Description
Procedimiento y dispositivo para la evaluación
de una señal de un sistema de ordenadores con al menos dos unidades
de ejecución.
Los errores transientes, originados por
partículas alfa o radiación cósmica, se convierten crecientemente
en un problema para los circuitos integrados de semiconductores.
Mediante los anchos estructurales decrecientes, tensiones
descendentes y mayores frecuencias de ciclo se eleva la probabilidad
de que una punta de tensión, producida por una partícula alfa o
radiación cósmica, falsee un valor lógico en un circuito integrado.
La consecuencia puede ser un resultado erróneo de cálculo. En
sistemas relevantes para la seguridad, particularmente en el
vehículo, tienen que detectarse estos errores, por tanto,
eficazmente. En sistemas relevantes para la seguridad, como por
ejemplo, un sistema de control del ABS en un vehículo, en los que
tengan que detectarse de manera segura los funcionamientos erróneos
de la electrónica, se emplean convencionalmente redundancias para
el reconocimiento de errores en los correspondientes dispositivos de
control de estos sistemas. Así, por ejemplo, se duplica en cada
caso todo el microcontrolador en los sistemas ABS conocidos,
calculándose todas las funciones del ABS redundantemente y
examinándose la coincidencia. Si apareciera una discrepancia de los
resultados, se desconectaría el sistema ABS. Los componentes
fundamentales de un microcontrolador son, por un lado, los módulos
de memoria (por ejemplo, RAM, ROM, caché), los núcleos y las
interfaces de entrada/salida, los así llamados periféricos (por
ejemplo, convertidor A/D, interfaz CAN). Como los elementos de
memoria pueden supervisarse de manera efectiva con códigos de
verificación (paridad o ECC), y los periféricos se supervisan a
menudo de manera específica a la aplicación como parte de una ruta
de señal de un sensor o actuador, existe un planteamiento adicional
de redundancia en la duplicación exclusiva de los núcleos de un
microcontrolador.
Estos microcontroladores con dos núcleos
integrados se conocen también como arquitecturas
Dual-Core (de doble núcleo). Ambos núcleos ejecutan
de manera redundante y síncrona (modo lockstep) el mismo segmento de
programa, se comparan los resultados de ambos núcleos y se reconoce
entonces un error comparando en busca de coincidencia. Esta
configuración de un sistema de doble núcleo puede designarse como un
modo de comparación. Las arquitecturas de doble núcleo se emplean
en otras aplicaciones también para el aumento del rendimiento, o
sea, para el aumento de la actuación. Ambos núcleos ejecutan
diferentes programas, segmentos de programa e instrucciones, con lo
que puede obtenerse un aumento del rendimiento, pudiendo designarse
esta configuración de un sistema de doble núcleo como un modo de
actuación. Este sistema se designa también como sistema
multiprocesador simétrico (SMP). Una ampliación de estos sistemas
es una conmutación por software entre estos dos modos accediendo a
una dirección especial y dispositivos especializados de hardware.
En el modo de comparación se comparan las señales de salida de los
núcleos. En el modo de actuación, ambos núcleos operan como un
sistema multiprocesador simétrico (SMP) y ejecutan diferentes
programas, segmentos de programa o instrucciones. En los sistemas de
vehículos, en los que se emplee un sistema de ordenadores de este
tipo, debería comprobarse el modo para la protección de las
aplicaciones. Es, en consecuencia, objetivo de la invención,
proporcionar los procedimientos y medios, que posibiliten una
evaluación de esta información de modo.
Gracias al documento D1 (US 6,615,366) se conoce
ya un sistema de ordenadores con dos núcleos de ejecución,
comunicándose el modo, en el que ha de operarse en los núcleos del
ordenador, al ordenador mediante los correspondientes bits internos
CSB y PSB. Sin embargo, en ningún punto se describe que estos tengan
que sacarse hacia fuera con el propósito de cualquier
procesamiento, como por ejemplo, de una evaluación de si se ha
aceptado regularmente un modo especial.
Más favorablemente se emplea un procedimiento de
evaluación de una señal de un sistema de ordenadores con al menos
dos unidades de ejecución, conmutándose el sistema de ordenadores
entre al menos dos modos de operación y a un primer modo de
operación le corresponde un modo de comparación y a un segundo modo
de operación un modo de actuación, caracterizado porque en
el sistema de ordenadores se produce(n) una señal de modo y/o
variaciones de la señal de modo, que indica(n) el modo de
operación actual y porque se proporciona(n) al menos
variaciones de la señal de modo y/o esta misma señal de modo para
la evaluación fuera del sistema de ordenadores, y porque la
señal de modo y/o las variaciones de la señal de modo se
evalúa(n) en un componente externo al sistema de ordenadores
o en una unidad de procesamiento, para ver si se ha aceptado
regularmente un modo especial.
Más favorablemente se emplea un procedimiento,
en el que la señal de modo y/o las variaciones de la señal de modo
se evalúa(n) en un componente de seguridad, particularmente
un perro guardián.
Más favorablemente se emplea un procedimiento,
en el que la señal de modo y/o las variaciones de la señal de modo
se evalúa(n) en una unidad de procesamiento, particularmente
en un segundo sistema de ordenadores.
Más favorablemente se emplea un procedimiento,
en el que una evaluación se lleva a cabo de forma que una condición
predeterminada sólo se active dentro de un modo de operación
predeterminado, en función de la señal de modo y/o de las
variaciones de la señal de modo.
Más favorablemente se emplea un procedimiento,
en el que una evaluación se lleva a cabo de forma que una
funcionalidad predeterminada del componente externo sólo se active
dentro de un modo de operación predeterminado, en función de la
señal de modo y/o de las variaciones de la señal de modo.
Más favorablemente se emplea un procedimiento,
en el que el componente externo supervise el cambio en el modo de
comparación.
Más favorablemente se emplea un procedimiento,
en el que el componente externo sólo se activa en un modo de
operación predeterminado y esto se supervisa por medio de la señal
de modo y/o de las variaciones de la señal de modo.
Más favorablemente se emplea un procedimiento,
en el que el componente externo contenga informaciones, que
indiquen mediante qué señales de conmutación, particularmente
señales de interrupción, se lleva a cabo un cambio de los modos de
operación y esto se supervisa por medio de la señal de modo y/o de
las variaciones de la señal de
modo.
modo.
Más favorablemente se emplea un procedimiento,
en el que como evaluación se efectúe un reconocimiento de errores
de forma que se lleve a cabo una comunicación
pregunta-respuesta.
Más favorablemente se emplea un procedimiento,
en el que como evaluación se efectúe un reconocimiento de errores
de forma que la señal de modo y/o las variaciones de la señal de
modo se compare(n) con una información predefinida y se
reconozca un error en caso de discrepancia o coincidencia.
Más favorablemente se emplea un procedimiento,
en el que como evaluación se efectúa además un reconocimiento de
errores de forma que una información formada en función de la señal
de modo y/o las variaciones de la señal de modo se compare con una
información predefinida y se reconozca un error en caso de
discrepancia o coincidencia.
Más favorablemente se emplea un procedimiento,
en el que por medio de la señal de modo y/o las variaciones de la
señal de modo se supervisa un cambio de los modos de operación
mediante un componente externo al sistema de ordenadores.
Más favorablemente se emplea un procedimiento,
en el que la señal de modo y/o las variaciones de la señal de modo
se protege(n) mediante al menos una información
complementaria.
Más favorablemente se emplea un procedimiento,
en el que la señal de modo y/o las variaciones de la señal de modo
se protege(n) de forma que al menos se duplique(n) la
señal de modo y/o las variaciones de la señal de modo.
Más favorablemente se emplea un procedimiento,
en el que la señal de modo y/o las variaciones de la señal de modo
se protege(n) como señal de carril dual (dual rail).
Más favorablemente se emplea un procedimiento,
en el que se prevén más de dos modos de operación, entre los que
puede conmutarse.
Más favorablemente se emplea un procedimiento,
en el que para la indicación del respectivo modo de operación se
prevé un identificador configurable del modo de operación.
Más favorablemente se emplea un procedimiento,
en el que para la indicación del respectivo modo de operación se
prevé una variable de índice configurable.
Más favorablemente se emplea un procedimiento,
en el que se efectúa un reconocimiento de errores en base a la
señal de modo y/o a las variaciones de la señal de modo,
produciéndose en el contexto de este reconocimiento de errores al
menos una señal de error.
Más favorablemente se emplea un procedimiento,
en el que se emplea un contador en el componente externo.
Más favorablemente se emplea un procedimiento,
en el que la señal de modo tiene múltiples valores, de forma que
puedan representarse más de dos modos con la señal de modo.
Más favorablemente se emplea un dispositivo para
la evaluación de una señal de un sistema de ordenadores con al
menos dos unidades de ejecución, conmutándose el sistema de
ordenadores entre al menos dos modos de operación y a un primer
modo de operación le corresponde un modo de comparación y a un
segundo modo de operación le corresponde un modo de actuación,
caracterizado porque el sistema de ordenadores contiene
medios diseñados de tal manera, que éstos generen una señal de modo
y/o variaciones de la señal de modo, que indique(n) el modo
de operación actual y porque se proporciona(n) al
menos variaciones de la señal de modo y/o esta misma señal de modo
para la evaluación fuera del sistema de ordenadores, y porque se
prevé un componente externo al sistema de ordenadores o una unidad
de procesamiento, que evalúe la señal de modo y/o las variaciones de
la señal de modo para ver si se ha aceptado regularmente un modo
especial.
Más favorablemente se emplea un dispositivo, en
el que el componente externo es un componente de seguridad,
particularmente un perro guardián.
Más favorablemente se emplea un dispositivo, en
el que el perro guardián es un perro guardián decrementador.
Más favorablemente se emplea un dispositivo, en
el que el componente externo es un actuador o un componente para el
control del actuador.
Más favorablemente se emplea un dispositivo, en
el que la señal de modo se produce de tal manera que con la señal
de modo puedan representarse más de dos modos.
Otras ventajas y ordenaciones favorables se
deducen de las características de las reivindicaciones así como de
la descripción.
\vskip1.000000\baselineskip
En la Figura 1 se representa un sistema
multiprocesador G60 con dos unidades de ejecución G10a y G10b, una
unidad de comparación G20, una unidad de conmutación G50 y una
unidad para el reconocimiento del deseo de conmutar G40.
En la Figura 2 se representa un sistema
multiprocesador G60 con dos unidades de ejecución G10a y G10b, una
unidad combinada de comparación y conmutación G70 compuesta por una
unidad de comparación G20 y una unidad de conmutación G50, así como
una unidad para el reconocimiento del deseo de conmutar G40.
En la Figura 3 se representa un sistema
multiprocesador G60 con dos unidades de ejecución G10a y G10b, una
unidad combinada de reconocimiento del deseo de conmutar,
comparación y conmutación G80 compuesta por una unidad de
comparación G20 y una unidad de conmutación G50 y una unidad para el
reconocimiento del deseo de conmutar G40.
En la Figura 4 se representa un sistema
multiprocesador G200 con dos unidades de ejecución G210a y G210b,
una unidad de conmutación y comparación G260.
En la Figura 5 se representa un procedimiento en
un diagrama de flujo, que intercambia, dentro de una etapa especial
de segmentación G230a, G230b una combinación especial indefinida de
bits por una NOP u otra combinación neutra de bits.
En la Figura 6 se representa un sistema
multiprocesador H200 con dos unidades de ejecución H210a, H210b y
una unidad de conmutación y comparación H260.
En la Figura 7 se representa un procedimiento en
un diagrama de flujo, que muestra cómo puede separarse el flujo del
programa con ayuda de las ID de las unidades durante el cambio de un
modo de comparación a un modo de actuación en un sistema
multiprocesador con 2 unidades de ejecución.
En la Figura 8 se representa un posible
procedimiento que muestra cómo puede separarse el flujo del programa
con ayuda de las ID de las unidades durante el cambio de un modo de
comparación a un modo de actuación en un sistema multiprocesador
con 3 unidades de ejecución.
En la Figura 9 se representa un procedimiento en
un diagrama de flujo, que sincroniza las unidades de ejecución
durante la conmutación del modo de actuación al modo de
comparación.
En la Figura 10 se representa un autómata
finito, que representa la conmutación entre un modo de actuación y
un modo de comparación.
En la Figura 11 se representa un sistema
multiprocesador G400 con dos unidades de ejecución, así como dos
controladores de interrupción G420a, G420b incluyendo los registros
de enmascaramiento de interrupciones G430a, G430b allí contenidos y
diferentes fuentes de interrupción G440a a G440n.
En la Figura 12 se representa un sistema
multiprocesador con dos unidades de ejecución, una unidad de
conmutación y comparación y un controlador de interrupción con tres
juegos de registros.
En la Figura 13 se representa la forma más
simple de un comparador.
La Figura 14 muestra un comparador con una
unidad para compensar una asimetría de fase.
En la Figura 15 se describe el comportamiento en
principio del componente preferente M700 (unidad de conmutación y
comparación) en el modo de comparación.
En la Figura 16 se describe el comportamiento en
principio del componente preferente M700 (unidad de conmutación y
comparación) en el modo de actuación.
En la Figura 17 se representa un modo de
ejecución de la unidad de conmutación y comparación.
En la Figura 18 se representa otro modo de
ejecución de la unidad de conmutación y comparación.
En la Figura 19 se representa una unidad de
conmutación y comparación, que genera una señal de modo.
En la Figura 20 se representa una representación
general de una unidad de conmutación y comparación.
Figura 21 muestra una representación general de
una unidad de conmutación y comparación, que genera un modo general
y una señal de error general.
En la Figura 22 se representa la comunicación
pregunta-respuesta con una unidad externa.
En la Figura 23 se representa la comunicación
con un actuador inteligente.
Como unidad de ejecución puede designarse en lo
sucesivo tanto un procesador, un núcleo, una CPU, como también una
FPU (Floating Point Unit, es decir, Unidad de Punto Flotante), un
DSP (procesador digital de señales), un coprocesador o una ALU
(Arithmetic Logical Unit, es decir, Unidad Aritmética Lógica). En la
Figura 1 se representa un sistema multiprocesador G60 con dos
unidades de ejecución G10a y G10b, una unidad de comparación G20,
una unidad de conmutación G50 y una unidad para el reconocimiento
del deseo de conmutar G40.
La invención hace referencia a un sistema
multiprocesador G60 representado en las Figuras 1, 2, 3, con al
menos dos unidades de ejecución G10a y G10b, una unidad de
comparación G20, una unidad de conmutación G50 y una unidad para el
reconocimiento del deseo de conmutar G40. La unidad de conmutación
G50 tiene al menos dos salidas a al menos dos interfaces del
sistema G30a, G30b. A través de estas interfaces se pueden activar
registros, memorias o periféricos como salidas digitales,
convertidores A/D, controladores de comunicación. Este sistema
multiprocesador puede operarse en al menos dos modos de operación,
un modo de comparación (VM) y un modo de actuación
(PM).
(PM).
En el modo de actuación se ejecutan
paralelamente diferentes instrucciones, segmentos de programa o
programas en las diferentes unidades de ejecución. En este modo de
ejecución, la unidad de comparación G20 está desactivada. La unidad
de conmutación G50 se configura en este modo de ejecución de forma
que cada unidad de ejecución G10a y G10b se conecte a una interfaz
del sistema G30a, G30b. La unidad de ejecución G10a está además
conectada a la interfaz del sistema G30a y la unidad de ejecución
G10b a la interfaz del sistema G30b.
En el modo de comparación se procesan las mismas
instrucciones, segmentos de programa o programas o similares en
ambas unidades de ejecución G10a y G10b. Estas instrucciones se
procesan favorablemente de manera síncrona, aunque también puede
concebirse un procesamiento con asincronía o una asimetría de reloj
definida. Las señales de salida de las unidades de ejecución G10a y
G10b se comparan en la unidad de comparación G20. En caso de que
difieran, se reconoce un error y se pueden tomar las
correspondientes medidas. Estas medidas pueden ser activar una
señal de error, implantar un tratamiento de errores, accionar
interruptores o una combinación de estas y otras medidas
concebibles. La unidad de conmutación G50 se configura en una
variación de forma que sólo se asocie una señal a las interfaces
del sistema G30a, G30b. En otra configuración, la unidad de
conmutación sólo causa que las señales comparadas y, por tanto,
iguales se asocien a las interfaces del sistema G30a, G30b.
El reconocimiento del deseo de conmutar G40
detecta, independientemente del modo activo, un deseo de conmutar a
otro modo.
En la Figura 2 se representa un sistema
multiprocesador G60 con dos unidades de ejecución G10a y G10b, una
unidad combinada de comparación y conmutación G70 compuesta por una
unidad de comparación G20 y una unidad de conmutación G50, así como
una unidad para el reconocimiento del deseo de conmutar G40.
En un modo de ejecución del estado de las cosas
descrito anteriormente, pueden reunirse la unidad de conmutación
G50 y la unidad de comparación G20 en una unidad común de
conmutación y comparación (UVE) G70, tal y como se representa en la
Figura 2. Este componente común G70 asume entonces los objetivos de
los componentes individuales G50, G20. En las Figuras 15, 16, 17,
18 y 19 se representan variantes de ejecución de la UVE G70.
En otro modo de ejecución, como el representado
en la Figura 3, pueden reunirse la unidad para el reconocimiento
del deseo de conmutar G40, el comparador G20 y la unidad de
conmutación G50 en un componente común G80. En otro modo de
ejecución, no representado en una Figura, pueden reunirse el
reconocimiento del deseo de conmutar G40 y el comparador G20 en un
componente común. Resulta asimismo concebible reunir el
reconocimiento del deseo de conmutar G40 con el conmutador G50 en
un componente común.
En el resto del texto, si no se indica lo
contrario, se entiende que hay un reconocimiento del deseo de
conmutar G40 y una unidad combinada de conmutación y comparación
G70.
Un caso general del componente conmutador y
comparador, también para el empleo para más de dos unidades de
ejecución, se muestra en la Figura 20. De las n unidades de
ejecución a tener en cuenta parten n señales N140,..., N14n al
componente conmutador y comparador N100. Este puede producir hasta n
señales de salida N160,..., N16n a partir de estas señales
iniciales. En el caso más simple, el "modo de actuación puro",
todas las señales N14i se conducen a las correspondientes señales
de salida N16i. En el caso límite opuesto, el "modo de
comparación puro" se conducen todas las señales N140,..., N14n
sólo a exactamente una de las señales de salida N16i.
En esta Figura se puede demostrar, cómo pueden
originarse los diferentes modos concebibles. Para ello, esta Figura
contiene el componente lógico de un circuito lógico N110. Este
componente no tiene que estar presente como componente propio.
Resulta decisivo que las funciones descritas se realicen en el
sistema. El circuito lógico N110 especifica primero cómo quizás hay
muchas señales de salida. Especifica adicionalmente qué señales
iniciales contribuyen a qué señales de salida. Además, una señal
inicial puede contribuir a exactamente una señal de salida. En
forma matemática formulada de otro modo se define, por tanto, una
función con el circuito lógico, que asigna a cada elemento de la
cantidad {N140,..., N14n} un elemento de la cantidad {N160,...,
N16n}.
La lógica de procesamiento N120 determina
entonces para cada una de las salidas N16i, en qué forma contribuyen
las entradas a esta señal de salida. Tampoco este componente tiene
que existir como componente propio. Resulta de nuevo decisivo, que
las funciones descritas se realicen en el sistema. Para describir
ejemplarmente las diferentes posibilidades de variación, se acepta
sin limitación del público, que la salida N160 es producida por las
señales N141, ..., N14m. Si m = 1, esto corresponde simplemente a
una interconexión de la señal, si m = 2, entonces se comparan las
señales N141, N142, tal y como se describe, por ejemplo, en el
comparador de las Figuras 13 y 14. Esta comparación puede
efectuarse de manera síncrona o asíncrona, bit a bit o sólo en base
a los bits significativos o también con una banda de tolerancia. Si
m >= 3, existen varias posibilidades. Una primera posibilidad
consiste en comparar todas las señales y, en caso de haber al menos
dos valores diferentes, detectar un error, que pueda señalizarse
opcionalmente. Una segunda posibilidad consiste en obtener una k a
partir de una selección de m (k >m/2). Esto puede efectuarse
empleando comparadores. Opcionalmente puede generarse una señal de
error, cuando una de las señales se reconozca como divergente. Puede
generarse una señal de error posiblemente diferente de ésta, cuando
las tres señales sean diferentes. Una tercera posibilidad consiste
en proporcionar estos valores a un algoritmo. Esto puede
representar, por ejemplo, la formación de un valor medio, de una
mediana, o el empleo de un algoritmo tolerante a los errores (FTA).
Un FTA de este tipo se basa en suprimir los valores extremos de los
valores iniciales y efectuar un tipo de promediación de los demás
valores. Esta promediación puede efectuarse de la cantidad total de
valores restantes o preferentemente de una cantidad parcial a
formar fácilmente en HW. En este caso no siempre es necesario
comparar de hecho los valores. Durante la formación del valor medio
sólo se tiene, por ejemplo, que añadir y dividir; la FTM, FTA o
mediana requieren una clasificación parcial. Si fuera necesario,
aquí también puede emitirse opcionalmente una señal de error para
valores extremos suficientemente grandes.
Estas diferentes posibilidades citadas de
procesamiento de varias señales en una señal se designan como
operaciones de comparación para abreviar. El objetivo de la lógica
de procesamiento es, por tanto, especificar la configuración exacta
de la operación de comparación para cada señal de salida -y por
tanto, también para las señales iniciales correspondientes-. La
combinación de la información del circuito lógico N110 (es decir, la
función descrita anteriormente) y de la lógica de procesamiento (es
decir, el establecimiento de la operación de comparación por señal
de salida, es decir, por valor de la función) es la información del
modo y esta especifica el modo. Esta información es generalmente
naturalmente polivalente, es decir, no puede representarse sólo a
través de un bit lógico. No todos los modos teóricamente
concebibles resultan razonables en una implementación dada, se
limita preferentemente el número de modos permitidos. Ha de
recalcarse, que en el caso de sólo dos unidades de ejecución, donde
sólo hay un modo de comparación, toda la información puede
condensarse en un único bit lógico. Una conmutación de un modo de
actuación a un modo de comparaciones caracteriza generalmente porque
las unidades de ejecución, que se representan en el modo de
actuación en diferentes salidas, se representan en el modo de
comparación en la misma salida. Esto se realiza preferentemente de
forma que haya un subsistema de unidades de ejecución, en el que en
el modo de actuación se conmutan todas las señales iniciales N14i a
tener en cuenta en el subsistema, directamente en las
correspondientes señales de salida N16i, mientras que en el modo de
comparación se representan todas en una salida. Una conmutación de
este tipo puede realizarse también alternativamente de forma que se
modifiquen los emparejamientos. De este modo se explica que no se
pueda hablar generalmente de un modo de actuación y de un modo de
comparación, aunque se pueda limitar la cantidad de modos
permitidos en un desarrollo dado de la invención de forma que éste
sea el caso. Sin embargo, siempre se puede hablar de una
conmutación de un modo de actuación a un modo de comparación (y
viceversa). Durante la operación puede conmutarse dinámicamente
entre estos modos, de manera controlada por software. La
conmutación se activa además o bien ejecutando instrucciones
especiales de conmutación, secuencias especiales de instrucciones,
instrucciones caracterizadas explícitamente o accediendo a
determinadas direcciones por medio de al menos una de las unidades
de ejecución del sistema multiprocesador.
El circuito lógico de errores N130 recoge las
señales de error generadas, por ejemplo, por los comparadores, y
puede conmutar opcionalmente las salidas N16i pasivamente,
interrumpiéndolas, por ejemplo, con un interruptor.
Los siguientes ejemplos se concentran, sin
embargo, en la mayoría de los casos, en el caso de dos unidades de
ejecución, en el que pueden representarse la mayoría de conceptos de
manera más sencilla.
La conmutación entre los modos puede codificarse
por diferentes procedimientos. En un procedimiento posible han de
utilizarse las instrucciones especiales de conmutación, detectadas
por la unidad para el reconocimiento del deseo de conmutar G40.
Otro posible procedimiento para la codificación de la conmutación
está definido por el acceso a una zona especial de memoria, que
detecta de nuevo la unidad para el reconocimiento del deseo de
conmutar G40. Otro procedimiento evalúa en la unidad para el
reconocimiento del deseo de conmutar G40 una señal externa, que
señaliza una conmutación. En lo sucesivo se describe un
procedimiento, que no emplea las combinaciones usadas de bits en el
juego de instrucciones existente del procesador. Una ventaja
especial de este procedimiento es que pueden emplearse
ulteriormente los entornos de desarrollo existentes (ensamblador,
compilador, editor de enlaces, depurador).
En la Figura 4 se representa un sistema
multiprocesador G200 con dos unidades de ejecución G210a y G210b, y
una unidad de conmutación y comparación G260. Para la conmutación
entre un modo de comparación y un modo de actuación (y viceversa)
se emplean en el ensamblador combinaciones de bits no definidas de
al menos dos unidades de ejecución G210a y G210b. Se entiende por
combinaciones de bits no definidas o indefinidas, en este sentido,
todas las combinaciones de bits especificadas en la descripción del
juego de instrucciones como indefinidas o ilegales. Estas son, por
ejemplo, operando ilegal, instrucción ilegal, operación ilegal. Es
una caracterización general de estas combinaciones indefinidas de
bits que una unidad normal de ejecución durante la ejecución de
una de estas combinaciones de bits o bien produce una señal de error
o muestra un comportamiento no definido. Estas combinaciones de
bits no son, por tanto, necesarias para representar la semántica de
un programa ordinario.
Para el desarrollo del software puede emplearse,
por tanto, el anterior entorno de desarrollo, tal y como existe
para sistemas monoprocesador. Esto puede realizarse, por ejemplo, de
forma que se defina una macro "CONMUTAR MODO A PM" y una macro
"CONMUTAR MODO A VM", que inserta las combinaciones de bits
indefinidas correspondientes en el sentido definido anteriormente
en la posición apropiada del código.
El empleo de esta combinación se define entonces
como macro general de "CONMUTACIÓN". Esta origina entonces un
cambio dependiente del modo actual a, en cada caso, el otro. Si en
el sistema hubiera más de dos modos diferentes, tendría que haber
más de estas combinaciones para el empleo de este procedimiento,
pudiendo emplearse entonces preferentemente una por modo para la
identificación de la conmutación.
El deseo de conmutar se codifica conforme a la
invención mediante una combinación de bits no definida en el juego
de instrucciones. Estas no pueden procesarse dentro de una unidad de
ejecución G210a y G210b en el modo habitual. Por este motivo se
propone una etapa adicional de segmentación (etapa de SUSTITUCIÓN)
G230a, G230b, que reconozca las correspondientes combinaciones de
bits y las sustituya para el procesamiento ulterior por
combinaciones neutras de bits. Para ello se emplea favorablemente la
instrucción "NOP" (No Operation). Una instrucción NOP se
caracteriza por no variar el estado interno de la unidad de
ejecución, hasta el indicador de instrucciones. La etapa de
SUSTITUCIÓN G230a, G230b se intercala además tras la primera etapa
convencional, la etapa de EXTRACCIÓN G220a G220b y antes de las
demás etapas de segmentación G240a, G240b, se insertan en el
ensamblador combinaciones no definidas de bits, resumidas aquí en
una unidad.
La implementación de una unidad para el
reconocimiento del deseo de conmutar G40 representada aquí como
etapa especial de segmentación G230a, G230b en una unidad de
segmentación G215a, G215b, genera conforme a la invención una señal
adicional G250a, G250b, cuando se reconozca una combinación de bits
apropiada para la conmutación, que señalice a una unidad
independiente de conmutación y comparación G260, que se lleva a cabo
un cambio del modo de procesamiento.
Las etapas REP G230a, G230b se disponen
preferentemente entre las FET G220a, G220b y las demás etapas de
segmentación G240a, G240b en las unidades de segmentación G215a,
G215b de las unidades de ejecución G210a y G210b. Las etapas REP
G230a, G230b reconocen además las combinaciones apropiadas de bits y
envían en este caso instrucciones NOP a las demás etapas G240a,
G240b. Al mismo tiempo se activa la respectiva señal G250a o G250b.
En todos los demás casos, las etapas REP G230a, G230b se comportan
de manera neutral, es decir, todas las demás instrucciones se
envían inalteradas a las demás etapas G240a, G240b.
En la Figura 5 se representa un procedimiento en
un diagrama de flujo, que dentro de una etapa especial de
segmentación G230a, G230b intercambia una combinación especial
indefinida de bits por una NOP u otra combinación neutra de bits.
En la etapa de EXTRACCIÓN G300 se extrae una instrucción, es decir,
una combinación de bits de la memoria. Posteriormente se diferencia
en el bloque G310 si la combinación de bits extraída corresponde a
la combinación especial indefinida de bits, que codifica una
conmutación. Si este no es el caso, en el siguiente paso G320 se
transmite la combinación de bits sin cambio a las demás etapas de
segmentación G340 para el procesamiento ulterior. Cuando se
reconozca la combinación especial de bits, que codifica una
conmutación, en el paso G310, ésta se sustituirá en el paso G330
por la combinación de bits NOP y se transmitirá entonces para el
procesamiento ulterior a las demás etapas de segmentación G340. En
un modo de ejecución favorable, los bloques G310, G320, G330
representan la funcionalidad de una etapa de SUSTITUCIÓN G230a,
G230b conforme a la invención, pudiendo contener ésta también otra
funcionalidad.
En la Figura 6 se representa un sistema
multiprocesador H200 con dos unidades de ejecución H210a, H210b y
una unidad de conmutación y comparación H260. Los componentes H220a,
H220b, H240a y H240b tienen el mismo significado que G220a, G220b,
G240a y G240b. En una ejecución alternativa de la unidad para el
reconocimiento del deseo de conmutar G40, descrita aquí por las
etapas especiales de segmentación H230a, H230b, esta posee otras
señales, además de las señales H250a, H250b, que señalizan una
conmutación. Para que las unidades de ejecución H210a, H210b puedan
sincronizarse durante el cambio del modo de actuación al modo de
comparación, las unidades de segmentación H215a, H215b de las
unidades de ejecución H210a, H210b poseen en cada caso una entrada
de señales H280a, H280b, con la que puede pararse el procesamiento.
Esta señal es establecida por la unidad de conmutación y
comparación H260 para aquella unidad de segmentación H215a o H215b,
que haya reconocido primero una instrucción de conmutación y haya
activado, por tanto, la señal H250a y/o H250b. Sólo cuando ambas
unidades de segmentación H215a, H215b de las unidades de ejecución
H210a, H210b hayan reconocido la instrucción de conmutación y hayan
sincronizado sus estados internos por software u otras medidas de
hardware, se anulará de nuevo esta señal H280a, H280b. Durante el
cambio del modo de comparación al modo de actuación no son
necesarias H280a, H280b, ya que no se precisa ninguna
sincronización.
Es un requisito para la recomendación aquí
descrita una unidad (designada como unidad de ID) o procedimiento,
a través del cual cada unidad de ejecución pueda determinar su
número individual o ID de las unidades. En un sistema con dos
unidades de ejecución, una unidad de ejecución puede determinar para
sí, por ejemplo, el número 0, la otra el número 1. En un sistema
con más de 2 unidades de ejecución, los números se adjudican y/o
determinan correspondientemente. Esta ID no distingue entre un modo
de comparación y un modo de actuación, sino que designa una unidad
de ejecución de manera biunívoca. La unidad de ID puede estar
contenida en las respectivas unidades de ejecución, por ejemplo,
implementada como bit o combinación de bits en el registro de
estado del procesador o como registro propio o como bit individual o
como unidad externa a las unidades de ejecución, que proporciona
una ID apropiada a petición.
Después de que las unidades de ejecución hayan
ejecutado la conmutación en el modo de actuación conforme a un
deseo de conmutar, la unidad de comparación deja de estar activa,
pero las unidades de ejecución ejecutan aún siempre las mismas
instrucciones. Esto se basa en que los indicadores de instrucciones,
que señalizan la posición en el programa, en los que un trabajo de
ejecución opera en el siguiente paso y/o ahora, no quedan afectados
por la conmutación. Para que las unidades de ejecución puedan
ejecutar a continuación diferentes módulos SW, se tiene que separar
la secuencia de programa de las unidades de ejecución. Respecto a la
cuestión, los indicadores de instrucciones tienen, por tanto,
generalmente diferentes valores en el modo de actuación, ya que
conforme a la invención se procesan instrucciones, segmentos de
programa o programas independientes. La separación de los flujos de
programa se efectúa en la recomendación aquí descrita determinando
el respectivo número de unidades de ejecución. Dependiendo de qué
ID posee una unidad de ejecución, la unidad de ejecución ejecuta un
determinado módulo de software. Como cada unidad de ejecución posee
un número individual o ID, puede separarse de este modo eficazmente
el flujo del programa de las unidades de ejecución implicadas.
En la Figura 7 se representa un procedimiento en
un diagrama de flujo, que muestra, cómo puede separarse, con ayuda
de las ID de las unidades, el flujo del programa durante el cambio
de un modo de comparación a un modo de actuación en un sistema
multiprocesador con 2 unidades de ejecución. Tras efectuar la
conmutación de un modo de comparación a un modo de actuación G500,
se lleva a cabo una consulta de los ID de las unidades o número de
las unidades de ejecución G510 por parte de ambas unidades de
ejecución. Conforme a la invención, la unidad de ejecución 0
obtiene además el número de las unidades de ejecución 0, la unidad
de ejecución 1 obtiene el número de las unidades de ejecución 1. En
G510 se lleva a cabo una comparación del número de las unidades de
ejecución determinado con el número 0. Si estos fueran iguales, la
unidad de ejecución, para la cual resultó exitosa la comparación,
continúa en el paso G520 con el código para unidad de ejecución 0.
La unidad de ejecución, para la cual no resultó exitosa la
comparación, continúa en G530 con la comparación con el número 1.
Si esta comparación resultara exitosa, se continuaría con el código
para unidad de ejecución 1 en G540. Si esta comparación no
resultara exitosa, se determinaría para la unidad de ejecución
apropiada, por tanto, un número de las unidades de ejecución
distinto de 0 y 1. Esto representa un caso de error y se continúa
con G550.
En la Figura 8 se describe un posible
procedimiento para 3 unidades de ejecución. Tras efectuar la
conmutación de un modo de comparación a un modo de actuación H500,
se lleva a cabo una consulta de los ID de las unidades o número de
las unidades de ejecución H510 por parte de las unidades de
ejecución. Conforme a la invención, la unidad de ejecución 0
obtiene además, por ejemplo, el número de las unidades de ejecución
0, la unidad de ejecución 1 obtiene el número de las unidades de
ejecución 1 y la unidad de ejecución 2 el número de las unidades de
ejecución 2. En H510 se lleva a cabo una comparación del número de
las unidades de ejecución determinado con el número 0. Si estos
fueran iguales, la unidad de ejecución, para la cual resultó exitosa
la comparación, continúa en el paso H520 con el código para la
unidad de ejecución 0. Las unidades de ejecución, para las cuales
no resultó exitosa la comparación, continúan en H530 con la
comparación con el número 1. En la unidad de ejecución, para la
cual resultó exitosa la comparación, se prosigue con el código para
la unidad de ejecución 1 en H540. Las unidades de ejecución, para
las cuales no resultó exitosa la comparación, continúan en H535 con
la comparación con el número 2. La unidad de ejecución, para la cual
resultó exitosa la comparación, prosigue con el código para la
unidad de ejecución 2 en H536. Si esta comparación no resultara
exitosa, se determinaría para la unidad de ejecución
correspondiente, por tanto, un número de las unidades de ejecución
distinto de 0, 1 y 2. Esto representa un caso de error y se
continúa con H550. Alternativamente a la comparación con un número,
el número de las unidades de ejecución puede emplearse también
directamente como índice en una tabla de saltos.
Conforme a esta descripción, este procedimiento
puede utilizarse también para sistemas multiprocesador con más de 3
unidades de ejecución.
Si se conmuta del modo de actuación al modo de
comparación, entonces tienen que considerarse varias cuestiones.
Durante la conmutación del modo de actuación al modo de comparación
se tiene que garantizar, que los estados internos de las unidades
de ejecución sean idénticos tras la conmutación; en caso contrario,
se reconocería eventualmente un error en el modo de comparación, si
los diferentes estados de arranque conducen a diferentes procesos
de salida. Esto puede efectuarse por medio de hardware, de software,
de firmware o en una combinación de los tres. Una condición para
ello es que todas las unidades de ejecución ejecuten las mismas o
similares instrucciones, programas o segmentos de programa tras la
conmutación al modo de comparación. A continuación se describe un
procedimiento de sincronización, que puede aplicarse, cuando el modo
de comparación se distinga por el hecho de se procesen
instrucciones idénticas y se verifique una comparación bit a
bit.
En la Figura 9 se representa un procedimiento en
un diagrama de flujo, que sincroniza las unidades de ejecución en
caso de conmutación de un modo de actuación a un modo de
comparación. En el paso G600 se bloquean preferentemente todas las
interrupciones. Esto no sólo es importante porque los controladores
de interrupción tengan que reprogramarse correspondientemente para
el modo de comparación. El estado interno de las unidades de
ejecución debería igualarse también por medio de software. Sin
embargo, si durante la preparación para la conmutación al modo de
comparación se activa una interrupción, entonces deja de ser
posible una equiparación sin coste adicional.
Paso G610: Si ambas unidades de ejecución poseen
cachés independientes, también tiene que equipararse el contenido
de las cachés antes de la conmutación, para evitar, que en el modo
de comparación para una dirección surja un
cache-hit para una de las unidades de ejecución y un
cache-miss para la otra unidad de ejecución. Si esto
no es efectuado independientemente por el hardware del caché, ha de
lograrse por ejemplo, marcando todas las líneas de caché como
inválidas. Se tiene que esperar hasta que la caché (o las cachés) se
invaliden totalmente. Esto ha de garantizarse, si fuera necesario,
mediante un bucle de espera en el código del programa. Esto puede
lograrse también por otros medios, resultando decisivo que, tras
este paso, las cachés estén en el mismo estado.
En el paso G620 se vacían las memorias
intermedias de escritura de las unidades de ejecución, de forma que
tras la conmutación no haya ninguna actividad de las unidades de
ejecución, debida aún al modo de actuación.
En el paso G630 se sincroniza el estado de las
etapas de segmentación de las unidades de ejecución. Para ello se
ejecuta, por ejemplo, un número apropiado de instrucciones NOP (No
Operation) antes de la secuencia de conmutación/instrucción de
conmutación. El número de instrucciones NOP depende del número de
etapas de segmentación y depende, por tanto, de la respectiva
arquitectura. También depende de la arquitectura, qué instrucción es
apropiada como instrucción NOP. Si las unidades de ejecución poseen
una caché de instrucciones, ha de garantizarse además que esta
secuencia de instrucciones se alinee en los límites de una línea de
caché (alineación). Como la caché de instrucciones se marcó como
inválida antes de la ejecución de estas NOP's, estas NOP's sólo
tienen que cargarse en la caché. Si esta secuencia de instrucciones
comienza en un límite de línea de la caché, concluye la
transferencia de datos de la memoria (por ejemplo, RAM/ROM/Flash) a
la caché, antes de que se lleve a cabo la orden de conmutar. Esto
se tiene que tener también en cuenta durante la determinación del
número necesario de NOP's.
En el paso G640 se efectúa de hecho el paso de
instrucción para la conmutación al modo de comparación.
En el paso G650 se equipara el contenido de las
respectivas filas de registro de cada unidad de ejecución. Para
ello han de cargarse los registros antes o después de la conmutación
con contenidos idénticos. Resulta importante en esta ocasión, que
tras la conmutación el contenido de un registro sea idéntico en las
unidades de ejecución, antes de que el contenido del registro se
transfiera al exterior y sea comparada, por tanto, por la unidad de
comparación.
En el paso G660 se reprograman los controladores
de interrupción, de forma que una señal externa de interrupción
active la misma interrupción en todas las unidades de ejecución
conectadas juntas.
En el paso G670 se activan de nuevo las
interrupciones.
Si la secuencia de programa no pone en evidencia
cuándo debería conmutarse al modo de comparación, ha que informarse
a las unidades de ejecución implicadas de la conmutación pretendida.
Para ello se inicia preferentemente una interrupción en los
controladores de interrupción pertenecientes a las respectivas
unidades de ejecución, por ejemplo, por medio de SW. El tratamiento
de interrupciones origina entonces la ejecución de la secuencia
descrita anteriormente para la interconexión.
En la Figura 10 se representa un autómata
finito, que representa la conmutación entre un modo de actuación y
un modo de comparación (y viceversa). Durante el arranque del
sistemas, causado por "Power On" o también puesta a cero
(software o hardware), se lleva el sistema a través del paso G800 al
estado G700. Resulta generalmente válido que el sistema empiece a
operar, tras un suceso indefinido capaz de activar una puesta a cero
(reset), siempre en el estado G700. Son sucesos ejemplares, que
pueden activar una puesta a cero, las señales externas, problemas
en el suministro de tensión o sucesos erróneos internos, que hacen
que un procesamiento ulterior deje de ser razonable. El estado G700
de la unidad de conmutación y comparación G70 y también del sistema
multiprocesador G60, en el que se opera en el modo de actuación, es,
por tanto, el estado de omisión del sistema. En todos los casos en
los que se haya adoptado un estado indefinido de otro modo, se
adoptará el estado de omisión G700. Esta posición de omisión del
estado G700 se garantiza además mediante medidas de hardware. Por
ejemplo, el estado del sistema y/o el estado de la unidad de
conmutación y comparación G60 puede estar codificado en un
registro, en un bit un registro, mediante una combinación de bits en
un registro o mediante un flip-flop. Por medio del
hardware se garantiza entonces que, tras una puesta a cero o
encendido, se adoptará siempre el estado G700. Esto se garantiza,
por ejemplo, dirigiendo la señal de puesta a cero y/o la señal de
"Power On" a la entrada de la puesta a cero o a la entrada del
ajuste del flip-flop o del registro.
En el estado G700, el sistema opera en un modo
de actuación. Las unidades de ejecución G10a y G10b, ejecutan, por
tanto, diferentes instrucciones, programas o segmentos de programa.
Puede reconocerse un deseo de conmutar, por ejemplo, por el hecho
de que una unidad de ejecución G10a y G10b, ejecute una instrucción
especial de conmutación. Otras posibilidades son un reconocimiento
mediante el acceso a una dirección especial de memoria, mediante
una señal interna o también mediante una señal externa. Mientras no
se reconozca ningún deseo de conmutar, el sistema multiprocesador
G60 y, por tanto, también la unidad de conmutación y comparación G70
permanecerán en el estado G700. En lo sucesivo se designará con el
deseo de conmutar el reconocimiento de una condición de
conmutación, caracterizada como se caracterizaría un deseo de
conmutar en este sistema especial. La permanencia en el estado G700
se representa con el paso G810. Si la unidad de ejecución G10a
reconoce un deseo de conmutar, entonces se traslada la unidad de
conmutación y comparación G70 a través del paso G820 al estado
G710. El estado G710 designa por tanto, la situación en la que la
unidad de ejecución G10a ha reconocido y espera un deseo de
conmutar, hasta que la unidad de ejecución G10b reconoce asimismo un
deseo de conmutar. Mientras éste no sea el caso, la unidad de
conmutación y comparación G70 permanecerá en el estado G710, lo que
se representa con el paso G830. El paso G840 ocurre, cuando la
unidad de ejecución G10b reconoce asimismo un deseo de conmutar en
el estado G710. La unidad de conmutación y comparación G70 adopta,
por tanto, el estado G730. Este estado designa la situación en la
que ambas unidades de ejecución G10a y G10b han reconocido un deseo
de conmutar. En el estado G730 ocurren los procedimientos de
sincronización, con los que se sincronizan las dos unidades de
ejecución G10a y G10b, para operar a continuación en el modo de
comparación. La unidad de conmutación y comparación G70 permanece
durante este procedimiento en el estado G730, lo que se representa
con el paso G890. Si en el estado G700 reconoce primero la unidad de
ejecución G10b un deseo de conmutar, entonces se conmuta a través
del paso G860 al estado G720. El estado G720 designa, por tanto, la
situación en la que la unidad de ejecución G10b ha reconocido y
espera un deseo de conmutar, hasta que la unidad de ejecución G10a
reconozca asimismo un deseo de conmutar. Mientras éste no sea el
caso, la unidad de conmutación y comparación G70 permanecerá en el
estado G720, lo que se representa con el paso G870. El paso G880
ocurre, cuando la unidad de ejecución G10a reconoce asimismo un
deseo de conmutar en el estado G720. La unidad de conmutación y
comparación G70 adopta, por tanto, el estado G730. Si en el estado
G700, ambas unidades de ejecución G10a y G10b, reconocen
simultáneamente un deseo de conmutar, se cambia inmediatamente al
estado G730. Este caso representa el paso G850. Si la unidad de
conmutación y comparación G70 está en el estado G730, ambas
unidades de ejecución G10a y G10b han reconocido un deseo de
conmutar. En este estado se sincronizan los estados internos de las
unidades de ejecución G10a y G10b, para operar en el modo de
comparación tras concluir este proceso de sincronización. Con la
finalización de estas tareas de sincronización tiene lugar el paso
G900. Este paso indica el final de la sincronización. Las unidades
de ejecución G10a y G10b operan en el modo comparativo en el estado
G740. Las unidades de ejecución G10a y G10b pueden señalizar incluso
la finalización de las tareas de sincronización. Esto significa que
el paso G900 se verifica, cuando ambas unidades de ejecución G10a y
G10b hayan señalizado que están listas para operar en el modo de
comparación. La finalización puede señalizarse también a través de
un tiempo firmemente ajustado. Esto significa que en la unidad de
conmutación y comparación G70 se codifica de manera compacta cuánto
tiempo permanece en el estado G730. Este tiempo se ajusta de forma
que ambas unidades de ejecución G10a y G10b hayan finalizado sus
tareas de sincronización de manera segura. Tras la conclusión de
este tiempo se inicia entonces el paso G900. En otra variación, la
unidad de conmutación y comparación G70 puede supervisar los
estados de las unidades de ejecución G10a y G10b y reconocer incluso
cuándo han terminado sus tareas de sincronización ambas unidades de
ejecución G10a y G10b. Tras el reconocimiento se inicia entonces el
paso
G900.
G900.
Mientras no se reconozca ningún deseo de
conmutar, el sistema multiprocesador G60 permanecerá en el modo de
comparación, representado por el paso G910. Cuando en el estado G740
se reconozca un deseo de conmutar, se desplazará la unidad de
conmutación y comparación a través del paso G920 al estado G700. Tal
y como se ha descrito ya, el sistema opera en el modo de actuación
en el estado G700. La separación de los flujos de programa durante
el paso del estado G740 al estado G700, puede efectuarse entonces
como en el procedimiento descrito.
En la Figura 11 se representa un sistema
multiprocesador G400 con dos unidades de ejecución, así como dos
controladores de interrupción G420a, G420b incluyendo los registros
de enmascaramiento de interrupciones G430a, G430b allí contenidos y
diferentes fuentes de interrupción G440a a G440n. Se representa
adicionalmente una unidad de conmutación y comparación G450 con un
registro especial de enmascaramiento de interrupciones G460.
Cada unidad de ejecución G410a, G410b posee de
manera ventajosa sus propios controladores de interrupción G420a,
G420b, para poder tratar simultáneamente dos interrupciones en el
modo de actuación. Esto resulta especialmente favorable en los
sistemas, en los que el tratamiento de las interrupciones representa
un cuello de botella en la actuación del sistema. Las fuentes de
interrupción G440a bis G440n se conectan además más favorablemente
directamente, en cada caso, a ambos controladores de interrupción
G420a, G420b. Este tipo de conexión origina que, sin medidas
adicionales, en ambas unidades de ejecución G410a, G410b se active
la misma interrupción. Los controladores de interrupción G420a,
G420b se programan en el modo de actuación de forma que las fuentes
de interrupción G440a a G440n correspondientes se dividan de manera
apropiada en las diferentes unidades de ejecución G410a, G410b,
dependiendo de la aplicación. Esto se efectúa con una programación
apropiada de los registros de enmascaramiento de la interrupción
G430a, G430b. Los registros de enmascaramiento prevén para cada
fuente de interrupción G440a a G440n un bit en el registro. Si se
ajusta este bit, se para la interrupción, o sea, no se transmite a
la unidad de ejecución G410a, G410b conectada. En un modo de
actuación se procesa favorablemente una fuente de interrupción
G440a a G440n dada por exactamente una unidad de ejecución G410a o
G410b. Esto es favorablemente válido para al menos alguna de las
fuentes de interrupción. Por tanto, puede lograrse que varias
fuentes de interrupción G440a a G440n puedan procesarse al mismo
tiempo, sin que se verifique ninguna anidación de interrupciones
(un procesamiento de interrupciones es interrumpido por una segunda
interrupción) o espera de interrupción (el procesamiento de la
segunda se aplaza hasta que haya concluido el procesamiento de la
primera).
En el modo de comparación se tiene que
garantizar que los controladores de interrupción G420a, G420b
activen simultáneamente la misma interrupción en todas las unidades
de ejecución G410a, G410b; en caso contrario se reconocería un
error conforme a un modo de comparación. Esto significa, que en la
fase de sincronización, al conmutar del modo de actuación al modo
de comparación, se tiene que garantizar que los registros de
enmascaramiento de interrupciones G430a, G430b son idénticos. Esta
sincronización se describe en la Figura 9 en el paso G660. Esta
sincronización puede efectuarse por medio de software, programándose
ambos registros de enmascaramiento de interrupciones G430a, G430b
correspondientemente con el mismo valor. Se propone el empleo de un
registro especial G460, para acelerar el procedimiento de
conmutación. En un modo de ejecución se dispone este registro G460
en la unidad de conmutación y comparación G460, aunque también puede
encontrarse en el reconocimiento del deseo de conmutar G40, en un
reconocimiento combinado del deseo de conmutar, en el comparador, en
la unidad de conmutación G80, así como en todas las combinaciones.
Resulta asimismo concebible, que este registro se disponga en otra
posición apropiada fuera de estos tres componentes. El registro G460
contiene el enmascaramiento de interrupciones, que debería servir
en el modo de comparación. La unidad de conmutación y comparación
G450 recibe una señal para la conmutación de un modo de actuación a
un modo de comparación del reconocimiento del deseo de conmutar
G40. Después de que se puedan bloquear las interrupciones en el paso
G600, se reprograman los registros de enmascaramiento de
interrupciones G430a, G430b de los controladores de interrupción
G420a, G420b. Esto lo efectúa ahora por medio de hardware la unidad
de conmutación y comparación G450 paralelamente a los demás pasos
de sincronización, después de que se haya recibido la señal de
conmutación y se hayan bloqueado los controladores de interrupción
G420a, G420b. Los registros de enmascaramiento de interrupciones
G430a, G430b no se reprograman favorablemente de manera individual
en el modo de comparación, sino siempre el registro central G460.
Éste se transmite entonces de manera síncrona por medio de hardware
a ambos registros de enmascaramiento de interrupciones G430a,
G430b. El procedimiento, descrito aquí para un registro de
enmascaramiento de interrupciones, puede transmitirse de la misma
manera a todos los registros de estado de interrupciones, dispuestos
en un controlador de interrupción. Naturalmente, resulta también
concebible emplear, en vez de un registro G460, otro medio de
almacenamiento, desde el cual pueda transmitirse lo más rápido
posible a los registros de enmascaramiento de interrupciones G430a,
G430b.
En la Figura 12 se propone un sistema
multiprocesador con dos unidades de ejecución G1010a y G1010b, una
unidad de conmutación y comparación G1020 y un controlador de
interrupción G1030 con tres juegos diferentes de registros G1040a,
G1040b, G1050. Como alternativa a la solución descrita anteriormente
se propone un controlador especial de interrupción G1030, tal y
como se representa en la Figura 12. Éste se emplea en un sistema
multiprocesador G1000, representado en el ejemplo con dos unidades
de ejecución G1010a y G1010b, así como una unidad de conmutación y
comparación G1020, que puede conmutar entre un modo de comparación y
un modo de actuación. En el modo de actuación se emplean además los
juegos de registros G1040a, G1040b. En este caso, el controlador de
interrupción G1030 opera exactamente como dos controladores de
interrupción G420a y G420b. Este comportamiento se representa y se
describe en la Figura 11. El juego de registros G1040a se asigna
además a la unidad de ejecución G1010a y el juego de registros
G1040b a la unidad de ejecución G1010b. Las fuentes de interrupción
G1060a a G1060n se dividen de manera apropiada por enmascaramiento
entre las unidades de ejecución G1010a y G1010b. En caso de
conmutación de un modo de actuación a un modo de comparación, la
unidad de conmutación y comparación G1020 produce una señal G1070.
Esta señaliza al controlador de interrupción G1030 que se conmuta al
modo de comparación y/o que el sistema opera a partir de este
instante en el modo de comparación. El controlador de interrupción
G1030 emplea posteriormente el juego de registros G1050. Se
garantiza, por tanto, que en ambas unidades de ejecución G1010a y
G1010b se generen las mismas señales de interrupción. Con una
conmutación del modo de comparación al modo de actuación, hecho que
señaliza la unidad de conmutación y comparación G1020 de nuevo a
través de la señal G1070 al controlador de interrupción G1030, se
conmuta de nuevo a los juegos de registros G1040a y G1040b. Por
tanto, también puede lograrse favorablemente una protección de los
juegos de registros correspondientes, permitiéndose en el modo de
actuación sólo una escritura sobre los juegos de registros G1040a y
G1040b y se impide una escritura sobre el juego de registros G1050,
reservado al modo de comparación, por medio de hardware. Lo mismo
es también posible en la otra dirección, que en el modo de
comparación sólo se permite una escritura sobre el juego de
registros G1050 y se impide una escritura sobre los juegos de
registros G1040a y G1040b.
En la Figura 13 se representa la forma más
simple de un comparador M500, G20. El comparador M500 es un
componente fundamental en un sistema multiprocesador G60 con al
menos dos unidades de ejecución G10a y G10b, con una conmutación
entre un modo de actuación y un modo de comparación. Se representa
en la Figura 13 en la forma más simple. El componente comparativo
M500 puede captar dos señales de entrada M510 y M511. Las compara
para comprobar si son iguales, en el contexto aquí representado
preferentemente en el sentido de una igualdad bit a bit. En caso de
igualdad se aplica el valor de las señales de entrada M510, M511 a
la señal de salida M520 y la señal de error M530 no se activa, es
decir, se señaliza el estado "bien". Si detecta una
desigualdad, se activa la señal de error M530. La señal M520 puede
desactivarse entonces opcionalmente. Esto ofrece la ventaja de que
el error no sale del sistema correspondiente ("fault
containment" o "contaminación de errores"). Es decir, otros
componentes situados fuera de las unidades de ejecución, no se
corrompen por la señal potencialmente errónea. También hay
sistemas, en los que no se tiene que desactivar la señal M520. Este
es el caso, por ejemplo, cuando en el nivel del sistema sólo se
exige silencio de fallo. Entonces puede conducirse la señal de
error, por ejemplo, hacia el exterior.
Partiendo de este sistema básico puede
concebirse una multitud de modos de ejecución. Primero puede
implementarse el componente M500 como el llamado componente TSC
(totally self checking). En este caso se conduce la señal de error
M530 hacia fuera por al menos dos líneas ("dual rail"), y
mediante las medidas internas de diseño y de descubrimiento de
errores se garantiza que en cada posible caso de error del
componente comparador esta señal se encuentra correctamente o de
manera reconociblemente incorrecta. Una señal dual rail proporciona
además una señal binaria a través dos líneas, preferentemente de
forma que las dos líneas estén invertidas una respecto a la otra en
el caso libre de errores. Una variante preferente en el empleo del
sistema conforme a la invención es el empleo de un comparador TSC
de este tipo. Una segunda clase de modos de ejecución puede
diferenciarse dependiendo de qué grado de sincronía tienen que tener
ambas entradas M510, M511 (y/o M610, M611). Un posible modo de
ejecución se caracteriza por una sincronía cíclica, es decir, la
comparación de los datos puede efectuarse en un pulso.
Se origina una ligera variación empleando un
elemento síncrono de desfase, que se usa entre las entradas en caso
de asimetría fija de fase, que desfasa las señales correspondientes,
por ejemplo, tiempos de reloj semienteros o enteros. Una asimetría
de fase de este tipo es útil para evitar errores Common Cause (de
causa común), es decir, aquellas causas de error, que puedan
afectar simultáneamente y del mismo modo a varias unidades de
procesamiento.
La Figura 14 describe en consecuencia otro modo
de ejecución. Los componentes y señales M600, M610, M611, M620,
M630 tienen el mismo significado que los componentes y señales M500,
M510, M511, M520, M530 correspondientes de la Figura 13. En la
Figura 14 se inserta, por tanto, el componente M640, que desfasa la
entrada temporalmente temprana en la misma medida de la asimetría
de fase, además de estos componentes. Este elemento de desfase se
aloja preferentemente en el comparador, para emplearlo sólo en el
modo de comparación. Alternativamente o complementariamente pueden
colocarse memorias intermedias M650, M651 en la cadena de entrada,
para poder tolerar asimismo aquellas asincronías, que no se
representan como asimetría pura de reloj o de fase. Estas memorias
intermedias se proyectan preferentemente como memoria FIFO (first
in, first out: el primer dato que se escribe es el primero que se
lee). Una memoria de este tipo tiene una entrada y una salida y
puede almacenar varias palabras de memoria. Una palabra de memoria
entrante se desplaza al llegar una nueva palabra de memoria a su
posición. Tras la última posición (la profundidad de la memoria
intermedia), se desplaza "fuera de la memoria". Si hubiera una
memoria intermedia de este tipo, podrían tolerarse también
asincronías hasta la profundidad máxima de la memoria intermedia.
En este caso se tendría que emitir también una señal de error cuando
la memoria intermedia se desborde.
Adicionalmente, en los modos de ejecución del
comparador puede distinguirse posteriormente cómo se genera la
señal M520 (o M620). Un modo de ejecución preferente es colocar las
señales de entrada M510, M511 (y/o M610, M611) en la salida y hacer
la conexión interrumpible mediante interruptores. La ventaja
particular de este modo de ejecución es que, para la conmutación
entre el modo de actuación y los diferentes modos de comparación
posibles, se pueden emplear los mismos interruptores. Las señales
también pueden ser generadas alternativamente por memorias
intermedias internas del comparador.
Una última clase de modos de ejecución puede
diferenciarse dependiendo de cuántas entradas hay en el comparador
y de cómo debería reaccionar el comparador. En el caso de tres
entradas puede efectuarse una votación por mayoría, una comparación
de las tres o una comparación de sólo dos señales. En el caso de
cuatro o más entradas pueden concebirse correspondientemente más
modos de ejecución. En la descripción de la Figura 20 hay una
descripción detallada de los posibles modos de ejecución.
La selección precisa de los modos de ejecución
se empareja preferentemente con los diferentes modos de operación
del sistema global. Es decir, cuando hay varios modos diferentes de
actuación o de comparación, estos se emparejan preferentemente con
el modo apropiado del comparador.
En algunos puntos de esta invención es necesario
o favorable desactivar o volver pasivo un comparador o un elemento
más general de votación/procesamiento/clasificación (designado en lo
sucesivo siempre como comparador por motivos de simplicidad). Para
ello existen muchas posibilidades. Por una parte, se puede enviar
una señal al comparador, con la que se active o desactive. Para
ello hay que insertar un circuito lógico adicional en el
comparador, que pueda efectuar esto. Otra posibilidad es no
suministrar al comparador ningún dato a comparar. Una tercera
posibilidad es ignorar la señal de error del comparador al nivel del
sistema. Adicionalmente, también se puede interrumpir incluso la
señal de error. Es común a todas las posibilidades que no juega
ningún papel en el sistema que dos o más datos, potencialmente
comparados, sean diferentes. Si este fuera el caso, se consideraría
el comparador como pasivo o desactivado.
En lo sucesivo se considerará una implementación
de un conmutador en cooperación con un comparador, o sea, de una
unidad de conmutación y comparación G70. Esta implementación resulta
especialmente favorable, si se implementa junto con las unidades de
ejecución G10a y G10b dentro de un chip.
Reuniendo los componentes comparador y
conmutador se origina sólo un gasto indirecto en hardware mucho
menor, si se implementa dentro de un chip. Una variante preferente
de la implementación es, en consecuencia, reunir estas dos partes
en un componente. Esto es un componente con al menos las señales
iniciales (salida unidad de ejecución 1, salida unidad de ejecución
2), al menos las señales de salida (salida 1, salida 2), una señal
lógica de salida "salida conjunta" (puede coincidir físicamente
con la salida 1 o con la salida 2) y un comparador. El componente
tiene la habilidad de conmutar el modo, dejar pasar todas las
señales en el modo de actuación, y comparar y, si fuera necesario,
dejar pasar varias señales en un modo de comparación. Resultan aún
adicionalmente favorables otras señales iniciales y de salida: Una
señal de error para la señalización de un error detectado, una
señal de modo para señalizar el modo en que se encuentra este
componente, y señales de control desde y al componente.
En un ejemplo de ejecución preferente se
conectan las dos o más unidades de ejecución en el modo de actuación
como maestros a un bus interno del procesador. La unidad de
comparación está desactivada o la señal de error, generada para un
comportamiento diferente de las unidades de ejecución en uno de los
modos de comparación concebibles, está enmascarada. Esto significa,
que la unidad de conmutación y comparación es transparente al
software. En el modo de comparación considerado las unidades físicas
de ejecución a comparar se tratan como una unidad lógica de
ejecución en el bus, es decir, sólo aparece un maestro en el bus. Se
activa la señal de error del comparador. La unidad de conmutación y
comparación separa para ello todo hasta una unidad de ejecución a
través de interruptores del bus interno del procesador, duplica las
entradas de la unidad lógica de ejecución y las suministra a todas
las unidades de ejecución implicadas en el modo de comparación.
Durante la escritura en el bus se comparan los procesos de salida
en la unidad de comparación y, en caso de igualdad, se escriben
estos datos a través de una entrada existente al
bus.
bus.
En las Figuras 15 y 16 se describe el
comportamiento en principio del componente preferente M700 (unidad
de conmutación y comparación, corresponde a G70). Por motivos de
simplicidad, esta Figura sólo se traza para dos unidades de
ejecución. La Figura 15 muestra además el estado del componente en
el modo de comparación, la Figura 16 en el modo de actuación. Las
diferentes posiciones de interruptor en estos modos son realizadas
por M700 mediante el control M760. Las dos unidades de ejecución
M730, M731 pueden escribir primero en el modo de actuación sobre el
bus de datos y de direcciones M710, cuando los interruptores M750 y
M751 estén cerrados, tal y como se muestra en la Figura 16. Se
supone que el protocolo del bus u otros componentes no indicados
resuelven los posibles conflictos de escritura. En el modo de
comparación, el comportamiento es otro al menos desde el punto de
vista lógico. Tal y como se muestra en la Figura 15, entonces los
interruptores M750 y M751 están abiertos y, por consiguiente,
interrumpen las posibilidades directas de acceso. Al contrario de
la Figura 16, los interruptores M752 y M753 están entonces
evidentemente cerrados en la Figura 15. Las señales M740, M741 de
las unidades de ejecución M730, M731 se envían al componente de
comparación M720. Éste se construye al menos, tal y como se indica
en la Figura 13, de forma que pueda contener, sin embargo, también
extensiones, tal y como se describen en la Figura 14. En las Figura
15 y 16 se prescinde, sin embargo, de una representación de la
señal de error o también de otras señales del componente comparador
M720. Si las dos señales coinciden, se cierra el interruptor M754,
y entonces se transmite una de las dos señales coincidentes al bus
de direcciones/datos M710. En suma, para ello es necesario que la
unidad de conmutación y comparación M700 pueda afectar a los
interruptores M750-M754. La respectiva posición del
interruptor depende del modo y del reconocimiento de errores. Las
variantes, en las que el interruptor M754 está siempre cerrado, y la
señal de error produce una reacción apropiada del sistema, están
también cubiertas con esto.
En la Figura 17 se representa una variante de la
unidad de conmutación y comparación. También ya para un simple
sistema con sólo dos unidades de ejecución G10a y G10b, existen
muchas variantes de implementación de una unidad de conmutación y
comparación. Otra variante especialmente favorable, cuando no ha de
emplearse ninguna memoria intermedia en el comparador, se muestra
en la Figura 17. Como en la Figura 15, la Figura 16 da las señales
M840, M841 de las unidades de ejecución. Estas últimas no se indican
en esta Figura. En el componente M800 conforme a la invención
existe un circuito lógico de modo M810, que da el modo del
componente. En el modo de actuación cierra el interruptor M831, en
el modo de comparación lo abre. Proporciona adicionalmente la señal
de modo al comparador M820. Éste compara en esta implementación
siempre, aunque emplea el resultado de la comparación y la señal de
modo, para controlar el interruptor M830. En el modo de actuación,
el interruptor está siempre cerrado; en el modo de comparación
siempre que no haya ningún error. Naturalmente, el interruptor
también puede mantenerse abierto, si se hubiera identificado una vez
un error, hasta que surja una puesta a cero apropiada.
En la Figura 18 se representa otro modo de
ejecución de la unidad de conmutación y comparación. Esta
alternativa, cuenta en realidad con más interruptores, aunque deja
para ello el comparador inactivo en el modo de actuación y puede
tratar también, en consecuencia, más fácilmente con las asincronías.
Existen de nuevo las dos señales M940, M941 de las unidades de
ejecución. Estas últimas no se representan de nuevo en este dibujo.
En el componente M900 conforme a la invención existe un circuito
lógico de modo M910, que da el modo del componente. En el modo de
actuación cierra el interruptor M931 y abre los interruptores M932 y
M933. Por tanto, el componente comparador M920 no se alimenta en
este modo con datos. Esto permite, en caso de asincronías, mayores
tiempos de carga a la memoria intermedia, y/o, en una
implementación, menores profundidades de la memoria intermedia. En
el modo de actuación, el interruptor M930 está siempre cerrado. En
el modo de comparación, el componente M910 cierra los interruptores
M932, M933 e interrumpe el acceso directo al bus abriendo el
interruptor M931. El circuito lógico de modo M910 puede comunicar
opcionalmente el modo al comparador M920. El interruptor M930 está
cerrado en el modo de comparación en el caso libre de errores. En
caso de error, el componente comparador M920 interrumpe la
transmisión de la señal M940 al bus abriendo el interruptor
M930.
En los dibujos descritos es posible sin coste
conducir el modo o las señales de error hacia fuera. Resulta
adicionalmente posible sin problemas, particularmente para la
generación del estado interno de modo, que otras señales se dirijan
al componente.
En resumen, una implementación preferente de
este componente se caracteriza porque hay varias unidades de
procesamiento, las señales de salida se pueden escribir sobre el bus
(por ejemplo, bus de direcciones/datos). Resulta fundamental que el
componente pueda procesar al menos dos de las señales de salida de
las unidades de ejecución (por ejemplo, comparar, aunque
eventualmente también votar o clasificar) y que el componente pueda
afectar al menos a un interruptor, con el que se interrumpirá al
menos uno de los accesos directos al bus. Esto será especialmente
útil cuando las unidades de ejecución sean núcleos de ordenador.
Resulta además favorable que el estado del interruptor
influenciable caracterice el modo de ejecución de la unidad de
cálculo.
Las propiedades del sistema, particularmente los
posibles modos de comparación, se transforman entonces especialmente
bien, cuando el componente pueda depositar una señal en el bus de
direcciones/datos. Esta es favorablemente una conexión de una las
señales de salida a una de las unidades de ejecución. Esto puede
originarse alternativamente a partir del procesamiento de las
diferentes señales de salida de las diferentes unidades de
ejecución.
Tal y como se puso ya de manifiesto, por
ejemplo, en las descripciones de las Figuras 17 y 18, se puede
identificar una información de modo en el sistema y -dependiendo de
la organización en los componentes- también en uno de los
componentes. Esta información del modo puede encontrarse,
dependiendo de la implementación, incluso explícitamente, en un
subcomponente. En una implementación preferente esta señal puede
también extraerse del componente y proporcionar otras partes del
sistema.
Generalmente se puede explicar el comportamiento
conforme a la invención en la Figura 21. Las señales y componentes
N100, N110, N120, N130, N140, N141, N142, N143, N14n, N160, N161,
N162, N163, N16n tienen el mismo significado que en la Figura 20.
Por otra parte, en esta Figura se muestran la señal de modo N150 y
la señal de error N170. La señal opcional de error es generada por
el circuito lógico de errores N130, que recoge las señales de
error, y es o bien una transmisión directa de las señales de error
individual o una concentración de la información de error allí
contenida. La señal de modo N150 es opcional, su empleo fuera de
este componente puede resultar, sin embargo, favorable en muchos
puntos. La combinación de la información del circuito lógico N110
(es decir, la función descrita en la descripción de la Figura 20) y
de la lógica de procesamiento (es decir, el establecimiento de la
operación de comparación por señal de salida, es decir, por valor de
la función) es la información del modo y ésta especifica el modo.
Esta información es generalmente naturalmente polivalente, es
decir, no puede representarse sólo a través de un bit lógico. No
todos los modos concebibles teóricamente son posibles en una
implementación dada, se limita preferentemente el número de modos
permitidos. La señal de modo conduce entonces la información
relevante del modo hacia fuera. Una implementación HW se representa
preferentemente de forma que pueda configurarse la señal de modo
externamente visible. La lógica de procesamiento y el circuito
lógico se configuran preferentemente asimismo configurables. Estas
configuraciones están preferentemente coordinadas.
Alternativamente, también se pueden conducir hacia fuera, sólo o
complementariamente, variaciones de la señal de modo. Esto tiene
ventajas particularmente en una configuración binaria.
Esta señal de modo se protege preferentemente.
Una implementación en el sistema binario se representa, por
ejemplo, en la Figura 19, en base a la implementación representada
en la Figura 17. Allí se conduce la señal M850 hacia fuera de la
unidad de conmutación y comparación. En un sistema binario, esta
información puede representarse lógicamente a través de un bit.
Entonces puede representarse una protección preferentemente a
través de una señal dual-rail. Generalmente se puede
proteger asimismo la señal por duplicación, opcionalmente
invertida. Alternativamente se puede generar también una paridad,
generada preferentemente de manera interna e intrínsecamente
segura, o emplear un CRC (cyclic redundancy check o código de
redundancia cíclica) o ECC (error correcting code o código de
corrección de errores).
La señal de modo puede emplearse fuera del
componente. Primero puede emplearse para la autosupervisión del
sistema operativo. Este es responsable de la vista SW para una
conmutación y debería saber siempre, en qué modo se encuentra el
sistema y poner el sistema también en este modo. La verificación de
esta señal puede emplearse, por tanto, para la protección. Esto
puede ocurrir primero directamente. Una posibilidad alternativa es,
sin embargo, también, hacer plausible una consulta en el sistema
operativo con esta señal a través de temporizadores u otras
unidades "independientes".
Generalmente puede emplearse esta señal
opcionalmente también en otros colectores de datos de un \muC (o
unidad aritmética y lógica más general). Por ejemplo, puede
programarse una MPU (memory protection unit o unidad de protección
de la memoria) de forma que permita determinados accesos a memoria
(de determinadas unidades de ejecución) sólo en determinados modos.
Una MPU es además una unidad, que puede garantizar que sólo se
efectúen accesos permitidos al bus de datos/direcciones, por
ejemplo, impidiendo a determinadas partes del programa el acceso a
determinadas áreas de direcciones. Mediante una introducción de la
señal de modo en la MPU, la configuración y programación
correspondientes de esta MPU, y evaluación de estos datos de
configuración y de la señal de modo, puede realizarse una
protección adicional. Esto simplifica eventualmente hasta la
programación, si la señal de modo es ya información suficiente para
la verificación. Entonces basta una programación
cuasi-estática para el tiempo de inicialización del
\muC. Lo correspondiente puede servir para las unidades
periféricas. También aquí hay aplicaciones, en las que sólo se
permite un acceso a un elemento periférico correspondiente en
determinados modos. Mediante una introducción de la señal de modo en
el elemento periférico, la configuración y programación
correspondientes del elemento periférico, y evaluación de estos
datos de configuración y de la señal de modo, puede realizarse una
protección adicional. Esto simplifica eventualmente hasta la
programación, si la señal de modo es ya información suficiente para
la verificación. Entonces basta una programación
cuasi-estática para el tiempo de inicialización del
\muC. La evaluación de esta señal puede emplearse también de
manera análoga en el controlador de interrupción. Las
monitorizaciones de este tipo pueden constituir entonces la base o
un componente fundamental del concepto de seguridad. Mediante la
ejecución y estructuración SW apropiadas puede ser posible
establecer el concepto de seguridad para una clase completa de
errores en la aplicación considerada sobre esta señal de modo. Esto
resulta particularmente favorable, cuando la señal de modo sea
intrínsecamente segura en una forma apropiada, tal y como se ha
descrito anteriormente. Resulta adicionalmente favorable en este
caso, que el componente considerado tenga la posibilidad de enviar
una señal de error o accionar una ruta de desconexión, si detecta
una discrepancia entre la señal de modo y el acceso a sí mismo.
Otro propósito importante de aplicación es la
evaluación de la señal de modo fuera de la unidad aritmética y
lógica. Una aplicación directa es la evaluación en un perro guardián
decrementador. Un "perro guardián" de este tipo consiste en al
menos un registro (de contador), que puede ajustarse a un valor
entero mediante el microprocesador. Tras el ajuste de estos
registros, el "perro guardián" decrementa independientemente el
valor del registro con un periodo fijo. Si el valor del registro es
cero o aparece un desbordamiento, el "perro guardián" genera
una señal de error. Cuando no deba generarse la señal de error, el
microprocesador tendrá que reinicializar inmediatamente el valor
del registro. Por tanto, puede comprobarse (dentro de límites) si
el microprocesador ejecuta correctamente el software. Si el
microprocesador no sigue ejecutando el software no correctamente,
se acepta que, en este caso, tampoco el "perro guardián" opera
ya correctamente y, por consiguiente, el "perro guardián"
genera una señal de error. La integridad del hardware y de las
estructuras de datos pueden comprobarse eficazmente en un modo de
comparación, aunque para ello se tiene que garantizar que el
microprocesador se reconmute periódicamente de nuevo a éste. Es,
por tanto, objetivo del "perro guardián" aquí descrito, no
sólo generar una señal de error, cuando no se sigue reinicializando
dentro de un periodo definido, sino también cuando el
microprocesador no siga reconmutándose dentro de un periodo definido
al modo de comparación definido. Por ejemplo, el "perro
guardián" sólo puede reinicializarse cuando la señal de modo
indique el modo de comparación definido de la unidad aritmética y
lógica. Se garantiza, por tanto, que la unidad aritmética y lógica
se reconmuta periódicamente a este modo. Alternativamente o
complementariamente, el valor en el registro del "perro
guardián" sólo decrece cuando se hayan activado determinadas
interrupciones en el microprocesador. Para ello tienen que
acoplarse las señales externas de interrupción del \muC también al
perro guardián. En el perro guardián se almacena qué interrupciones
conmutan el \muC al modo de comparación definido. El perro
guardián se "levanta", tan pronto aparece una interrupción de
este tipo, se vuelve a poner en su sitio por la presencia de la
señal de modo correcta.
De manera totalmente general, resulta útil,
particularmente en la aplicación a un concepto de seguridad, evaluar
la señal de modo en una fuente externa al \muC. Un punto
fundamental en la protección de la salida correcta del software a
un ordenador, tal y como se describe en la invención, es la
conmutación correcta entre los diferentes modos permitidos. Primero
debería comprobarse la propia capacidad de conmutación,
preferentemente también incluso la correcta conmutación. Tal y como
se ha descrito anteriormente, también puede ser interesante que se
acepte periódicamente un modo especial. Un procedimiento de este
tipo resulta especialmente favorable siempre que la señal de modo
se acondicione de manera intrínsecamente segura. Una posibilidad es
conducir la señal de modo a un ASIC u otro \muC. Éste puede
comprobar al menos los siguientes puntos a través de temporizadores
y lógica simple con empleo de esta señal:
¿Se conmuta la unidad aritmética y lógica
suficientemente a menudo (por ejemplo, como muy tarde cada 1000
\mus) a uno o varios modos definidos? ¿Se emite siempre una
determinada señal durante la conmutación a un modo? ¿Se conmuta la
unidad aritmética y lógica periódicamente desde un modo? ¿Son
válidos determinados patrones simples de la sucesión de los modos?
¿Es válida una muestra temporal general (por ejemplo, como media
<70% en el modo 1 y <50% en el modo 2)? Cualquier combinación
de propiedades temporales lógicas de la señal de modo se
complementa, si fuera necesario, empleando señales adicionales.
En la Figura 22 se describe además la
configuración básica para una sugerencia que va por otro lado, en la
que entre un partner de ASIC o del \muC y la unidad aritmética y
lógica considerada, que cuenta con esta invención, se efectúa un
juego especial de pregunta-respuesta. N300 es una
unidad aritmética y lógica, que puede emitir una de estas señales
de modo. Esto puede ser, por ejemplo, un \muC con varias unidades
de ejecución y otro componente, que puede generar esta señal de
modo. Por ejemplo, este otro componente puede realizarse como en la
Figura 19 o 21. N300 emite esta señal N310 al partner (por ejemplo,
otra unidad aritmética y lógica, otro \muC o ASIC) N330. Éste
puede hacer consultas, a través de la señal N320, al N300, que tiene
que responder N300 a través de N321. Una pregunta de este tipo
puede ser un problema aritmético, cuyo resultado correcto ha de
suministrar N300 a través de N321 dentro de un periodo definido.
N330 puede comprobar la corrección de estos resultados
independientemente de N300. Por ejemplo, los resultados se almacenan
en N330 o N330 puede calcularlos ella misma. En caso de detección
de un valor no correcto, se reconocerá un error. Lo especial de la
comunicación pregunta-respuesta propuesta es que la
señal de modo se examina paralelamente a la respuesta. Las
preguntas se hacen preferentemente de forma que, para la respuesta
por parte de N300, tengan que desempeñarse estos determinados
modos. Por tanto, puede comprobarse eficazmente que todas las
conmutaciones de modo sean funcionales y que en la secuencia de
programa también se efectúe la conmutación de modo prevista. Esto
puede servir como componente fundamental de un concepto de
seguridad, particularmente durante la inicialización de un sistema,
aunque también durante la operación.
Otra aplicación de esta idea es la evaluación de
la señal de modo en un control del actuador. En muchas aplicaciones
en el ámbito del automóvil se tiende hoy en día a los llamados
actuadores inteligentes. Estos son actuadores con un alcance
electrónico mínimo suficiente para recibir un comando de control del
actuador, y controlar entonces el actuador de forma que entonces se
ejecute también este comando de control.
La idea básica se representa en la Figura 23.
Una unidad aritmética y lógica N400, que cuenta con la invención,
emite un comando de control a un actuador (inteligente) o a un
control del actuador N430 a través de la conexión N420. Emite
paralelamente la señal de modo a este actuador a través de la
conexión N410. El actuador N430 comprueba mediante de la señal de
modo, si se permite el control y devuelve opcionalmente un estado de
error a través de la señal N440. En caso de un control incorrecto,
éste adopta en el sistema el estado Fail-silence no
crítico.
Claims (26)
1. Procedimiento de evaluación de una señal de
un sistema de ordenadores con al menos dos unidades de ejecución,
conmutándose el sistema de ordenadores entre al menos dos modos de
operación y a un primer modo de operación le corresponde un modo de
comparación y a un segundo modo de operación un modo de actuación,
caracterizado porque el sistema de ordenadores produce una
señal de modo y/o variaciones de la señal de modo, que indica el
modo de operación actual y porque se proporciona(n) al menos
variaciones de la señal de modo y/o esta misma señal de modo para
la evaluación fuera del sistema de ordenadores.
2. Procedimiento acorde a la Reivindicación 1,
caracterizado porque el componente externo está configurado
como componente de seguridad, particularmente como perro
guardián.
3. Procedimiento acorde a la Reivindicación 1,
caracterizado porque la unidad de procesamiento está
configurada como segundo sistema de ordenadores.
4. Procedimiento acorde a la Reivindicación 1,
caracterizado porque una evaluación se lleva a cabo además
de forma que una condición predeterminada sólo se active dentro de
un modo de operación predeterminado en función de la señal de modo
y/o de las variaciones de la señal de modo.
5. Procedimiento acorde a la Reivindicación 1,
caracterizado porque una evaluación se lleva a cabo además
de forma que una funcionalidad predeterminada del componente externo
sólo se active dentro de un modo de operación predeterminado en
función de la señal de modo y/o de las variaciones de la señal de
modo.
6. Procedimiento acorde a la Reivindicación 1,
caracterizado porque el componente externo supervisa el
cambio en el modo de comparación.
7. Procedimiento acorde a la Reivindicación 1,
caracterizado porque el componente externo sólo se activa en
un modo de operación predeterminado y esto se supervisa por medio de
la señal de modo y/o de las variaciones de la señal de modo.
8. Procedimiento acorde a la Reivindicación 1,
caracterizado porque el componente externo contiene
informaciones, que indican mediante qué señales de conmutación,
particularmente señales de interrupción, se lleva a cabo un cambio
de los modos de operación y esto se supervisa por medio de la señal
de modo y/o de las variaciones de la señal de modo.
9. Procedimiento acorde a la Reivindicación 1,
caracterizado porque como evaluación se efectúa además un
reconocimiento de errores de forma que se lleve a cabo una
comunicación pregunta-respuesta.
10. Procedimiento acorde a la Reivindicación 1,
caracterizado porque como evaluación se efectúa además un
reconocimiento de errores de forma que la señal de modo y/o las
variaciones de la señal de modo se compare(n) con una
información predefinida y se reconozca un error en caso de
discrepancia o coincidencia.
11. Procedimiento acorde a la Reivindicación 1,
caracterizado porque como evaluación se efectúa además un
reconocimiento de errores de forma que una información formada en
función de la señal de modo y/o las variaciones de la señal de modo
se compare con una información predefinida y se reconozca un error
en caso de discrepancia o coincidencia.
12. Procedimiento acorde a la Reivindicación 1,
caracterizado porque mediante la señal de modo y/o las
variaciones de la señal de modo se supervisa un cambio de los modos
de operación mediante un componente externo al sistema de
ordenadores.
13. Procedimiento acorde a la Reivindicación 1,
caracterizado porque la señal de modo y/o las variaciones de
la señal de modo se protege(n) mediante al menos una
información complementaria.
14. Procedimiento acorde a la Reivindicación 1,
caracterizado porque la señal de modo y/o las variaciones de
la señal de modo se protege(n) de forma que al menos se
duplique(n) la señal de modo y/o las variaciones de la señal
de modo.
15. Procedimiento acorde a la Reivindicación 1,
caracterizado porque la señal de modo y/o las variaciones de
la señal de modo se protege(n) como señal de doble rampa.
16. Procedimiento acorde a la Reivindicación 1,
caracterizado porque se prevén más de dos modos de operación,
entre los que puede conmutarse.
17. Procedimiento acorde a la Reivindicación 1 ó
16, caracterizado porque para la indicación del respectivo
modo de operación se prevé un identificador configurable del modo de
operación.
18. Procedimiento acorde a la Reivindicación 1 ó
16, caracterizado porque para la indicación del respectivo
modo de operación se prevé una variable de índice configurable.
19. Procedimiento acorde a la Reivindicación 1,
caracterizado porque se efectúa un reconocimiento de errores
en base a la señal de modo y/o a las variaciones de la señal de
modo, produciéndose en el contexto de este reconocimiento de
errores al menos una señal de error.
20. Procedimiento acorde a una de las
Reivindicaciones 1,2,4,5,6,7,8, caracterizado porque en el
componente externo se emplea un contador.
21. Procedimiento acorde a una de las anteriores
Reivindicaciones, caracterizado porque la señal de modo tiene
múltiples valores, de forma que puedan representarse más de dos
modos con la señal de modo.
22. Dispositivo para la evaluación de una señal
de un sistema de ordenadores con al menos dos unidades de
ejecución, conmutándose el sistema de ordenadores entre al menos dos
modos de operación y a un primer modo de operación le corresponde
un modo de comparación y a un segundo modo de operación le
corresponde un modo de actuación, caracterizado porque el
sistema de ordenadores contiene medios diseñados de tal manera, que
éstos generen una señal de modo y/o variaciones de la señal de modo,
que indique(n) el modo de operación actual y porque se
proporciona(n) al menos variaciones de la señal de modo y/o
esta misma señal de modo para la evaluación fuera del sistema de
ordenadores.
23. Dispositivo acorde a la Reivindicación 22,
caracterizado porque el componente externo es un componente
de seguridad, particularmente un perro guardián.
24. Dispositivo acorde a la Reivindicación 23,
caracterizado porque el perro guardián es un perro guardián
decrementador.
25. Dispositivo acorde a la Reivindicación 22,
caracterizado porque el componente externo es un actuador o
un componente para el control del actuador.
26. Dispositivo acorde a la Reivindicación 23,
caracterizado porque la señal de modo se produce de tal
manera que con la señal de modo puedan representarse más de dos
modos.
Applications Claiming Priority (13)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE200410051937 DE102004051937A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem |
| DE102004051952 | 2004-10-25 | ||
| DE102004051964 | 2004-10-25 | ||
| DE102004051950 | 2004-10-25 | ||
| DE102004051952A DE102004051952A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem |
| DE200410051964 DE102004051964A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem |
| DE102004051992 | 2004-10-25 | ||
| DE102004051937 | 2004-10-25 | ||
| DE102004051950A DE102004051950A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem |
| DE200410051992 DE102004051992A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems |
| DE102005037222 | 2005-08-08 | ||
| DE102005037222A DE102005037222A1 (de) | 2004-10-25 | 2005-08-08 | Verfahren und Vorrichtung zur Auswertung eines Signals eines Rechnersystems mit wenigstens zwei Ausführungseinheiten |
| PCT/EP2005/055504 WO2006045778A1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2311238T3 true ES2311238T3 (es) | 2009-02-01 |
Family
ID=35985207
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES05801572T Expired - Lifetime ES2311238T3 (es) | 2004-10-25 | 2005-10-25 | Procedimiento y dispositivo para la evaluacion de una señal de un sistema de ordenadores con al menos dos unidades de ejecucion. |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US20080263340A1 (es) |
| EP (1) | EP1812856B1 (es) |
| JP (1) | JP2008518299A (es) |
| KR (1) | KR20070062577A (es) |
| AT (1) | ATE407399T1 (es) |
| DE (2) | DE102005037222A1 (es) |
| ES (1) | ES2311238T3 (es) |
| PL (1) | PL1812856T3 (es) |
| WO (1) | WO2006045778A1 (es) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101048757A (zh) * | 2004-10-25 | 2007-10-03 | 罗伯特·博世有限公司 | 在拥有至少两个执行单元的计算机系统中切换的方法和装置 |
| DE102006048169A1 (de) * | 2006-10-10 | 2008-04-17 | Robert Bosch Gmbh | Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung |
| DE102006050715A1 (de) * | 2006-10-10 | 2008-04-17 | Robert Bosch Gmbh | Verfahren und System zum Erzeugen eines gültigen Signals |
| JP5025402B2 (ja) * | 2007-09-28 | 2012-09-12 | 株式会社日立製作所 | 高安全制御装置 |
| JP2010117813A (ja) * | 2008-11-12 | 2010-05-27 | Nec Electronics Corp | デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム |
| US8275977B2 (en) * | 2009-04-08 | 2012-09-25 | Freescale Semiconductor, Inc. | Debug signaling in a multiple processor data processing system |
| JP5796311B2 (ja) | 2011-03-15 | 2015-10-21 | オムロン株式会社 | 制御装置およびシステムプログラム |
| KR102013582B1 (ko) | 2012-09-07 | 2019-08-23 | 삼성전자 주식회사 | 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법 |
| DE102015216086A1 (de) * | 2015-08-24 | 2017-03-02 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Überwachen eines Zustandes einer elektronischen Schaltungseinheit eines Fahrzeugs |
| US9547483B1 (en) * | 2015-11-06 | 2017-01-17 | International Business Machines Corporation | Feedback directed optimized compiling of optimized executable code |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5028309B1 (es) * | 1970-11-20 | 1975-09-13 | ||
| US3864670A (en) * | 1970-09-30 | 1975-02-04 | Yokogawa Electric Works Ltd | Dual computer system with signal exchange system |
| JPS5026345B1 (es) * | 1970-09-30 | 1975-08-30 | ||
| US3783250A (en) * | 1972-02-25 | 1974-01-01 | Nasa | Adaptive voting computer system |
| JPS58221453A (ja) * | 1982-06-17 | 1983-12-23 | Toshiba Corp | 多重系情報処理装置 |
| AU568977B2 (en) * | 1985-05-10 | 1988-01-14 | Tandem Computers Inc. | Dual processor error detection system |
| US4811345A (en) * | 1986-12-16 | 1989-03-07 | Advanced Micro Devices, Inc. | Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit |
| CA1320276C (en) * | 1987-09-04 | 1993-07-13 | William F. Bruckert | Dual rail processors with error checking on i/o reads |
| GB8729901D0 (en) * | 1987-12-22 | 1988-02-03 | Lucas Ind Plc | Dual computer cross-checking system |
| JPH08161187A (ja) * | 1994-12-09 | 1996-06-21 | Mitsubishi Electric Corp | 計算機制御方式 |
| DE19511842A1 (de) * | 1995-03-31 | 1996-10-02 | Teves Gmbh Alfred | Verfahren und Schaltungsanordnung zur Überwachung einer Datenverarbeitungsschaltung |
| US5796935A (en) * | 1995-07-20 | 1998-08-18 | Raytheon Company | Voting node for a distributed control system |
| JPH1063544A (ja) * | 1996-08-20 | 1998-03-06 | Toshiba Corp | タイムアウト監視方式 |
| DE19827430C2 (de) * | 1997-07-22 | 2001-07-12 | Siemens Ag | Überwachungsverfahren zur Erkennung von Endlosschleifen und blockierten Prozessen in einem Rechnersystem |
| US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
| US6928583B2 (en) * | 2001-04-11 | 2005-08-09 | Stratus Technologies Bermuda Ltd. | Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep |
| US7155721B2 (en) * | 2002-06-28 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for communicating information between lock stepped processors |
| US7003691B2 (en) * | 2002-06-28 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Method and apparatus for seeding differences in 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 |
| US7237144B2 (en) * | 2004-04-06 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Off-chip lockstep checking |
| US7502958B2 (en) * | 2004-10-25 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | System and method for providing firmware recoverable lockstep protection |
-
2005
- 2005-08-08 DE DE102005037222A patent/DE102005037222A1/de not_active Withdrawn
- 2005-10-25 DE DE502005005285T patent/DE502005005285D1/de not_active Expired - Lifetime
- 2005-10-25 JP JP2007537291A patent/JP2008518299A/ja active Pending
- 2005-10-25 AT AT05801572T patent/ATE407399T1/de not_active IP Right Cessation
- 2005-10-25 US US11/666,403 patent/US20080263340A1/en not_active Abandoned
- 2005-10-25 ES ES05801572T patent/ES2311238T3/es not_active Expired - Lifetime
- 2005-10-25 PL PL05801572T patent/PL1812856T3/pl unknown
- 2005-10-25 EP EP05801572A patent/EP1812856B1/de not_active Expired - Lifetime
- 2005-10-25 WO PCT/EP2005/055504 patent/WO2006045778A1/de not_active Ceased
- 2005-10-25 KR KR1020077009148A patent/KR20070062577A/ko not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| US20080263340A1 (en) | 2008-10-23 |
| WO2006045778A1 (de) | 2006-05-04 |
| PL1812856T3 (pl) | 2009-02-27 |
| EP1812856A1 (de) | 2007-08-01 |
| ATE407399T1 (de) | 2008-09-15 |
| JP2008518299A (ja) | 2008-05-29 |
| KR20070062577A (ko) | 2007-06-15 |
| DE502005005285D1 (de) | 2008-10-16 |
| EP1812856B1 (de) | 2008-09-03 |
| DE102005037222A1 (de) | 2007-02-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7669079B2 (en) | Method and device for switching over in a computer system having at least two execution units | |
| JP5199088B2 (ja) | 少なくとも2つの命令実行部および1つの比較ユニットを備えたコンピュータシステムを制御する方法および装置 | |
| ES2311238T3 (es) | Procedimiento y dispositivo para la evaluacion de una señal de un sistema de ordenadores con al menos dos unidades de ejecucion. | |
| CN100520730C (zh) | 在具有至少两个执行单元的计算机系统中对程序代码的执行进行分离的方法和设备 | |
| JP5053854B2 (ja) | 少なくとも2つの実施ユニットを有する計算機システムにおける切替え方法および装置 | |
| US20070255875A1 (en) | Method and Device for Switching Over in a Computer System Having at Least Two Execution Units | |
| CN100538654C (zh) | 在具有多个组件的计算机系统中产生模式信号的方法和设备 | |
| KR20070062573A (ko) | 적어도 2개의 실행 유닛을 구비한 컴퓨터 시스템의 전환장치 및 전환 방법 | |
| US20110208948A1 (en) | Reading to and writing from peripherals with temporally separated redundant processor execution | |
| US20070067677A1 (en) | Program-controlled unit and method | |
| US20080288758A1 (en) | Method and Device for Switching Over in a Computer System Having at Least Two Execution Units | |
| CN101048752A (zh) | 在拥有至少两个执行单元的计算机系统中切换的装置和方法 | |
| JP2008518300A (ja) | 少なくとも2つの実行ユニットを備えるコンピュータシステムにおけるプログラムコードの処理分割方法および装置 | |
| US20080313384A1 (en) | Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units | |
| KR20070062574A (ko) | 적어도 2개의 실행 유닛을 구비한 컴퓨터 시스템의 전환방법 및 그 전환 장치 | |
| CN101048746A (zh) | 用于评价具有至少两个执行单元的计算机系统的信号的方法和设备 | |
| RU2384877C2 (ru) | Способ и устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов | |
| US20090037705A1 (en) | Method and Device for Processing Data Words and/or Instructions | |
| JPH0498326A (ja) | マイクロプロセッサ |