ES3038868T3 - Use of multicore processor to mitigate common mode computing faults - Google Patents

Use of multicore processor to mitigate common mode computing faults

Info

Publication number
ES3038868T3
ES3038868T3 ES18856012T ES18856012T ES3038868T3 ES 3038868 T3 ES3038868 T3 ES 3038868T3 ES 18856012 T ES18856012 T ES 18856012T ES 18856012 T ES18856012 T ES 18856012T ES 3038868 T3 ES3038868 T3 ES 3038868T3
Authority
ES
Spain
Prior art keywords
data
lane
core
command
channel
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.)
Active
Application number
ES18856012T
Other languages
English (en)
Inventor
Dino A Gianisis
Michael G Adams
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.)
BAE Systems Controls Inc
Original Assignee
BAE Systems Controls Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BAE Systems Controls Inc filed Critical BAE Systems Controls Inc
Application granted granted Critical
Publication of ES3038868T3 publication Critical patent/ES3038868T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Hardware Redundancy (AREA)

Abstract

Un sistema de control incluye un canal de computación y un canal de control de objetos. El canal de computación incluye líneas de comando y monitorización. La línea de comando tiene un primer núcleo de procesador con una arquitectura de primer núcleo que recibe datos de entrada y genera datos iniciales basados en ellos. La línea de monitorización tiene un segundo núcleo de procesador con una arquitectura de segundo núcleo que recibe los datos de entrada y genera datos secundarios basados en ellos. Las arquitecturas de primer y segundo núcleo son diferentes y se implementan en un único dispositivo de sistema en chip. El canal de control de objetos corresponde al canal de computación e incluye un sistema de control de objetos que recibe los datos de comando y genera una señal de control de objetos basada en ellos para controlar el funcionamiento de al menos una parte de un sistema de objetos. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Uso de un procesador multinúcleo para mitigar las fallas informáticas en modo común
Campo
La presente descripción se refiere a un sistema de control crítico para la seguridad y, más particularmente, a un sistema de control crítico para la seguridad que usa núcleos de procesador diferentes para un carril de comando y un carril de monitoreo en cada canal informático redundante para mitigar un fallo de modo común.
Antecedentes
Sistemas de control críticos para la seguridad son necesarios en diversas aplicaciones, como los controles de aeronaves, los sistemas de parada nuclear, los instrumentos médicos, etc. En estas aplicaciones, dado que incluso una sola falla podría causar bajas humanas o pérdidas financieras, se ha hecho un gran esfuerzo para mitigar las fallas mediante el uso de canales informáticos redundantes que permitan la detección de las fallas o el respaldo en caso de que falle al menos un canal. Cada canal informático redundante normalmente incluye un carril de comando y un carril de monitoreo y emplea núcleos de procesador diferentes para el bloque de cálculo de cada carril para contribuir a la diversidad de diseño entre los carriles a fin de mitigar el efecto de una falla de modo común que puede provocar la pérdida de la disponibilidad del control primario.
La industria de los controles integrados está migrando hacia el uso de procesadores multinúcleo para cumplir con el aumento cada vez más exigente de la capacidad de rendimiento y, al mismo tiempo, reducir la energía disipada y aumentar la confiabilidad. En algunos esfuerzos anteriores, los respectivos núcleos de procesador diferentes correspondientes a los dos carriles de cada canal informático redundante se implementan en diferentes dispositivos de sistema en chip (SOC). Sin embargo, en este diseño, los dispositivos SOC separados pueden implementarse en circuitos integrados heterogéneos o suministrarse por diferentes fabricantes, lo que dificulta obtener un nivel similar de seguridad o integridad en ambos carriles.
El documento US-2016/272300 A1 se refiere a un aparato y un método para controlar un actuador. Un carril de comando un carril de monitoreo reciben una pluralidad de comandos para el actuador desde una serie de controladores primarios. El carril de comandos selecciona un primer número seleccionado de comandos de la pluralidad de comandos usando una regla de selección. El carril de monitoreo selecciona un segundo número seleccionado de comandos de entre la pluralidad de comandos utilizando la regla de selección y genera un valor de comprobación para el segundo número de comandos seleccionado. El primer número seleccionado de comandos del carril de comandos y el valor de verificación del carril de monitoreo se combinan para formar un mensaje de orden de control del actuador comprendiendo el primer número seleccionado de comandos y el valor de verificación. El mensaje de comando de control del actuador se envía a un controlador del actuador para controlar el actuador.
El documento US-9 611 033 B1 se refiere a un sistema de control para una aeronave que incluye un primer y un segundo carriles que tienen respectivos procesadores primero y segundo diferentes entre sí y configurados para emitir los respectivos primeros y segundos datos de cálculo. Al menos un dispositivo lógico programable puede configurarse para recibir la primera salida de datos de cálculo y la segunda salida de datos de cálculo, determinar una diferencia entre las mismas y transmitir una salida de datos de cálculo correctiva al primer procesador y al segundo procesador a través de los respectivos bucles de retroalimentación si la diferencia entre la primera salida de datos de cálculo y la segunda salida de datos de cálculo supera un valor umbral predeterminado.
Resumen
El objeto para el que se solicita la protección se define en las reivindicaciones adjuntas.
En un aspecto de la presente descripción, se proporciona un sistema de control. El sistema de control incluye un canal de computación y un canal de control de objetos. El canal de computación incluye un carril de comando y un carril de monitoreo. El carril de comandos tiene un primer núcleo de procesador con una arquitectura de primer núcleo que recibe los datos de entrada y genera los primeros datos según los datos de entrada. El carril de monitoreo tiene un segundo núcleo de procesador con una arquitectura de segundo núcleo que recibe los datos de entrada y genera segundos datos según los datos de entrada. La primera arquitectura de núcleo y la segunda arquitectura de núcleo son diferentes entre sí y se implementan en un único dispositivo de sistema en chip. El canal informático emite los primeros datos como datos de comando en respuesta a la determinación de que los primeros datos coinciden con los segundos datos. El canal de control de objetos corresponde al canal de computación e incluye al menos un sistema de control de objetos. El sistema de control de objetos recibe los datos de comandos del canal informático y genera una señal de control de objetos basándose en los datos de comandos para controlar el funcionamiento de al menos una parte de un sistema de objetos.
En otro aspecto de la presente descripción, se proporciona un sistema informático. El sistema informático incluye un carril de comando y un carril de monitoreo. El carril de comandos tiene un primer núcleo de procesador con una arquitectura de primer núcleo que recibe los datos de entrada y genera los primeros datos según los datos de entrada. El carril de monitoreo tiene un segundo núcleo de procesador con una segunda arquitectura de núcleo diferente a la arquitectura del primer núcleo que recibe los datos de entrada y genera segundos datos según los datos de entrada. La primera arquitectura de núcleo y la segunda arquitectura de núcleo son diferentes entre sí y se implementan en un único dispositivo de sistema en chip. El sistema informático incluye además una lógica de control que recibe los primeros datos y los segundos datos y emite los primeros datos como datos de comando en respuesta a la determinación de que los primeros datos coinciden con los segundos datos.
En otro aspecto más, se proporciona un método implementado por ordenador para operar un sistema de control que incluye un canal informático que tiene un carril de comando y un carril de monitoreo. El método incluye recibir datos de entrada por un primer núcleo de procesador del carril de comandos, generar primeros datos basados en los datos de entrada por el primer núcleo de procesador, recibir los datos de entrada por un segundo procesador central del carril de monitoreo, generar segundos datos basados en los datos de entrada por el segundo núcleo de procesador y emitir los primeros datos como datos de comando por el canal informático. Una arquitectura de primer núcleo del primer núcleo de procesador y una arquitectura de segundo núcleo del segundo núcleo de procesador son diferentes entre sí y se implementan en un único dispositivo de sistema en chip.
Breve descripción de los dibujos
La FIG. 1A representa un ejemplo de sistema de control crítico para la seguridad que incluye una pluralidad de canales informáticos redundantes según una realización de la presente descripción;
La FIG. 1B representa un ejemplo de sistema de control crítico para la seguridad que incluye una pluralidad de canales informáticos redundantes según una realización de la presente descripción;
La FIG. 2A representa un ejemplo de diagrama de bloques funcional de cada canal informático redundante según una realización de la presente descripción;
La FIG. 2B representa un diagrama de bloques de un ejemplo de circuito lógico de la FIG. 2A según una realización de la presente descripción;
La FIG. 3 es un diagrama de bloques de un dispositivo SOC multinúcleo de ejemplo según una realización de la presente descripción;
La FIG. 4 representa ejemplos de características de diversidad utilizadas en un carril de comando y un carril de monitoreo, según una realización de la presente descripción;
La FIG. 5A es un diagrama de bloques de un dispositivo SOC multinúcleo que ilustra las arquitecturas principales y las características de diversidad utilizadas en un carril de comandos según una realización de la presente descripción;
La FIG. 5B es un diagrama de bloques de un dispositivo SOC multinúcleo que ilustra las arquitecturas principales y las diversas características utilizadas en un carril de monitoreo según una realización de la presente descripción; y
La FIG. 6 es un diagrama de flujo ejemplar que ilustra un método para operar un sistema de control crítico para la seguridad 1 según una realización de la presente descripción.
Descripción detallada de las realizaciones
Las realizaciones de la presente descripción se describirán ahora en detalle sobre la base de los dibujos. Sin embargo, las siguientes realizaciones no limitan la invención reivindicada en las reivindicaciones. Además, todas las combinaciones de características descritas en las realizaciones no son necesariamente obligatorias para la arquitectura del presente sistema y métodos. Números similares se asignan a elementos similares a lo largo de la descripción de las realizaciones de la presente descripción.
Se entenderá que, aunque los términos primero, segundo, tercero, etc. pueden usarse en esta invención para describir varios elementos. Las ubicaciones de estos elementos u órdenes en las que se organizan los elementos no deben estar limitadas por estos términos. En cambio, estos términos solo se usan para distinguir un elemento de otro elemento.
La terminología usada en esta invención tiene el propósito de describir realizaciones particulares solamente y no pretende ser limitante de la descripción. Tal como se usan en esta invención, las formas singulares “un” , “uno/a” y “el/la” pretenden incluir también las formas plurales, a menos que el contexto indique claramente lo contrario.
El término “coincidencia” entre los primeros datos y los segundos datos, tal como se usa en esta invención, no se refiere necesariamente solo a una “coincidencia exacta” en la que cada elemento (por ejemplo, cadenas de bits o caracteres) de los primeros datos es igual a cada elemento de los segundos datos, sino que también puede referirse a una “coincidencia parcial” en la que los elementos de los primeros datos son similares a los elementos de los segundos datos dentro de un intervalo aceptable predeterminado. Solo a modo de ejemplo, se puede determinar una coincidencia si los primeros datos y los segundos datos tienen sustancialmente los mismos elementos, pero son diferentes, por ejemplo, en un orden secuencial en donde los elementos están dispuestos; en este ejemplo, los primeros datos se representan en un formatoendian(de extremidad) grande(big-endian format)(es decir, el bit más significativo) y los segundos datos se representan en un formatoendian(de extremidad) pequeño(little-endian format)(es decir, el bit menos significativo) o viceversa. En otro ejemplo, se puede determinar una coincidencia incluso si varios elementos consecutivos de los primeros datos son idénticos a varios elementos consecutivos en parte de los segundos datos; la coincidencia puede determinarse estableciendo el intervalo aceptable predeterminado (por ejemplo, el número de diferencias permitidas).
La FIG. 1A representa un ejemplo de sistema de control crítico para la seguridad 1 que incluye una pluralidad de canales informáticos redundantes 10a a 10c según una realización de la presente descripción. La FIG. 2A representa un ejemplo de diagrama de bloques funcionales de cada canal informático redundante según una realización de la presente descripción.
Como se representa en el ejemplo de la FIG. 1 A, el sistema de control crítico para la seguridad 1 incluye una pluralidad de canales informáticos redundantes 10a a 10c. El número de canales informáticos redundantes de la presente divulgación no se limita a la ilustración de la FIG. 1A. Cada canal de computación redundante 10a a 10c incluye dos carriles de procesamiento, tales como un carril de comando y un carril de monitoreo. El canal informático redundante 10a incluye un carril de comando 110a y un carril de monitoreo 120a. El canal informático redundante 10b incluye un carril de comando 110b y un carril de monitoreo 120b. El canal informático redundante 10c incluye un carril de comando 110c y un carril de monitoreo 120c.
En algunos aspectos, cada carril de comando (por ejemplo, 110a, 110b, 110c) de los respectivos canales informáticos redundantes 10a a 10c puede denominarse carril principal para generar datos de comando que se pueden usar para generar una señal de control para un sistema de objetos (no se muestra), y cada carril de monitoreo se denomina carril auxiliar para comprobar la anomalía del carril de comando correspondiente o del canal informático redundante general que el carril de comando y el carril de monitoreo al que pertenece.
En la presente descripción, los sistemas de objetos pueden ser sistemas críticos para la seguridad, tales como aeronaves con aplicaciones tripuladas y no tripuladas (por ejemplo, drones, vehículos aéreos no tripulados, etc.), sistemas de parada nuclear, instrumentos médicos o similares, que requieren controles por parte de sistemas de control críticos para la seguridad según la presente descripción.
En el canal informático redundante 10a de la FIG. 1A, el carril de comando 110a recibe los datos de entrada 61 relacionados con el sistema de objetos, procesa los datos de entrada 61 usando un núcleo de procesador 210a con una arquitectura de núcleo Arch 1 y genera los primeros datos de salida (no mostrados en la FIG. 1 A) según los datos de entrada procesados 61. Además, el carril de monitoreo 120a recibe los datos de entrada 62 de la misma manera que los datos de entrada 61, procesa los datos de entrada 62 usando un núcleo de procesador 220a con una arquitectura de núcleo Arch 2 y genera segundos datos de salida (no mostrados en la FIG. 1 A) basándose en los datos de entrada procesados 62. Para mejorar las características de diversidad entre el carril de comandos 110a y el carril de monitoreo 120a, los núcleos de procesador 210a y 220a se implementan con arquitecturas de núcleo diferentes Arch 1 y Arch 2.
Haciendo referencia a la FIG. 1B, un sistema de control crítico para la seguridad 1a en una realización incluye dos núcleos de procesador 210a y 210a' con las respectivas arquitecturas de núcleo Arch 1 y Arch 1' en el carril de comandos 110a' y un procesador 220a con una arquitectura de núcleo Arch 2 en el carril de monitoreo 120a. El sistema 1a aloja una pluralidad de tales núcleos, como tener un núcleo de procesador 210b con una arquitectura de núcleo Arch 3 y un núcleo de procesador 210b' con una arquitectura de núcleo Arch 3' en el carril de comandos 110b' y un núcleo de procesador 220b con una arquitectura de núcleo Arch 4 y un núcleo de procesador 220b' con una arquitectura de núcleo Arch 4' en el carril de monitoreo 120b'.
En una situación normal en la que no hay ningún fallo en el canal informático redundante 10a, el carril de comando 110a y el carril de monitoreo 120a pueden generar la misma salida; Por ejemplo, los primeros datos de salida del carril de comando 110a coinciden con los segundos datos de salida del carril de monitoreo 120a. En este caso, el canal informático redundante 10a puede enviar los primeros datos de salida como datos de comando 63 a un canal de control de objetos (OCC) 1000a. Por otro lado, en una situación anormal en la que existe al menos un fallo en el canal informático redundante 10a, el carril de comando 110a y el carril de monitoreo 120a pueden generar diferentes salidas entre sí; Por ejemplo, los primeros datos de salida del carril de comando 110a no coinciden con los segundos datos de salida del carril de monitoreo 120a. En este caso, el canal informático redundante 10a puede no emitir los datos de comando 63 y/o puede proporcionar una señal de alerta (no mostrada) que indique que los primeros datos de salida del carril de comando 110a no coinciden con los segundos datos de salida del carril de monitoreo 120a a al menos uno de los otros canales informáticos redundantes 10b y 10c.
En el canal informático redundante 10b, el carril de comando 110b puede recibir datos de entrada 64 relacionados con el sistema de objetos, procesar los datos de entrada 64 usando un núcleo de procesador 210b con una arquitectura de núcleo Arch 3 y generar los primeros datos de salida (no mostrados en la FIG. 1A) según los datos de entrada procesados 64. Además, el carril de monitoreo 120b puede recibir datos de entrada 65 sustancialmente iguales a los datos de entrada 64, procesar los datos de entrada 65 usando un núcleo de procesador 220b con una arquitectura de núcleo Arch 4 y generar segundos datos de salida (no mostrados en la FIG. 1A) basándose en los datos de entrada procesados 65. En un ejemplo, para mejorar las características de diversidad entre el carril de comando 110b y el carril de monitoreo 120b, los núcleos de procesador 210b y 220b se implementan con arquitecturas de núcleo diferentes Arch 3 y Arch 4.
En una situación normal en la que no hay ningún fallo en el canal informático redundante 10b, el carril de comando 110b y el carril de monitoreo 120b pueden generar la misma salida; Por ejemplo, los primeros datos de salida del carril de comando 110b coinciden con los segundos datos de salida del carril de monitoreo 120b. En este caso, el canal informático redundante 10b puede enviar datos de comando 66 a un canal de control de objetos 1000b. Por otro lado, en una situación anormal en la que existe al menos un fallo en el canal informático redundante 10b, el carril de comando 110b y el carril de monitoreo 120b pueden generar diferentes salidas entre sí; Por ejemplo, los primeros datos de salida del carril de comando 110b no coinciden con los segundos datos de salida del carril de monitoreo 120b. En este caso, el canal informático redundante 10b puede no emitir los datos de comando 66 y/o puede proporcionar una señal de alerta (no mostrada) que indique que los primeros datos de salida del carril de comando 110b no coinciden con los segundos datos de salida del carril de monitoreo 120b a al menos uno de los otros canales informáticos redundantes 10a y 10c.
En el canal informático redundante 10c, el carril de comando 110c puede recibir datos de entrada 67 relacionados con el sistema de objetos, procesar los datos de entrada 67 usando un núcleo de procesador 210c con una arquitectura de núcleo Arch 5 y generar los primeros datos de salida (no mostrados en la FIG. 1A) según los datos de entrada procesados 67. Además, el carril de monitoreo 120c puede recibir datos de entrada 68 sustancialmente iguales a los datos de entrada 67, procesar los datos de entrada 68 usando un núcleo de procesador 220c con una arquitectura de núcleo Arch 6 y generar segundos datos de salida (no mostrados en la FIG. 1A) basándose en los datos de entrada procesados 68. En un ejemplo, para mejorar las características de diversidad entre el carril de comando 110c y el carril de monitoreo 120c, los núcleos de procesador 210c y 220c se implementan con arquitecturas de núcleo diferentes Arch 5 y Arch 6.
En una situación normal en la que no hay ningún fallo en el canal informático redundante 10c, el carril de comando 110c y el carril de monitoreo 120c pueden generar la misma salida; Por ejemplo, los primeros datos de salida del carril de comando 110c coinciden con los segundos datos de salida del carril de monitoreo 120c. En este caso, el canal informático redundante 10c puede enviar datos de comando 69 a un canal de control de objetos 1000c. Por otro lado, en una situación anormal en la que existe al menos un fallo en el canal informático redundante 10c, el carril de comando 110c y el carril de monitoreo 120c pueden generar diferentes salidas entre sí; Por ejemplo, los primeros datos de salida del carril de comando 110c no coinciden con los segundos datos de salida del carril de monitoreo 120c. En este caso, el canal informático redundante 10c puede no emitir los datos de comando 69 y/o puede proporcionar una señal de alerta (no mostrada) que indique que los primeros datos de salida del carril de comando 110c no coinciden con los segundos datos de salida del carril de monitoreo 120c a al menos uno de los otros canales informáticos redundantes 10a y 10b.
Aunque en la FIG. 1A se ilustra que las arquitecturas principales Arch 1 a Arch 6 son diferentes para cada uno de los canales informáticos redundantes 10a a 10c, las realizaciones de la presente descripción no se limitan a las mismas; por ejemplo, al menos una arquitectura de núcleo usada en un canal de computación redundante se puede usar en otro canal de computación redundante. En otro ejemplo particular, los núcleos de procesador 110b y 120b (o los núcleos de procesador 110c y 120c) del canal informático redundante 100b (o el canal informático redundante 100c) pueden implementarse con las arquitecturas de núcleo Arch 1 y Arch 2, respectivamente, utilizadas para los núcleos de procesador 110a y 120a en el canal redundante 100a.
En la presente descripción, los datos de entrada (por ejemplo, 61, 64 o 67) incluyen, pero no se limitan a: datos de sensores medidos o detectados en varias ubicaciones del sistema de objetos o datos relacionados con las operaciones o el estado del sistema de objetos.
Para realizar la comparación de los primeros datos de salida del carril de comando (por ejemplo, 110a, 110b o 110c) con los segundos datos de salida del carril de monitoreo (por ejemplo, 120a, 120b o 120c) en cada canal informático redundante 10a a 10c, en un ejemplo, puede haber una ruta de comunicación entre el carril de comando y el carril de monitoreo para permitir el intercambio de los primeros datos de salida y/o los segundos datos de salida. En este caso, el carril de monitoreo puede enviar los segundos datos de salida al carril de comando, y el carril de comando puede comparar los segundos datos de salida con los primeros datos de salida. A continuación, si los primeros datos de salida del carril de comando y los segundos datos de salida del carril de monitoreo coinciden entre sí, el carril de comando puede determinar que no hay ningún fallo en el canal informático redundante correspondiente al que pertenecen el carril de comando y el carril de monitoreo y, por lo tanto, el carril de comando puede emitir datos de comando (por ejemplo, 63, 66 o 69) a través de la red de comunicación 50. Si los primeros datos de salida del carril de comandos y los segundos datos de salida del carril de monitoreo no coinciden entre sí, el carril de comandos puede determinar que existen uno o más fallos en el canal informático redundante correspondiente y, por lo tanto, no puede emitir los datos de comandos. En este caso, en una operación opcional, el carril de comandos puede enviar una señal de alerta, que indica que hay un fallo en el canal informático redundante correspondiente, a uno o más de los otros canales informáticos redundantes a través de la red de comunicación 50. Además, en una operación opcional, uno o más de los otros canales informáticos redundantes que reciben la señal de alerta pueden hacerse cargo de las tareas u operaciones del canal informático redundante en donde se ha producido el fallo; en este ejemplo particular, uno o más de los canales informáticos redundantes se denominan canales de modo esclavo y el canal informático redundante en donde se ha producido el fallo se denomina canal de modo maestro.
En un ejemplo, como se muestra en la FIG. 2A, en un canal informático redundante 100', puede haber un circuito lógico 2040 que reciba los primeros datos de salida 51 de un carril de comando 110' y los segundos datos de salida 52 de un carril de monitoreo 120'. El carril de comando 110' tiene sustancialmente la misma configuración que cualquiera de los carriles de comando 110a, 110b, 110c (FIG. 1A), 110a' y 110b' (FIG. 1B), y el carril de monitoreo 120' tiene sustancialmente la misma configuración que cualquiera de los carriles de monitoreo 120a, 120b, 120c (FIG.
1A) y 120b' (FIG. 1B). El circuito lógico 2040 puede comparar los primeros datos de salida 51 con los segundos datos de salida 52 y emitir los primeros datos de salida 51 como datos de comando 63' a través de la red de comunicación 50 en respuesta a la determinación de que los primeros datos de salida 51 y los segundos datos de salida 52 coinciden entre sí. Por otro lado, si los primeros datos de salida 51 y los segundos datos de salida 52 no coinciden entre sí, el circuito lógico 2040 puede no emitir los datos de comando 63'. En este caso, en una operación opcional, el circuito lógico 2040 puede enviar una señal de alerta, que indica que hay un fallo en el canal informático redundante correspondiente, a uno o más de los otros canales informáticos redundantes a través de la red de comunicación 50. Además, en una operación opcional, uno o más de los otros canales informáticos redundantes que reciben la señal de alerta pueden hacerse cargo de las tareas u operaciones del canal informático redundante en donde se ha producido el fallo.
En un ejemplo, como se representa en el ejemplo de la FIG. 2B, el circuito lógico 2040 puede estar incorporado para incluir los registros de datos de entrada 2041 y 2042, una pluralidad de puertas lógicas OR (XOR) exclusivas 60_1 a 60_N, un circuito sumador 2043 y una memoria intermedia 2045. En este caso, N es un número entero mayor que 1 y es una longitud de bits de los datos 51 o 52. El registro de datos 2041 puede recibir los primeros datos de salida 51 desplazando y bloqueando en serie los datos 51, y proporcionar un bit correspondiente como entrada a cada una de las puertas lógicas XOR 60_1 a 60_N. De manera similar, el registro de datos 2042 puede recibir los segundos datos de salida 52 desplazando y bloqueando en serie los datos 52, y proporcionar un bit correspondiente como otra entrada a cada una de las puertas lógicas XOR 60_1 a 60_N. A continuación, cada puerta lógica XOR 60_1 a 60_N puede emitir un valor “ 1” si los bits correspondientes de los primeros datos de salida 51 y los segundos datos de salida 52 son diferentes; de lo contrario, emitir un valor “0” . El circuito sumador 2043 puede sumar las salidas C1 a C_N de las puertas lógicas XOR 60_1 a 60_N y emitir una señal de habilitación 2044 si el valor sumador es mayor que un valor umbral 2046. La memoria intermedia 2045 puede emitir los datos de comando 63' si la señal de habilitación 2044 está presente. De lo contrario, la memoria intermedia 2045 puede no emitir los datos de comando 63'. Por ejemplo, si el valor umbral 2046 se establece como “cero” , al menos una diferencia de un bit entre los datos de salida 51 y 52 primero y segundo puede hacer que el circuito lógico 2040 determine una falta de coincidencia entre los datos 51 y 52. En otra realización, las funciones del circuito lógico 2040 se pueden incorporar usando un procesador (no mostrado).
En la presente descripción, los datos de comando (por ejemplo, 63, 66, 69 o 63') son datos fuente utilizados por al menos uno de los canales de control de objetos (por ejemplo, 1000a, 1000b, 1000c) para generar una señal de control de objetos (por ejemplo, 1010, 1020, 1030) para controlar los movimientos u operaciones de varias partes (por ejemplo, actuadores) del sistema de objetos.
En un ejemplo, como se representa en la FIG. 1A, el canal de control de objetos 1000a genera una señal de control de objetos 1010 basándose en un algoritmo de selección a partir de los datos de comando 63, 66 y 69. El canal de control de objetos 1000b genera una señal de control de objetos 1020 basándose en el algoritmo de selección a partir de los datos de orden 63, 66 y 69. El canal de control de objetos 1000c genera una señal de control de objetos 1030 basándose en el algoritmo de selección a partir de los datos de orden 63, 66 y 69. En un ejemplo, el algoritmo de selección incluye recibir los tres datos de comando 63, 66 y 69 y seleccionar una mediana o un valor promedio de los datos de comando 63, 66 y 69. En otra realización, el algoritmo de selección usado por cada canal de control de objetos también puede permitir la selección de cualquiera de los datos de comando 63, 66 y 69; Por ejemplo, si dos de los tres canales informáticos redundantes (por ejemplo, si fallan 10a y 10b de la FIG. 1 A), cada canal de control de objetos utilizaría los datos de comando 69 emitidos desde el canal 10c que permanecen en buen estado. En otra realización, cada canal de control de objetos genera una señal de control de objetos solo según sus datos de comando de mapeo. Por ejemplo, el canal de control de objetos 1000a genera una señal de control de objetos 1010 solo según los datos de orden 63, el canal de control de objetos 1000b genera una señal de control de objetos 1020 solo según los datos de comando 66, y el canal de control de objetos 1000c genera una señal de control de objetos 1030 solo según los datos de comando 69. Cada señal de control de objetos 1010 a 1030 puede usarse para controlar los movimientos de varias partes (por ejemplo, actuadores) del sistema de objetos.
La red de comunicación 50 puede incluir comunicaciones basadas en Internet, red de área local (LAN), red de área extensa (WAN), acceso múltiple por división de código (CDMA), sistema global para comunicación móvil (GSM), CDMA de banda ancha, CDMA-2000, acceso múltiple por división de tiempo (TDMA), evolución a largo plazo (LTE), LAN inalámbrica, Bluetooth, estándares aviónicos (por ejemplo, ARINC-429, AR iNc 664, MIL-STD 1553, etc.), o similares.
En un ejemplo, los respectivos núcleos de procesador diferentes empleados en el carril de comandos y el carril de monitoreo de cada canal informático redundante se implementan en un mismo dispositivo SOC multinúcleo. A diferencia de la tecnología existente de implementar procesadores diferentes en dos o más dispositivos separados, el dispositivo SOC multinúcleo según la presente descripción, en donde los procesadores de núcleo diferente se implementan en un solo chip (o matriz) de silicio, puede permitir que los procesadores del núcleo del procesador correspondientes al carril de comandos y al carril de monitoreo tengan niveles similares o sustancialmente iguales de métricas de rendimiento (por ejemplo, rendimiento, disipación de energía) para aumentar los grados de seguridad e integridad del sistema de control crítico para la seguridad y reducir SWAP-C (tamaño, peso) , área, potencia y costo) para el sistema de control crítico para la seguridad, preservando al mismo tiempo la seguridad del sistema. Como se muestra en la FIG. 1 A, el canal informático redundante 10a incluye un dispositivo SOC multinúcleo 100a en donde se implementan los núcleos de procesador diferentes 210a y 220a. El canal informático redundante 10b incluye un dispositivo SOC multinúcleo 100b en donde se implementan los núcleos de procesador diferentes 210b y 220b. El canal informático redundante 10c incluye un dispositivo SOC multinúcleo 100c en donde se implementan los núcleos de procesador diferentes 210c y 220c.
En una realización, para mejorar aún más la seguridad del sistema, los núcleos de procesador respectivos del carril de comando y el carril de monitoreo pueden procesar datos basándose en otras características de diversidad de diseño que se describirán más adelante con referencia a las FIGS. 4, 5A y 5B.
La FIG. 3 es un diagrama de bloques de un dispositivo SOC multinúcleo de ejemplo 100d según una realización de la presente descripción. La FIG. 4 representa ejemplos de características de diversidad utilizadas en un carril de comando y un carril de monitoreo según una realización de la presente descripción. La FIG. 5A es un diagrama de bloques del dispositivo SOC multinúcleo 100d que ilustra las arquitecturas principales y las diversas características utilizadas en un carril de comandos según una realización de la presente descripción. La FIG. 5B es un diagrama de bloques del dispositivo SOC multinúcleo 100d que ilustra las arquitecturas principales y las diversas características utilizadas en un carril de monitoreo según una realización de la presente descripción.
Como se representa en el ejemplo de la FIG. 3, dos núcleos de procesador 210d y 220d que tienen arquitecturas de núcleo diferentes se implementan en un mismo dispositivo SOC multinúcleo 100d. Por ejemplo, el núcleo de procesador 210d tiene una arquitectura de núcleo Arch A, y el núcleo de procesador 220d tiene una arquitectura de núcleo Arch B diferente de la arquitectura de núcleo Arch A. Aunque se ilustra en la FIG. 3 que se implementa un único núcleo para cada una de las arquitecturas de núcleo Arch A y Arch B en el dispositivo SOC multinúcleo 100d, la presente descripción no se limita a esto y, por ejemplo, más de un núcleo para al menos una de las arquitecturas de núcleo Arch. A y Arch B se pueden implementar en un dispositivo SOC multinúcleo (por ejemplo, dos núcleos) con la arquitectura de núcleo Arch A. y dos núcleos con la arquitectura de núcleo (Arch B). En otro ejemplo (no mostrado en la figura), múltiples núcleos con tres o más arquitecturas de núcleo diferentes (por ejemplo, uno o más núcleos con la arquitectura de núcleo Arch A, uno o más núcleos con la arquitectura de núcleo Arch B, uno o más núcleos con una arquitectura de núcleo diferente de las arquitecturas Arch A y Arch B) se implementan en un único dispositivo SOC multinúcleo.
En un ejemplo, las arquitecturas principales Arch A y Arch B respectivas de los núcleos de procesador 210d y 220d se seleccionan de entre arquitecturas principales como PowerPC®, un ARM®, un procesamiento digital de señales (DSP), un Xeon®, un Pentium®, un procesador Core™ (por ejemplo, Core i3, Core i5, Core i7), un ARC, un Alpha, un Am29000®, un Atmel® AVR, un Blackfin, un i960®, un MIPS®, un PA-RISC®, un RISC-VTM, un SuperH®, y un SPARC®, una matriz de puertas programables en campo (FPGA) con procesadores multinúcleo (por ejemplo, Xilinx Ultrascale MPSOC), o similares.
En algunos aspectos, el núcleo del procesador 210d (o el núcleo del procesador 220d) puede usar una o más memorias caché 211d y 212d (o 221d y 222d) para reducir la latencia para acceder a los datos desde una memoria compartida 230. En el ejemplo representado en la FIG. 3, las memorias caché 211d y 212d están incorporadas con una caché L1 y una caché L2, respectivamente, sin embargo, las realizaciones ejemplares de la presente descripción no se limitan a las mismas. La memoria compartida 230 se refiere a una memoria para almacenar los datos de entrada (por ejemplo, 61,62, 64, 65, 67 o 68) recopilados del sistema de objetos (no mostrado), y cada uno de los núcleos de procesador 210d y 220d puede leer los datos de entrada de la memoria compartida 230, procesar los datos de entrada, generar datos de salida según los datos de entrada procesados y escribir los datos de salida en la memoria compartida 230.
El dispositivo SOC 100d puede incluir además una estructura de coherencia multinúcleo 235 que proporciona interfaces para intercambiar datos entre los núcleos de procesador 210d y 220d y permite que los núcleos de procesador 210d y 220d accedan a la memoria compartida 230.
El dispositivo SOC 100d puede incluir además varios periféricos tales como, pero no están limitados a, uno o más controladores de memoria 240a a 240b, un controlador de bus local 245, un controlador de bus PCIe (interconexión de componentes periféricos) 250, un controlador de E/S serie 255, un controlador SATA 260, un conmutador Gigabit Ethernet 265, uno o más controladores Ethernet 270a a 270b, un controlador de bus serie universal (USB) 275, un controlador receptor/transmisor asíncrono universal (UART) 280, un controlador SPI,I2C 285, un motor de seguridad 290, un módulo de monitor de depuración 295, un módulo de gestión de energía 300 y un módulo de E/S de propósito general 305. Una estructura de coherencia de E/S 310 puede proporcionar interfaces para las comunicaciones entre los elementos anteriormente mencionados del dispositivo SOC 100d.
En un ejemplo, los uno o más controladores de memoria 240a y 240b pueden estar incorporados con controladores de memoria con doble velocidad de transferencia de datos (DDR) que proporcionan interfaces para acceder a una DRAM síncrona de DDR externa (DDR SDRAM). Por ejemplo, el controlador de memoria DDR 240a puede controlar las operaciones de una DDR2 SDRAM y el controlador de memoria DDR 240b puede controlar el funcionamiento de una SDRAM DDR3.
El controlador de bus PCIe 250, el controlador de E/S en serie 255, el controlador SATA 260 y el conmutador Gigabit Ethernet 265 constituyen canales de interfaz de E/S de intercambio de datos de alta velocidad y están acoplados a un carril correspondiente de un serializador/deserializador (SerDes) 315 que facilita la transmisión de datos en paralelo entre dos puntos a través de flujos en serie.
Los respectivos núcleos de procesador 210d y 220d del carril de comando y el carril de monitoreo pueden procesar datos según las características de diversidad de diseño. Por ejemplo, el núcleo de procesador 210d procesa datos (por ejemplo, 61,64 o 67) según un primer conjunto de características de diversidad, y el núcleo de procesador 220d procesa datos (por ejemplo, 62, 65 o 68) según un segundo conjunto de características de diversidad. Al menos uno del primer conjunto de características de diversidad puede ser diferente de uno correspondiente del segundo conjunto de características de diversidad.
Como se representa en el ejemplo de la FIG. 4, las características de diversidad 400 utilizadas o a las que acceden los núcleos de procesador 210d y 220d pueden ser recursos de hardware o software que incluyen: porciones de una memoria compartida 411, interfaces de E/S 412, tipos de memoria DDR 413, tipos de memoria de arranque 414, relojes de sistema 415, lenguajes de programación informática para codificar 416, compiladores 417, herramientas de codificación 418, formatos de representación numérica de datos 419 para almacenar y procesar, modosendian420, modos de módulo de frecuencia 421, modos de caché 422, temporizaciones de datos de E/S 423, diseños de fuente de alimentación 424 o similares.
En un ejemplo, con respecto a las porciones de la memoria compartida 411, los núcleos de procesador 210d y 220d acceden exclusivamente a diferentes porciones de la memoria compartida (por ejemplo, 230 de la FIG. 3) para leer y escribir datos desde/hacia la memoria compartida 230. Por ejemplo, el núcleo procesador 210d accede a la mitad superior de la memoria compartida 230, y el núcleo procesador 220d accede a la mitad inferior de la memoria compartida 230, como se muestra en la FIG. 3; o viceversa.
En un ejemplo, con respecto a las interfaces de E/S 412, los núcleos de procesador 210d y 220d utilizan interfaces de E/S diferentes entre sí. Por ejemplo, el núcleo de procesador 210d usa un bus PCIe 2510 como interfaz de E/S como se muestra en la FIG. 5A, y el núcleo de procesador 220d usa un bus local 2450 como interfaz de E/S, como se muestra en la FIG. 5B; o viceversa.
En un ejemplo, con respecto a los tipos de memoria DDR 413, los núcleos procesadores 210d y 220d usan tipos de memoria<d>D<r>diferentes entre sí. Por ejemplo, el núcleo de procesador 210d usa una DDR2 SDRAM 2420 como se muestra en la FIG. 5A, y el núcleo de procesador 220d usa una SDRAM DDR32410 como se muestra en la FIG. 5B; o viceversa.
En un ejemplo, con respecto a los tipos de memoria de arranque 414, los núcleos de procesador 210d y 220d usan tipos de memoria de arranque diferentes entre sí. Por ejemplo, el núcleo procesador 210d usa una memoria de arranque 2520 acoplada al bus PCIe 2510 como se muestra en la FIG. 5A, y el núcleo procesador 220d usa una memoria de arranque 2460 acoplada al bus local 2450 como se muestra en la FIG. 5B; o viceversa. En algunas realizaciones, tanto los núcleos de procesador 210d como 220d utilizan funciones de arranque seguro; en otras realizaciones, ninguno de los núcleos de procesador 210d y 220d utiliza las funciones de arranque seguro.
En un ejemplo, con respecto a los relojes 415 del sistema, los núcleos 210d y 220d del procesador usan relojes del sistema con frecuencias diferentes (por ejemplo, ciclos de reloj) entre sí. Por ejemplo, el núcleo de procesador 210d usa un reloj de sistema 391 con una primera frecuencia como se muestra en la FIG. 5A, y el segundo grupo de núcleos de procesador 220d usa un reloj de sistema 392 con una segunda frecuencia como se muestra en la FIG. 5B.
En el ejemplo particular representado en la FIG. 5A, el controlador PCIe 250 controla el bus PCIe 2510 acoplado a un puente de memoria PCI express 2540, una memoria de arranque 2520 y una memoria no volátil 2530. La memoria no volátil 2530 puede estar incorporada con una memoria de acceso aleatorio magnetorresistiva (MRAM), una memoria flash, una RAM ferroeléctrica (FRAM), etc. Además, los datos de entrada (por ejemplo, 61,64 o 67 de la FIG. 1 A) para ser procesados por el núcleo del procesador 210d pueden ingresarse a través de la interfaz de bus PCIe 2510 y almacenarse en una porción correspondiente (por ejemplo, la mitad superior) de la memoria compartida 230.. El núcleo procesador 210d puede acceder a la porción correspondiente de la memoria compartida 230 para leer y procesar los datos de entrada, generar datos de salida procesando los datos de entrada y almacenar los datos de salida en la porción correspondiente de la memoria compartida 230.
En el ejemplo particular representado en la FIG. 5B, el controlador de bus local 245 controla el bus local 2450 acoplado a un puente de memoria de bus local 2490, una memoria de arranque 2460, una memoria no volátil 2470 (por ejemplo, una MRAM, una memoria flash, una FRAM, etc.) y un bloqueo de dirección 2480. Además, los datos de entrada para ser procesados por el núcleo procesador 220d pueden ingresarse a través de la interfaz de bus local 2450 y almacenarse en una porción correspondiente (por ejemplo, la mitad inferior) de la memoria compartida 230. El núcleo procesador 220d puede acceder a la porción correspondiente de la memoria compartida 230 para leer y procesar los datos de entrada, generar datos de salida procesando los datos de entrada y almacenar los datos de salida en la porción correspondiente de la memoria compartida 230.
Aunque no se muestran en las FIGS. 5A y 5B, los núcleos de procesador 210d y 220d pueden procesar datos basándose en otras características de diversidad que se muestran en la FIG. 4.
En un ejemplo, con respecto a los lenguajes de programación informática 416, los núcleos de procesador 210d y 220d se controlan en base a instrucciones de programa codificadas según lenguajes de programación diferentes, tales como C, C++, Ada, Assembly, Java®, etc. Por ejemplo, una porción de las instrucciones del programa se programa en un lenguaje ensamblador para optimizar el rendimiento de una función única.
En un ejemplo, con respecto a los compiladores 417, los núcleos de procesador 210d y 220d se controlan según instrucciones de programa compiladas en base a compiladores diferentes como Green Hills®, Wind River, GNU, Code Warrior™, etc.
En un ejemplo, con respecto a las herramientas de codificación 418, los núcleos de procesador 210d y 220d se controlan según instrucciones de programa codificadas según herramientas de codificación diferentes, como SCADE®, Matlab® Simulink, etc.
En un ejemplo, con respecto a los formatos de representación numérica de los datos 419, los datos de entrada y los datos de salida del núcleo de procesador 210d son diferentes de los datos de entrada y los datos de salida del núcleo de procesador 220d. Ejemplos de formatos de representación numérica incluyen una escala B deslizante de punto fijo, un punto fijo con escala B fija, un punto flotante de 16 bits, un punto flotante de 32 bits, un punto flotante de 64 bits, etc.
En un ejemplo, con respecto a los modosendian420, los núcleos procesadores 210d y 220d usan modosendiandiferentes para almacenar datos. Los ejemplos de los modosendianincluyen un modoendiangrande (por ejemplo, el bit más significativo (MSB)), un modoendianpequeño (por ejemplo, el bit menos significativo (LSB)), etc.
En un ejemplo, con respecto a los modos de coherencia 421, los núcleos de procesador 210d y 220d utilizan modos de coherencia diferentes en términos de políticas de arbitraje de QoS para acceder a las interfaces (por ejemplo, acceso seguro frente a acceso compartible); modo maestro vs modo esclavo (para funciones de E/S y SOC).
En un ejemplo, con respecto a los modos de caché 422, los núcleos de procesador 210d y 220d usan modos de caché diferentes, tales como un modo sin almacenamiento en caché, un modo de reescritura, un modo de escritura directa, un modo de caché de solo lectura, un modo de bloqueo de línea individual, un modo de SRAM, un modo de almacenamiento de E/S parcial, etc. Por ejemplo, uno de los núcleos de procesador 210d y 220d usa un modo de caché y otro de los núcleos de procesador 210d y 220d desactiva el modo de caché.
En un ejemplo, con respecto a los tiempos de datos de E/S 423, los núcleos de procesador 210d y 220d proporcionan comandos o realizan el procesamiento de datos de E/S en diferentes intervalos de tiempo de un marco cíclico, una modificación de frecuencia mediante multiplicadores programables, una transferencia en serie y una transferencia en paralelo.
En un ejemplo, con respecto al diseño de la fuente de alimentación 424, las fuentes de alimentación que proporcionan energía eléctrica a los núcleos del procesador 210d y 220d se diseñan mediante múltiples dispositivos discretos (por ejemplo, un convertidor reductor de punto de carga Dc /DC) o un único dispositivo secuenciador de potencia.
La FIG. 6 es un diagrama de flujo ejemplar que representa un método 600 para operar un sistema de control crítico para la seguridad 1 según una realización de la presente descripción.
Haciendo referencia a la FIG. 6, el procedimiento 600 incluye las etapas S110 a S190.
En una etapa S110, un primer núcleo de procesador (por ejemplo, el 210a de la FIG. 1 A) correspondiente a un carril de comandos (por ejemplo, el 110a de la FIG. 1A) de un canal informático redundante particular (por ejemplo, el 10a de la FIG. 1A) puede recibir los primeros datos de entrada (por ejemplo, 61 de la FIG. 1A). A continuación, el primer núcleo del procesador puede procesar los datos de entrada y generar los primeros datos de salida basándose en los primeros datos de entrada procesados (S120).
En una etapa S130, un segundo núcleo de procesador (por ejemplo, 220a de la FIG. 1A) correspondiente a un carril de monitoreo (por ejemplo, 120a de la FIG. 1A) del canal informático redundante (por ejemplo, 10a de la FIG. 1A) puede recibir segundos datos de entrada (por ejemplo, 62 de la FIG. 1A). A continuación, el segundo núcleo de procesador puede procesar los segundos datos de entrada y generar los segundos datos de salida según los segundos datos de entrada procesados (S140).
A continuación, en la etapa S150, los primeros datos de salida pueden compararse con los segundos datos de salida. Si se determina que los primeros datos de salida coinciden con los segundos datos de salida dentro de un umbral (SÍ), el canal informático redundante puede emitir los primeros datos de salida como datos de comando (por ejemplo, 63 de la FIG. 1 A) en una etapa S160. Un canal de control de objetos (por ejemplo, 1000a) puede generar una señal de control de objetos (por ejemplo, 1010 de la FIG. 1A) basándose en los datos de comando para controlar los movimientos de varias partes (por ejemplo, actuadores) del sistema de objetos en una etapa S170.
En una etapa S180, si se determina que los primeros datos de salida no coinciden con los segundos datos de salida (NO), el canal informático redundante puede no emitir los datos de comando. Además, en una operación opcional, el canal informático redundante puede enviar una señal de alerta, que indica que hay un fallo en el canal informático redundante, a otro canal informático redundante a través de la red de comunicación 50 en una etapa S190.
Las estructuras, materiales y actos correspondientes de todos los medios o elementos funcionales escalonados, si los hubiera, en las reivindicaciones siguientes pretenden incluir cualquier estructura, material o acto para realizar la función en combinación con otros elementos reivindicados específicamente. La presente descripción se ha presentado con fines de ilustración y descripción, pero no pretende ser exhaustiva o limitada a la presente descripción en la forma descrita. Muchas modificaciones y variaciones serán evidentes para los expertos en la técnica sin apartarse del alcance de la invención. La realización se eligió y describió para explicar mejor los principios de la presente invención y la aplicación práctica, y para permitir a otros expertos en la materia entender la presente invención para diversas realizaciones con diversas modificaciones que sean adecuadas para el uso particular contemplado.
Si bien la presente invención se ha mostrado y descrito particularmente con respecto a las realizaciones preferidas de la misma, los expertos en la materia entenderán que los cambios anteriores y otros en las formas y detalles pueden realizarse sin apartarse del alcance de la presente invención. Por lo tanto, se pretende que la presente invención no se limite a las formas y detalles exactos descritos e ilustrados, sino que esté dentro del alcance de las reivindicaciones adjuntas.

