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 PDF

Info

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
Application number
ES05801572T
Other languages
English (en)
Inventor
Reinhard Weiberle
Bernd Mueller
Yorck Collani
Rainer Gmehlich
Eberhard Boehl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DE200410051937 external-priority patent/DE102004051937A1/de
Priority claimed from DE102004051952A external-priority patent/DE102004051952A1/de
Priority claimed from DE200410051964 external-priority patent/DE102004051964A1/de
Priority claimed from DE102004051950A external-priority patent/DE102004051950A1/de
Priority claimed from DE200410051992 external-priority patent/DE102004051992A1/de
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Application granted granted Critical
Publication of ES2311238T3 publication Critical patent/ES2311238T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems 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.
Estado actual de la técnica
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.
Ventajas de la invención
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.
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
Figuras
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.
Descripción de los ejemplos de ejecución
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).
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.
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.
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.
ES05801572T 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. Expired - Lifetime ES2311238T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) マイクロプロセッサ