Claims (10)

  1. REIVINDICACIONES
    i.Un sistema de control, que comprende:
    un canal de computación que incluye:
    un carril de comandos que tiene un primer núcleo de procesador (210a) con una primera arquitectura de núcleo que recibe datos de entrada (61) y genera primeros datos según los datos de entrada; y
    un carril de monitoreo que tiene un segundo núcleo de procesador (220a) con una segunda arquitectura de núcleo que recibe los datos de entrada y genera segundos datos según los datos de entrada, en donde el carril de monitoreo es un carril auxiliar para comprobar la anomalía del carril de comandos o del canal informático general al que pertenecen el carril de comando y el carril de monitoreo, siendo la primera arquitectura de núcleo y la segunda arquitectura de núcleo diferentes entre sí, y el canal informático emite los primeros datos como datos de comando (63) en respuesta a
    determinar que los primeros datos coinciden con los segundos datos; y
    un canal de control de objetos (1000a) correspondiente al canal informático e que incluye al menos un sistema de control de objetos que recibe los datos de comando (63) del canal informático y genera una señal de control de objetos (1010) basada en los datos de comando para controlar el funcionamiento de al menos una parte de un sistema de objetos,caracterizado por quela primera arquitectura de núcleo y la segunda arquitectura de núcleo se implementan en un único dispositivo de sistema en chip (100a).
  2. 2. El sistema de control según la reivindicación 1, comprendiendo además una red de comunicación utilizada para transferir los datos de entrada, los datos de comando y la señal de control de objetos.
  3. 3. El sistema de control según la reivindicación 1, en donde el primer núcleo del procesador procesa los datos de entrada basándose en un primer conjunto de características de diversidad, y la arquitectura del segundo núcleo procesa los datos de entrada basándose en un segundo conjunto de características de diversidad diferentes al primer conjunto de características de diversidad.
  4. 4. El sistema de control según la reivindicación 3, en donde el primer conjunto de características de diversidad es diferente al segundo conjunto de características de diversidad en al menos una de: porciones de una memoria compartida a las que se va a acceder; Interfaces de E/S, tipos de memoria de acceso aleatorio dinámico sincrónico de doble velocidad de datos, tipos de memoria de arranque, relojes de sistema que se van a utilizar, lenguajes de programación informática para codificar, compiladores, herramientas de codificación, formatos de representación numérica de datos, modosendian,modos de módulos de coherencia, modos de caché, temporizaciones de datos de E/S y diseños de fuentes de alimentación.
  5. 5. El sistema de control según la reivindicación 4, en donde el primer núcleo del procesador usa uno de un bus PCI expreso y un bus local como interfaz de E/S, y el segundo núcleo del procesador usa otro bus PCI expreso y el bus local como interfaz de E/S.
  6. 6. El sistema de control según la reivindicación 1, en donde la primera arquitectura de núcleo y la segunda arquitectura de núcleo corresponden respectivamente a dos arquitecturas diferentes seleccionadas de un grupo comprendiendo: un PowerPC, un ARM y un procesamiento de señales digitales, un Xeon, un Pentium, un Core, un ARC, un Alpha, un Am29000, un Atmel AVR, un Blackfin, un i960, un MIPS, un PA-RISC, un RISC-V, un SuperH, una arquitectura de procesador escalable y una matriz de puertas programable en campo con procesadores multinúcleo.
  7. 7. El sistema de control según la reivindicación 1, en donde el canal informático no emite los datos de comando en respuesta a la determinación de que los primeros datos no coinciden con los segundos datos.
  8. 8. El sistema de control según la reivindicación 7, en donde el sistema de control comprende además otro canal informático, dicho canal informático envía además una señal de alerta a dicho otro canal informático en respuesta a la determinación de que los primeros datos no coinciden con los segundos datos, indicando la señal de alerta que dicho canal informático tiene un fallo.
  9. 9. El sistema de control según la reivindicación 1, que comprende además al menos un núcleo de procesador adicional que tiene una arquitectura de núcleo adicional en al menos uno de dichos carriles de comando y dicho carril de monitoreo.
  10. 10. El sistema de control según la reivindicación 1, que comprende, además:
    una lógica de control que recibe los primeros datos y los segundos datos y emite los primeros datos como datos de comando en respuesta a la determinación de que los primeros datos coinciden con los segundos datos.
    11Un método implementado por ordenador para operar un sistema de control que incluye un canal informático que tiene un carril de comando y un carril de monitoreo, en donde el carril de monitoreo es un carril auxiliar para verificar la anormalidad del carril de comando o del canal de cálculo general al que pertenecen el carril de comando y el carril de monitoreo, comprendiendo el método:
    recibir (S110), mediante un primer núcleo de procesador del carril de comandos, datos de entrada, el primer núcleo de procesador con una primera arquitectura de núcleo;
    generar (S120), mediante el primer núcleo de procesador, primeros datos basados en los datos de entrada;
    recibir (S130), mediante un segundo procesador central del carril de monitoreo, los datos de entrada, el segundo núcleo procesador con una arquitectura de segundo núcleo diferente a la arquitectura de primer núcleo;
    generar (S140), mediante el segundo núcleo de procesador, segundos datos según los datos de entrada; y
    emitir (S160), mediante el canal informático, los primeros datos como datos de comando, al determinar que los primeros datos coinciden con los segundos datos,caracterizado por quela primera arquitectura de núcleo y la segunda arquitectura de núcleo se implementan en un único dispositivo de sistema en chip.
ES18856012T 2017-09-14 2018-09-05 Use of multicore processor to mitigate common mode computing faults Active ES3038868T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/704,661 US10353767B2 (en) 2017-09-14 2017-09-14 Use of multicore processor to mitigate common mode computing faults
PCT/US2018/049442 WO2019055257A1 (en) 2017-09-14 2018-09-05 USE OF A MULTI-CORE PROCESSOR TO MITIGATE CALCULATION FAULTS IN COMMON MODE

Publications (1)

Publication Number Publication Date
ES3038868T3 true ES3038868T3 (en) 2025-10-15

Family

ID=65632205

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18856012T Active ES3038868T3 (en) 2017-09-14 2018-09-05 Use of multicore processor to mitigate common mode computing faults

Country Status (8)

Country Link
US (1) US10353767B2 (es)
EP (1) EP3682254B1 (es)
CN (1) CN111213062B (es)
DK (1) DK3682254T3 (es)
ES (1) ES3038868T3 (es)
FI (1) FI3682254T3 (es)
PL (1) PL3682254T3 (es)
WO (1) WO2019055257A1 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10365980B1 (en) * 2017-10-31 2019-07-30 EMC IP Holding Company LLC Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization
US10474545B1 (en) 2017-10-31 2019-11-12 EMC IP Holding Company LLC Storage system with distributed input-output sequencing
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
FR3088909B1 (fr) * 2018-11-23 2023-01-13 Airbus Procédé et système de sécurisation d’un aéronef contre les cyberattaques
EP3764235B1 (en) 2019-07-12 2022-10-26 Ratier-Figeac SAS Field programmable gate array (fpga) having dissimilar cores
JP7400537B2 (ja) 2020-02-27 2023-12-19 セイコーエプソン株式会社 半導体装置
JP7500994B2 (ja) * 2020-02-27 2024-06-18 セイコーエプソン株式会社 半導体装置
US11347512B1 (en) 2021-02-03 2022-05-31 International Business Machines Corporation Substitution through protocol to protocol translation
US11620178B1 (en) * 2021-11-01 2023-04-04 Arm Limited Fault detection
FR3131643B1 (fr) * 2022-01-04 2024-02-16 Safran Helicopter Engines Système de régulation et de surveillance d’un moteur d’aéronef
CN115237640A (zh) * 2022-08-12 2022-10-25 中国商用飞机有限责任公司 综合模块化航电系统、数据传输方法、飞行器及可读存储介质
CN115454021A (zh) * 2022-08-23 2022-12-09 重庆长安汽车股份有限公司 系统级芯片通信故障的恢复方法、装置及系统
CN116054685B (zh) * 2023-04-03 2023-07-07 南京芯驰半导体科技有限公司 一种基于多核处理器的电流采样冗余系统
EP4468159A1 (en) * 2023-05-23 2024-11-27 Rockwell Collins, Inc. Multi-core system-on-chip
CN117573609B (zh) * 2024-01-16 2024-05-03 宁波中控微电子有限公司 一种具有冗余功能的片上系统及其控制方法
US12461835B2 (en) * 2024-04-18 2025-11-04 Rockwell Collins, Inc. System and method for integrity monitoring of heterogeneous system-on-a-chip (SoC) based systems
CN118348864B (zh) * 2024-05-08 2024-11-05 清华大学 一种基于fpga和risc-v软核处理器及国密软核的冗余控制系统

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW320701B (es) * 1996-05-16 1997-11-21 Resilience Corp
KR100408493B1 (ko) * 2001-05-07 2003-12-06 한국전력기술 주식회사 소프트웨어 공통유형고장을 자체 배제한 디지털원자로 보호시스템 및 그 제어방법
DE102004051952A1 (de) * 2004-10-25 2006-04-27 Robert Bosch Gmbh Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
US7346819B2 (en) * 2004-10-29 2008-03-18 Rambus Inc. Through-core self-test with multiple loopbacks
US7337044B2 (en) * 2004-11-10 2008-02-26 Thales Canada Inc. Dual/triplex flight control architecture
DE102005037217A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zum Vergleich von Daten bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
US7609091B2 (en) * 2005-09-29 2009-10-27 Intel Corporation Link transmitter with reduced power consumption
JP2007120956A (ja) * 2005-10-25 2007-05-17 Eicon Denshi Kk 電子機器動作検出装置
US7693616B2 (en) * 2006-03-31 2010-04-06 Honeywell International Inc. System and method of redundancy management for fault effect mitigation
US7514997B2 (en) * 2006-09-11 2009-04-07 Lecroy Corporation Common mode regulation for thermal tail compensation
US8023422B2 (en) * 2007-03-12 2011-09-20 Analog Devices, Inc. Dual core crosspoint system
EP1980924B1 (en) 2007-04-13 2019-10-16 Honeywell International Inc. System and method of redundancy management for fault effect mitigation
CN102067091A (zh) * 2008-06-17 2011-05-18 Nxp股份有限公司 具有混合软硬件控制的高速缓存管理的多处理器系统
WO2009155993A1 (en) 2008-06-27 2009-12-30 Abb Research Ltd. A safety system for a machine
US8335884B2 (en) 2009-07-10 2012-12-18 Brocade Communications Systems, Inc. Multi-processor architecture implementing a serial switch and method of operating same
US8516356B2 (en) 2010-07-20 2013-08-20 Infineon Technologies Ag Real-time error detection by inverse processing
US8769360B2 (en) * 2010-10-14 2014-07-01 International Business Machines Corporation Dynamic detection and identification of the functional state of multi-processor cores
US8671311B2 (en) * 2011-02-15 2014-03-11 International Business Machines Corporation Multiprocessor switch with selective pairing
US20130015322A1 (en) * 2011-07-13 2013-01-17 Analog Devices, Inc. Apparatus and method for reducing common-mode error
CN102306139A (zh) * 2011-08-23 2012-01-04 北京科技大学 用于ofdm无线通信系统的异构多核数字信号处理器
US11323786B2 (en) 2012-10-21 2022-05-03 Semitech Semiconductor Pty Ltd. General purpose single chip controller
US8854123B1 (en) * 2013-03-15 2014-10-07 Nvidia Corporation On-package multiprocessor ground-referenced single-ended interconnect
US9411745B2 (en) * 2013-10-04 2016-08-09 Qualcomm Incorporated Multi-core heterogeneous system translation lookaside buffer coherency
CN104168101B (zh) * 2014-08-28 2017-10-24 广西师范大学 煤矿综采面数据和控制命令数据的双向传输系统
US9493231B2 (en) * 2015-03-20 2016-11-15 The Boeing Company Flight control system command selection and data transport
CN104865515B (zh) * 2015-05-12 2017-10-03 北京航空航天大学 一种多通道集成运算放大器性能参数在线测试系统
CN105207957B (zh) * 2015-08-18 2018-10-30 中国电子科技集团公司第五十八研究所 一种基于片上网络多核架构的系统
US9611033B1 (en) * 2015-09-24 2017-04-04 Rockwell Collins, Inc. System and method for maintaining system integrity in control systems having multi-lane computational differences
US9996431B2 (en) * 2016-03-23 2018-06-12 GM Global Technology Operations LLC Architecture and apparatus for advanced arbitration in embedded controls
CN206270457U (zh) * 2016-10-31 2017-06-20 广东利扬芯片测试股份有限公司 一种用于检测指纹芯片gf118的小电流引脚的测试电路
CN106775659B (zh) * 2016-11-28 2020-01-31 四川航天系统工程研究所 基于高速Linkport接口的嵌入式双核飞行控制软件架构方法

Also Published As

Publication number Publication date
PL3682254T3 (pl) 2025-09-01
CN111213062B (zh) 2022-11-29
EP3682254A4 (en) 2021-08-25
DK3682254T3 (da) 2025-08-04
US10353767B2 (en) 2019-07-16
WO2019055257A1 (en) 2019-03-21
FI3682254T3 (fi) 2025-08-13
EP3682254A1 (en) 2020-07-22
EP3682254B1 (en) 2025-07-02
CN111213062A (zh) 2020-05-29
US20190079826A1 (en) 2019-03-14

Similar Documents

Publication Publication Date Title
ES3038868T3 (en) Use of multicore processor to mitigate common mode computing faults
US11281618B2 (en) Methods and circuits for deadlock avoidance
JP6647289B2 (ja) セーフティサブシステムを有するプログラマブルic
US9632869B1 (en) Error correction for interconnect circuits
JP6815723B2 (ja) メモリシステム及びその動作方法
US10037301B2 (en) Circuits and methods for inter-processor communication
AU2017313189B2 (en) Method and apparatus for redundant data processing
CN110998729B (zh) 使用与存储器集成的逻辑来执行后台功能
US9529686B1 (en) Error protection for bus interconnect circuits
US20140344643A1 (en) Hybrid memory protection method and apparatus
US9130566B1 (en) Programmable IC with power fault tolerance
US20250130877A1 (en) Handling Faulty Usage-Based-Disturbance Data
US10489241B2 (en) Control and address redundancy in storage buffer
HK40027153B (en) Use of multicore processor to mitigate common mode computing faults
HK40027153A (en) Use of multicore processor to mitigate common mode computing faults
US9990131B2 (en) Managing memory in a multiprocessor system
US20170344261A1 (en) Secure system on chip
JP2005044386A (ja) 半導体記憶装置及びマイクロコンピュータ
CN119271449A (zh) 低成本高性能lraid