ES2861261T3 - Procedimiento y dispositivo electrónico de instalación de aplicaciones de software de aviónica en una plataforma que comprende un procesador multinúcleo, programa de ordenador y sistema electrónico asociados - Google Patents
Procedimiento y dispositivo electrónico de instalación de aplicaciones de software de aviónica en una plataforma que comprende un procesador multinúcleo, programa de ordenador y sistema electrónico asociados Download PDFInfo
- Publication number
- ES2861261T3 ES2861261T3 ES19188337T ES19188337T ES2861261T3 ES 2861261 T3 ES2861261 T3 ES 2861261T3 ES 19188337 T ES19188337 T ES 19188337T ES 19188337 T ES19188337 T ES 19188337T ES 2861261 T3 ES2861261 T3 ES 2861261T3
- Authority
- ES
- Spain
- Prior art keywords
- installation
- software
- platform
- applications
- dal
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64D—EQUIPMENT FOR FITTING IN OR TO AIRCRAFT; FLIGHT SUITS; PARACHUTES; ARRANGEMENT OR MOUNTING OF POWER PLANTS OR PROPULSION TRANSMISSIONS IN AIRCRAFT
- B64D45/00—Aircraft indicators or protectors not otherwise provided for
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Aviation & Aerospace Engineering (AREA)
- Stored Programmes (AREA)
Abstract
Procedimiento de instalación de aplicaciones de software de aviónica (14) en una plataforma (16) destinada a ser embarcada a bordo de una aeronave, comprendiendo la plataforma (16) un procesador multinúcleo que tiene una pluralidad de núcleos distintos, incluyendo cada aplicación de software de aviónica (14) uno o varios tratamientos de software para ejecutar en el curso de un periodo temporal predefinido (MIF), incluyendo el periodo temporal predefinido (MIF) una o varias zonas temporales sucesivas (TC), estando cada zona temporal (TC) delimitada por separaciones (SW) que corresponden cada una a una conmutación síncrona multinúcleo efectuada en el conjunto de los núcleos del procesador multinúcleo, implementándose el procedimiento de instalación por medio de un dispositivo electrónico de instalación (24) y que comprende la etapa siguiente: - la determinación (100) de un plan de instalación de los tratamientos de software según al menos una regla entre una primera regla de instalación y una segunda regla de instalación, definiendo el plan de instalación, para cada tratamiento de software, al menos un núcleo y al menos una zona temporal (TC) asociados a dicho tratamiento de software, + la primera regla de instalación consistente en predeterminar una lista de combinaciones autorizadas de niveles de criticidad para aplicaciones destinadas a ser ejecutadas en el curso de una misma zona temporal en la plataforma (16), + la segunda regla de instalación consistente en prohibir la instalación de aplicación o aplicaciones de software críticas en uno o varios núcleos de la pluralidad de núcleos del procesador multinúcleo, teniendo cada aplicación de software crítica un nivel de criticidad superior o igual a un umbral predefinido, correspondiendo el nivel de criticidad a un nivel DAL definido según la norma DO-178 revisión B, o según la norma ARP4754.
Description
DESCRIPCIÓN
Procedimiento y dispositivo electrónico de instalación de aplicaciones de software de aviónica en una plataforma que comprende un procesador multinúcleo, programa de ordenador y sistema electrónico asociados
Descripción
[0001] La presente invención se refiere a un procedimiento de instalación de aplicaciones de software de aviónica en una plataforma destinada a ser embarcada a bordo de una aeronave, de manera que la plataforma comprende un procesador multinúcleo que tiene una pluralidad de núcleos distintos, implementándose el procedimiento de instalación por medio de un dispositivo electrónico de instalación.
[0002] La invención se refiere también a un programa de ordenador que incluye instrucciones de software que, cuando se ejecutan por medio de un ordenador, implementan dicho procedimiento.
[0003] La invención se refiere también a un dispositivo electrónico de instalación de aplicaciones de software de aviónica en una plataforma destinada a ser embarcada a bordo de una aeronave, comprendiendo la plataforma un procesador multinúcleo que tiene una pluralidad de núcleos distintos.
[0004] La invención se refiere también a un sistema electrónico que comprende una memoria capaz de almacenar aplicaciones de software de aviónica; una plataforma apta para ejecutar cada aplicación de software de aviónica, comprendiendo la plataforma un procesador multinúcleo que tiene una pluralidad de núcleos distintos; y dicho dispositivo electrónico de instalación de aplicaciones de software de aviónica en la plataforma.
[0005] La invención se refiere al campo de la cualificación de plataformas embarcadas que incluye uno o varios procesadores multinúcleo, en particular en el campo de la aviónica según la norma DO297.
[0006] El uso de procesadores multinúcleo aporta una dificultad importante para la cualificación de las plataformas. De hecho, la ejecución simultánea de varias aplicaciones de software en un mismo procesador multinúcleo se acompaña de riesgos de contenciones a causa de la compartición de recursos comunes (bus, memoria) en los diferentes núcleos, sin que el comportamiento del procesador multinúcleo pueda controlarse fácilmente.
[0007] El término «contención» designa cualquier situación en la que al menos una actividad llevada por al menos un núcleo de un procesador multinúcleo experimenta retrasos en su ejecución a causa del paralelismo temporal permitido por este procesador multinúcleo.
[0008] El origen de las contenciones es generalmente el uso de recursos comunes del procesador o del sistema de explotación, también denominado OS (del inglés Operating System) que conduce a esperas que generan estos retrasos. El efecto de una contención es así un retraso en la ejecución de una aplicación de software albergada en un núcleo.
[0009] Un primer ejemplo de contención es el bus (a menudo denominado «interconnect») que conecta los núcleos unos con otros lo que no siempre permite transacciones simultáneas entre núcleos o entre los núcleos y los periféricos, tales como ciertas memorias caché integradas o la memoria externa.
[0010] Otro ejemplo de contención es el uso de módulos de software comunes del OS instalados en uno de los núcleos y llamados por conjunto de núcleos, potencialmente de forma simultánea. Las llamadas simultáneas a dichos módulos de software comunes provocan un arbitraje y una puesta en espera de ciertas solicitudes con el fin de serializar los tratamientos de software en el núcleo en que se instala el módulo de software común.
[0011] Otro ejemplo de contención es una interrupción momentánea de todos los núcleos en caso de un suceso particular en uno de los núcleos con el fin de manejar un estado coherente entre todos los núcleos.
[0012] Cuando el procesador es además un procesador adquirido en un proveedor, o procesador COTS (del inglés Commercial Off-The-Shelf), en general es imposible tener acceso al detalle del diseño de los órganos internos de dicho procesador multinúcleo, y por tanto es muy difícil, o incluso imposible, garantizar un comportamiento determinista del procesador.
[0013] Según un primer tipo conocido de arquitectura de software para una plataforma con procesador multinúcleo, también denominada arquitectura SMP (del inglés Symetrical MultiProcessing), un sistema de explotación decide en cada instante qué tratamiento de software se ejecuta en cada núcleo.
[0014] Según un segundo tipo conocido de arquitectura de software para una plataforma con procesador multinúcleo, también denominada arquitectura AMP (del inglés Asymetrical MultiProcessing), cada núcleo secuencia la ejecución de un conjunto de aplicaciones de software, de manera independiente de un núcleo a otro, con un sistema
de explotación por núcleo.
[0015] El documento «DOL-BIP-Critical: A tool chain for rigorous design and implementation of mixed-criticality multicore systems» de Giannopoulou y col. se refiere a la secuenciación de aplicaciones de software en un procesador multinúcleo con recursos compartidos que exigen limitar las interferencias temporales entre aplicaciones de criticidad diferente con el fin de garantizar un aislamiento temporal, necesario para una certificación, y permitir un diseño incremental.
[0016] El documento «Model-based Deployment Generation for Safety-Critical Avionics Systems» de lana y col. se refiere a la determinación de un plan de instalación de aplicaciones de software de aviónica en una plataforma que comprende un procesador multinúcleo.
[0017] El documento WO 2016/034447-A1 se refiere a una partición temporal y espacial con el fin de permitir la ejecución de varias particiones asociadas a funciones de aviónica de nivel de criticidad diferente dentro de un mismo calculador multinúcleo.
[0018] Sin embargo, dichas arquitecturas no son suficientemente robustas para obtener la cualificación de plataformas con procesadores multinúcleo, en particular en el campo de la aviónica según la norma DO297.
[0019] El objeto de la invención es así proponer un procedimiento y un dispositivo de instalación de aplicaciones de software de aviónica en una plataforma con procesador o procesadores multinúcleo, que permiten limitar los riesgos de contención durante la ejecución de dichas aplicaciones de software y facilitar así la cualificación de la plataforma.
[0020] Para este fin, la invención tiene por objeto un procedimiento de instalación de aplicaciones de software de aviónica en una plataforma destinada a ser embarcada a bordo de una aeronave, según la reivindicación 1.
[0021] Con el procedimiento de instalación según la invención, el respeto de la primera regla de instalación y/o de la segunda regla de instalación para determinar el plan de instalación de los tratamientos de software permite limitar los riesgos de contención.
[0022] De hecho, con la primera regla de instalación consistente en predeterminar una lista de combinaciones autorizadas de niveles de criticidad para aplicaciones destinadas a ser ejecutadas en el curso de una misma zona temporal, la instalación de las aplicaciones de software de aviónica en la plataforma se optimiza en función de probabilidades de fallo, con el fin de reducir estos riesgos de contención.
[0023] Asimismo, la segunda regla de instalación consistente en prohibir la instalación de aplicación o aplicaciones de software críticas en uno o varios núcleos de la pluralidad de núcleos del procesador multinúcleo permite crear un santuario para estas aplicaciones críticas en caso de contención extrema.
[0024] El buen funcionamiento dentro del santuario se mejora todavía, por ejemplo, por la detección de contención o contenciones, y en su caso a modo de correctivo en respuesta a esta detección de contención o contenciones, la parada progresiva de las aplicaciones menos críticas en el o los otros núcleos.
[0025] Según otros aspectos ventajosos de la invención, el procedimiento de instalación es según cualquiera de las reivindicaciones 2 a 7.
[0026] La invención tiene asimismo por objeto un programa de ordenador según la reivindicación 8.
[0027] La invención tiene asimismo por objeto un dispositivo electrónico de instalación de aplicaciones de software de aviónica en una plataforma destinada a ser embarcada a bordo de una aeronave, según la reivindicación 9.
[0028] La invención tiene asimismo por objeto un sistema electrónico según la reivindicación 10.
[0029] Estas características y ventajas de la invención se entenderán más claramente a partir de la lectura de la descripción que se ofrece a continuación, proporcionada únicamente a modo de ejemplo no limitativo, y hecha con referencia a los dibujos adjuntos, en los que:
- la figura 1 es una representación esquemática de un sistema electrónico según la invención, que comprende una memoria capaz de almacenar aplicaciones de software; una plataforma apta para ejecutar cada aplicación de software, incluyendo la plataforma recursos, especialmente al menos un procesador multinúcleo que tiene varios núcleos distintos, y alojando un sistema de explotación; y un dispositivo electrónico de instalación de aplicaciones de software de aviónica en la plataforma, de manera que cada aplicación de software de aviónica incluye uno o varios tratamientos de software para ejecutar en el curso de un periodo temporal predefinido;
- la figura 2 es un organigrama de un procedimiento, según la invención, de instalación de aplicaciones de software
de aviónica en la plataforma, siendo el procedimiento implementado por el dispositivo de instalación de la figura 1; - la figura 3 es una representación esquemática de una instalación de aplicaciones de software de aviónica en la plataforma, equipada con un procesador de cuatro núcleos;
- la figura 4 es una representación esquemática que ilustra una regla de instalación dependiente de un tiempo de ejecución de peor caso posible (WCET) del tratamiento de software respectivo, estando dicho tiempo de ejecución de peor caso posible (WCET) aumentado en un aumento asociado a la plataforma, y otra regla de instalación consistente en prohibir la instalación de aplicación o aplicaciones de software críticas en uno o varios núcleos de la pluralidad de núcleos del procesador multinúcleo, teniendo cada aplicación de software crítica, por ejemplo, un nivel de criticidad que corresponde a un nivel DAL; y
- la figura 5 es una representación esquemática que ilustra una prueba del plan de instalación determinado, con la implementación simultánea de una aplicación de software de aviónica en un núcleo y de aplicaciones de prueba en los otros tres núcleos del procesador de cuatro núcleos de la plataforma de la figura 3.
[0030] En la figura 1, un sistema electrónico 10, especialmente un sistema electrónico de aviónica destinado a embarcarse a bordo de una aeronave, comprende una memoria 12 capaz de almacenar aplicaciones de software 14, una plataforma 16 apta para ejecutar cada aplicación de software 14, incluyendo la plataforma 16 recursos 18 y alojando al menos un sistema de explotación 20, de manera que la plataforma 16 está conectada a otros sistemas electrónicos 22, tales como otros sistemas electrónicos de aviónica de la aeronave.
[0031] El sistema electrónico 10 comprende además, según la invención, un dispositivo electrónico 24 de instalación de aplicaciones de software de aviónica 14 en la plataforma 16.
[0032] En la figura 1, con fines de simplificación del dibujo, la memoria 12 se ha representado en el exterior del rectángulo que simboliza los recursos 18, con el fin de hacer aparecer de manera distinta la capa de software que corresponde a las aplicaciones de software 14, así como en su caso al dispositivo de instalación 24. No obstante, el experto en la materia comprenderá naturalmente que la memoria 12 está incluida en los recursos 18 de la plataforma 16.
[0033] La aeronave es preferentemente un avión. Como variante, la aeronave es un helicóptero, o incluso un dron pilotado a distancia por un piloto.
[0034] En el ejemplo de la figura 1, la memoria 12 es capaz de almacenar tres aplicaciones de software 14 distintas, y el dispositivo electrónico de instalación 24 está configurado entonces para instalar estas aplicaciones de software de aviónica 14 en la plataforma 16.
[0035] Cada aplicación de software 14 está destinada a ser ejecutada por la plataforma 16 y se diseña así para emitir una o varias llamadas con destino al sistema de explotación 20 alojado por la plataforma 16 y se configura asimismo para usar recursos 18 de la plataforma 16.
[0036] Cuando el sistema electrónico 10 es un sistema electrónico de aviónica embarcado a bordo de la aeronave, cada aplicación de software 14 se denomina también función de aviónica. Las aplicaciones de software 14 cumplen, por ejemplo, diferentes funciones para la realización de un vuelo, y se instalan, por ejemplo, en diferentes plataformas 16 y usan los recursos 18 de dichas plataformas 16.
[0037] Cada aplicación de software de aviónica 14 incluye uno o varios tratamientos de software para ejecutar en el curso de un periodo temporal predefinido, por ejemplo, denotado por MIF (del inglés Mlnor Frame) en la figura 3, incluyendo el periodo temporal predefinido MIF una o varias zonas temporales sucesivas, también denotadas por TC (del inglés Time Cluster).
[0038] Un tratamiento de software designa un conjunto de operaciones sobre datos de la aplicación de software de aviónica 14 que permite realizar partes de una función de aviónica, tales como una adquisición o una emisión de datos, cálculos matemáticos, tratamientos lógicos o una manipulación de datos.
[0039] Cada tratamiento de software se denomina también proceso, o también proceso de software. Un tratamiento de software es, por ejemplo, un proceso en el sentido de la norma ARINC 653.
[0040] Al ser dichas funciones críticas, como por ejemplo, el sistema de frenado o el sistema de gestión del vuelo, la ejecución de cada aplicación de software 14 debe estar separada de manera robusta de la ejecución de las otras aplicaciones de software 14, durante todo su tiempo de ejecución, y la instalación de las aplicaciones de software 14 debe ser efectuada entonces en consecuencia por el dispositivo electrónico de instalación 24.
[0041] La plataforma 16 está destinada especialmente a ser embarcada a bordo de la aeronave. La plataforma 16 es, por ejemplo, una unidad de tratamiento de informaciones formada por una o varias memorias asociadas a uno o varios procesadores.
[0042] La invención es aplicable a diferentes tipos de arquitecturas de software, especialmente a una arquitectura denominada de multitratamiento simétrico, también llamada arquitectura SMP (del inglés Symetrical MultiProcessing), o a una arquitectura denominada de multitratamiento asimétrico, también llamada arquitectura AMP (del inglés Asymetrical MultiProcessing).
[0043] Una arquitectura SMP designa más exactamente una arquitectura de software en la que el sistema de explotación 20 decide en cada instante el proceso que se ejecuta en cada núcleo de procesador.
[0044] En el caso de la arquitectura SMP, la plataforma 16 comprende, por ejemplo, un único sistema de explotación 20, y solo está activa una partición en un instante temporal dado. Para la arquitectura SMP, la plataforma 16 aloja entonces un único sistema de explotación 20 para todos los núcleos.
[0045] En el caso de la arquitectura SMP, la instalación de aplicaciones de software 14 se realiza, por ejemplo, en paralelo en varios núcleos.
[0046] Una arquitectura AMP designa más exactamente una arquitectura de software en la que cada núcleo secuencia un conjunto de aplicaciones de software de manera independiente de los otros núcleos.
[0047] En el caso de la arquitectura AMP, la plataforma 16 comprende, por ejemplo, una pluralidad de sistemas de explotación 20, alojando un sistema de explotación 20 para cada núcleo, lo que permite entonces activar particiones diferentes en un instante temporal dado.
[0048] En el caso de la arquitectura AMP, la instalación de aplicaciones de software 14 se realiza, por ejemplo, de manera secuencial en un solo núcleo independientemente de los otros núcleos.
[0049] Los recursos 18 de la plataforma 16 son elementos físicos o lógicos listos para ponerse a disposición de la o de las aplicaciones de software 14.
[0050] Los recursos 18 se distribuyen, por ejemplo, en las categorías siguientes: recursos de tipo tratamiento de datos (en inglés «processing»), tales como uno o varios procesadores; los recursos de tipo memoria; los recursos de tipo entradas y salidas; recursos específicos de la red de aviónica, tales como encaminadores de comunicación de una red ARINC664; los recursos de tipo gráfico, es decir, que permiten una visualización de datos; y recursos de tipo memoria de masa (en inglés «mass memory»).
[0051] El sistema de explotación 20 es, por ejemplo, un sistema de explotación según la norma ARINC 653, o un sistema de explotación POSIX, o un hipervisor, o un middleware. El experto en la materia comprenderá así que el sistema de explotación 20 se entiende en sentido extenso, y es, de manera más general, un conjunto de al menos un software de base, diseñado para ofrecer servicios de diferentes tipos a cada aplicación 14.
[0052] Como complemento facultativo, el dispositivo electrónico de instalación 24 está configurado para instalar las aplicaciones de software de aviónica 14 en la plataforma 16 y comprende un módulo de determinación 30 configurado para determinar un plan de instalación de los tratamientos de software según al menos una regla entre una primera regla de instalación y una segunda regla de instalación, definiendo el plan de instalación, para cada tratamiento de software, al menos un núcleo y al menos una zona temporal TC asociados a dicho tratamiento de software.
[0053] El dispositivo electrónico de instalación 24 comprende un módulo de instalación 32 configurado para instalar las aplicaciones de software de aviónica 14 en la plataforma 16, según el plan de instalación determinado por el módulo de determinación 30.
[0054] Como complemento facultativo, el dispositivo electrónico de instalación 24 comprende un módulo de prueba 34 configurado para probar el plan de instalación determinado por el módulo de determinación 30, estando el módulo de prueba 34 adaptado para implementar simultáneamente una o varias aplicaciones de software de aviónica y una o varias aplicaciones de prueba. Cada aplicación de prueba es preferentemente representativa de contención o contenciones de intensidad superior o igual a un umbral de contención predefinido.
[0055] El dispositivo de instalación 24 es preferentemente distinto de la plataforma 16, y comprende una unidad de tratamiento de informaciones 40 formada, por ejemplo, por un procesador 42 asociado a una memoria 44.
[0056] Como variante, como se representa en forma de sombreado en la figura 1, el dispositivo de instalación 24 es, por ejemplo, capaz de ser ejecutado, al menos parcialmente, preferentemente para el módulo de determinación 30 y/o el módulo de instalación 32, directamente por la plataforma 16 y de usar entonces sus recursos 18. El dispositivo de instalación 24 está así alojado preferentemente además por el sistema de explotación 20.
[0057] En el ejemplo de la figura 1, ya sea el dispositivo de instalación 24 distinto de la plataforma 16, o bien
esté alojado y sea ejecutado por la plataforma 16, el módulo de determinación 30, el módulo de instalación 32, y como complemento facultativo el módulo de prueba 34, están hechos cada uno en forma de un software, o de un fragmento de software, ejecutable por un procesador, tal como el procesador 42 cuando el dispositivo de instalación 24 es distinto de la plataforma 16. La memoria 44 del dispositivo de instalación 24 es capaz entonces de almacenar un software de determinación del plan de instalación de los tratamientos de software según al menos una regla entre la primera regla de instalación y la segunda regla de instalación, y un software de instalación de las aplicaciones de software de aviónica 14 en la plataforma 16. Como complemento facultativo, la memoria 44 del dispositivo de instalación 24 es capaz de almacenar un software de prueba del plan de instalación determinado por el de software de determinación, estando el software de prueba adaptado para implementar simultáneamente una o varias aplicaciones de software de aviónica y una o varias aplicaciones de prueba.
[0058] Como variante no representada, el módulo de determinación 30, el módulo de instalación 32, y como complemento facultativo el módulo de prueba 34, están hechos cada uno en forma de un componente lógico programable, tal como un FPGA (del inglés Field Prngrammable Gate Array), o en forma de un circuito integrado dedicado, tal como un ASIC (del inglés Application Specific Integrated Circuit).
[0059] Cuando el dispositivo de instalación 24 está hecho en forma de uno o varios software, es decir, en forma de un programa de ordenador, es susceptible además de ser registrado en un soporte, no representado, legible por ordenador. El soporte legible por ordenador es, por ejemplo, un medio adaptado para memorizar instrucciones electrónicas y capaz de acoplarse a un bus de un sistema informático. A modo de ejemplo, el soporte legible es un disquete o disco flexible (de la denominación en inglés Floppy disk), un disco óptico, un CD-ROM, un disco magnetoóptico, una memoria ROM, una memoria RAM, cualquier tipo de memoria no volátil (por ejemplo, EPROM, EEPROM, FLASH, NVRAM), una tarjeta magnética o una tarjeta óptica. En el soporte legible se memoriza entonces un programa de ordenador que comprende instrucciones de software.
[0060] El módulo de determinación 30 está configurado para determinar el plan de instalación de los tratamientos de software según al menos una regla entre la primera regla de instalación y la segunda regla de instalación.
[0061] El módulo de determinación 30 está configurado preferentemente para determinar el plan de instalación de los tratamientos de software según las reglas de instalación primera y segunda a la vez.
[0062] La primera regla de instalación consiste en predeterminar una lista de combinaciones autorizadas de niveles de criticidad para aplicaciones destinadas a ser ejecutadas en el curso de una misma zona temporal TC en la plataforma 16.
[0063] Cada aplicación de software de aviónica 14 tiene, por ejemplo un nivel de criticidad correspondiente a un nivel DAL definido según la norma DO-178 revisión B y siguientes, o según la norma ARP4754. El nivel DAL A es el nivel de criticidad más elevado, y el nivel DAL D es el nivel de criticidad más bajo, según la ordenación siguiente: DAL A > DAL B> DAL C > DAL D.
[0064] Una aplicación de software de aviónica 14 se dice crítica cuando su nivel de criticidad es superior o igual a un umbral predefinido, por ejemplo, al nivel DAL B. Dicho de otro modo, cada aplicación de software crítica tiene un nivel de criticidad preferentemente igual al nivel DAL A o al nivel DAL B, considerándose que los niveles DAL A y DAL B son preferentemente los más críticos.
[0065] En el ejemplo de la figura 4, el procesador multinúcleo es un procesador de cuatro núcleos, y la partición 1 está asociada a un primer núcleo denotado por C0, de manera que la partición 2 está asociada a un segundo núcleo denotado por C1, la partición 3 está asociada a un tercer núcleo denotado por C2 y la partición 4 tiene un cuarto núcleo denotado por C3.
[0066] En el ejemplo de la figura 4 en el que el tercer núcleo C2 y el cuarto núcleo C3 están reservados a aplicaciones de software de aviónica 14 que tienen un nivel de criticidad igual a DAL C o a DAL D, a continuación se indica a modo de ejemplo una lista de combinaciones autorizadas según la primera regla de instalación.
[0067] En este ejemplo de la figura 4, la plataforma absorbe cualquier situación anormal que proceda de aplicaciones para 2 núcleos. En consecuencia, las combinaciones de 3 núcleos están todas autorizadas si respetan la o las reglas de instalación distintas de la primera regla de instalación.
[0068] Aparecen restricciones para configuraciones de 4 núcleos o más. En este ejemplo, se implementa el principio siguiente de asociación de aplicaciones:
• la probabilidad de que dos aplicaciones de software que tienen un mismo nivel de criticidad dado fallen se considera preferentemente sustancialmente igual a la probabilidad de que una aplicación de software que tiene un nivel de criticidad superior de una unidad a dicho nivel de criticidad dado falle, lo que se expresa, por ejemplo, por B*B = A,
C*C = B o D*D = C; y
• la asociación de dos aplicaciones que tienen un nivel de criticidad diferente es equivalente a una aplicación de software que tiene un nivel de criticidad superior en una unidad a la aplicación de criticidad más baja, lo que se expresa, por ejemplo, por D*C = C, o D*B = C,
en lo que cada letra A, B, C y D designa respectivamente el nivel de criticidad DAL A, DAL B, DAL C y DAL D de la aplicación considerada.
[0069] Según la primera regla de instalación, para una aplicación de un nivel de criticidad dado, es preciso entonces que la combinación de las otras aplicaciones sea en el peor de los casos del mismo nivel de criticidad, lo que se traduce en la eliminación del riesgo de que las otras aplicaciones fallen con una probabilidad inaceptable.
[0070] En este ejemplo de 4 núcleos, están prohibidas por tanto las combinaciones siguientes:
A/D/D/D ya que (D*D)*D = C < A
A/C/D/D ya que (D*D)*C = B < A
A/B/D/D ya que (D*D)*B = B < A
A/B/C/D ya que (D*C)*B = B < A
B/D/D/D ya que (D*D)*D = C < B
en las que las letras A, B, C y D designan respectivamente el nivel de criticidad DAL A, DAL B, DAL C y DAL D de la aplicación destinada a ser instalada en un núcleo respectivo, de manera que el símbolo '/' representa la separación entre dos núcleos sucesivos.
[0071] La segunda regla de instalación consiste en prohibir la instalación de aplicación o aplicaciones de software críticas en uno o varios núcleos de la pluralidad de núcleos del procesador multinúcleo.
[0072] En el ejemplo de la figura 4, el tercer núcleo C2 y el cuarto núcleo C3 se reservan, por ejemplo, a las aplicaciones de software de aviónica 14 que tienen un nivel de criticidad igual a DAL C o a DAL D, como se simboliza por la mención «DAL C - DAL D» en el interior de las elipses para el tercer núcleo C2 y el cuarto núcleo C3. Dicho de otro modo, la instalación de aplicación o aplicaciones de software críticas de nivel de criticidad DAL A o DAL B está prohibida, en este ejemplo, en el tercer núcleo C2 y el cuarto núcleo C3. El símbolo «0» en el interior de las elipses para el primer núcleo C0 y el segundo núcleo C1 indica que no hay restricción de instalación de aplicación o aplicaciones de software críticas en estos núcleos C0, C1.
[0073] Como un complemento facultativo más, el módulo de determinación 30 está configurado para determinar el plan de instalación de los tratamientos de software según además una tercera regla de instalación que depende de un tiempo de ejecución de peor caso posible WCET_i del tratamiento de software respectivo, de manera que dicho tiempo de ejecución de peor caso posible WCET_i se incrementa en un aumento Maj-i asociado a la plataforma 16.
[0074] En el ejemplo de la figura 4, para cada partición i, con i índice entero respectivamente igual a 1, 2, 3 y 4, está asociado un tratamiento de software respectivo, y cada tiempo de ejecución de peor caso posible WCET_i está aumentado en un aumento Maj-i asociado a la plataforma 16.
[0075] Este aumento Maj-i del tiempo de ejecución de peor caso posible WCET_i es un margen complementario que ofrece un funcionamiento más seguro de cada aplicación de software de aviónica 14.
[0076] El tiempo de ejecución de peor caso posible WCET_i es normalmente del orden de unos ms, comprendido, por ejemplo, entre 2 ms y 50 ms, preferentemente comprendido entre 5 ms y 20 ms.
[0077] El aumento Maj-i aplicado representa, por ejemplo, entre el 5% y el 30% del tiempo de ejecución de peor caso posible WCET_i asociado, más preferentemente entre el 10% y el 20% de dicho tiempo de ejecución de peor caso posible WCET_i.
[0078] Para la tercera regla de instalación, el aumento Maj-i del tiempo de ejecución de peor caso posible WCET_i depende, por ejemplo, de una tasa de contención máxima predefinida, asociada a la plataforma 16.
[0079] Este aumento Maj-i en función de la tasa de contención máxima procede, por ejemplo, de una caracterización de la plataforma en relación con las contenciones generadas por la ejecución en paralelo de diferentes aplicaciones de software en varios núcleos del procesador multinúcleo.
[0080] El aumento Maj-i es preferentemente independiente del nivel de criticidad de la aplicación de software de aviónica 14 correspondiente al tratamiento de software al que está asociado el aumento Maj-i.
[0081] Como se indica anteriormente, por contención se entiende una situación en la que al menos un
tratamiento ejecutado por al menos un núcleo de un procesador multinúcleo experimenta retrasos en su ejecución a causa del paralelismo temporal permitido por este procesador multinúcleo.
[0082] Por tasa de contención máxima se entiende la relación entre el tiempo de ejecución de una aplicación respectiva que experimenta contenciones en la peor situación de contención posible y el tiempo de ejecución de dicha aplicación en ausencia de contención.
[0083] Como complemento facultativo, el módulo de determinación 30 está configurado para determinar el plan de instalación de los tratamientos de software según además una cuarta regla de instalación consistente en tener en cuenta un margen temporal suplementario Mrg-i para cada aplicación de software crítica.
[0084] Esta cuarta regla de instalación permite justificar de una mejor robustez frente a restricciones de seguridad para aplicaciones de software críticas que tiene un nivel de criticidad preferentemente igual al nivel DAL A 0 al nivel DAL B. El margen temporal suplementario Mrg-i ofrece entonces un funcionamiento todavía más seguro de cada aplicación de software de aviónica 14 crítica ya que permite absorber contenciones que se habrían escapado en una evolución previa de caracterización.
[0085] El margen temporal suplementario Mrg-i depende preferentemente de un nivel de criticidad de la aplicación de software de aviónica 14 a la que pertenece el tratamiento considerado. Más preferentemente, cuanto más elevado es el nivel de criticidad de la aplicación de software de aviónica 14, mayor es el margen temporal suplementario Mrg-i asociado.
[0086] Más allá del tiempo de ejecución de peor caso posible WCET_i aumentado del aumento Maj-i y del margen temporal suplementario Mrg-i, se asigna un suplemento de tiempo Sp_i (del inglés Spare), como complemento facultativo, a la aplicación y forma entonces un margen temporal adicional, utilizable clásicamente por esta aplicación para sus evoluciones.
[0087] En el ejemplo de la figura 4, el nivel de criticidad de la partición 1 es DAL A, el de la partición 2 es DAL B, el de la partición 3 es DAL C y el de la partición 4 es DAL D. El margen temporal suplementario Mrg-1 para la partición 1 tiene entonces una duración superior a la de Mrg-2 para la partición 2, a su vez de duración superior a la de Mrg-3 para la partición 3, a su vez de duración superior a la de Mrg-4 para la partición 4.
[0088] Como variante, la cuarta regla de instalación consiste en tener en cuenta un margen temporal suplementario Mrg-i únicamente para cada aplicación de software crítica. La caracterización previa y el aumento Maji del tiempo de ejecución de peor caso posible WCET_i asociado se consideran entonces suficientes en términos de seguridad para aplicaciones de software no críticas, que tienen, por ejemplo, un nivel de criticidad inferior o igual al nivel DAL C. Aplicando esta variante al ejemplo de la figura 4 y tomando el ejemplo en que las aplicaciones de software no críticas son las que tienen un nivel de criticidad inferior o igual al nivel DAL C, el margen temporal suplementario Mrg-3 es entonces nulo para la partición 3 de nivel DAL C, al igual que el margen temporal suplementario Mrg-4 para la partición 4 de nivel DAL D. Dicho de otro modo, no se asocia entonces ningún margen temporal suplementario Mrg-1 a las particiones 3 y 4.
[0089] El módulo de determinación 30 está configurado así para determinar el plan de instalación de los tratamientos de software según al menos una regla entre las reglas de instalación primera, segunda, tercera y cuarta.
[0090] El módulo de determinación 30 está configurado preferentemente para determinar el plan de instalación de los tratamientos de software según varias reglas a la vez entre las reglas de instalación primera, segunda, tercera y cuarta. El módulo de determinación 30 está configurado más preferentemente para determinar el plan de instalación de los tratamientos de software según tres reglas a la vez, y más preferentemente según todas las reglas a la vez, entre las reglas de instalación primera, segunda, tercera y cuarta.
[0091] El módulo de instalación 32 está configurado entonces para instalar las aplicaciones de software de aviónica 14 en la plataforma 16 y según el plan de instalación determinado por el módulo de determinación 30.
[0092] El módulo de prueba 34 está configurado para probar el plan de instalación determinado por el módulo de determinación 30. El módulo de prueba 34 está adaptado para implementar simultáneamente una o varias aplicaciones de software de aviónica y una o varias aplicaciones de prueba.
[0093] Al menos una aplicación de prueba es representativa preferentemente de contención o contenciones de intensidad superior a un umbral de contención predefinido.
[0094] En el ejemplo de la figura 5, el módulo de prueba 34 está configurado para probar la partición 2 en el segundo núcleo C1 con la implementación de una aplicación de software de aviónica 14 correspondiente en este núcleo C1 y simultáneamente de aplicaciones de prueba en los otros tres núcleos C0, C2 y C3 del procesador de cuatro núcleos de este ejemplo. Las aplicaciones de prueba en los núcleos C2, y respectivamente c 3, son además
representativas de contención o contenciones de intensidad superior a un umbral de contención predefinido, como se indica por la barra con la mención «Contención». La aplicación de prueba en el primer núcleo C0 es representativa de contención o contenciones de intensidad inferior a dicho umbral de contención, como se simboliza por la barra que incluye la mención «Normal».
[0095] A continuación se explicará el funcionamiento del dispositivo de instalación 24 según la invención con ayuda de la figura 2 que representa un organigrama del procedimiento, según la invención, de instalación de aplicaciones de software 14 en la plataforma 16, estando el procedimiento implementado por el dispositivo electrónico de instalación 24.
[0096] Durante una etapa 100, el dispositivo de instalación 24 determina, por medio de su módulo de determinación 30, el plan de instalación de los tratamientos de software según al menos una regla entre las reglas de instalación primera, segunda, tercera y cuarta descritas anteriormente, preferentemente entre la primera regla de instalación y la segunda regla de instalación.
[0097] El plan de instalación define, para cada tratamiento de software, al menos un núcleo y al menos una zona temporal t C asociados a dicho tratamiento de software. En el ejemplo de la figura 3, las particiones se denotan por «Part. », seguido por un índice entero comprendido entre 1 y 7, y el nivel de criticidad DAL asociado a cada aplicación se menciona entre paréntesis. En este ejemplo, para la primera zona temporal TC1, el plan de instalación indica entonces la instalación de la partición 1 de nivel de criticidad DAL A en el primer núcleo C0, de la partición 2 de nivel de criticidad DAL B en el segundo núcleo C1 y de la partición 3 de nivel de criticidad DAL C en el tercer núcleo C2. Para la segunda zona temporal TC2, el plan de instalación prevé la instalación de dos particiones en el primer núcleo C0, en concreto, la partición A de nivel de criticidad DAL A y la partición 5 de nivel de criticidad DAL B, y de la partición 6 de nivel de criticidad DAL C en el segundo núcleo C1. Finalmente, para la tercera zona temporal TC3, el plan de instalación indica la instalación de la partición 7 de nivel de criticidad DAL A en el primer núcleo C0 y el segundo núcleo C1 a la vez.
[0098] Este plan de instalación de la figura 3 verifica especialmente la segunda regla de instalación, ilustrada anteriormente frente a la figura 4, ya que no se prevé ninguna partición de nivel de criticidad DAL A o DAL B en los núcleos tercero C2 y cuarto C3 que están reservados en este caso a las aplicaciones de software de aviónica 14 que tienen un nivel de criticidad igual a DAL C o a DAL D. Dicho de otro modo, la instalación de aplicación o aplicaciones de software críticas de nivel de criticidad DAL A o DAL B solo es posible, en este ejemplo, en el primer núcleo C0 y/o en el segundo núcleo C1.
[0099] El experto en la materia observará que cada zona temporal TC está delimitada por separaciones SW en el ejemplo de las figuras 3 a 5. Cada separación SW corresponde a una conmutación síncrona multinúcleo efectuada en el conjunto de los núcleos del procesador multinúcleo.
[0100] Opcionalmente, durante la etapa siguiente 110, el dispositivo de instalación 24 determina, por medio de su módulo de prueba 34, el plan de instalación previamente determinado por el módulo de determinación 30.
[0101] La etapa de prueba 110 incluye entonces, como se explica anteriormente en relación con la figura 5, la implementación simultánea por el módulo de prueba 34 de una o varias aplicaciones de software de aviónica 14 y de una o varias aplicaciones de prueba. Al menos una aplicación de prueba es preferentemente representativa de contención o contenciones de intensidad superior a un umbral de contención predefinido.
[0102] Finalmente, durante la etapa siguiente 120, el dispositivo de instalación 24 instala, por medio de su módulo de instalación 32 y en la plataforma 16, las aplicaciones de software de aviónica 14 según el plan de instalación, previamente determinado por el módulo de determinación 30, y en su caso probado por el módulo de prueba 34.
[0103] Así, el procedimiento y el dispositivo 24 de instalación de aplicaciones de software de aviónica 14 en la plataforma 16 con procesador o procesadores multinúcleo permiten limitar los riesgos de contención durante la ejecución de dichas aplicaciones de software 14 y facilitar así la cualificación de la plataforma 16.
[0104] De hecho, la primera regla de instalación permite optimizar la instalación de las aplicaciones de software de aviónica 14 en la plataforma 16 en función de las probabilidades de fallo.
[0105] La segunda regla de instalación lleva a limitar el uso del procesador multinúcleo para las aplicaciones más críticas prohibiendo ciertos núcleos de dicho procesador. Normalmente, como se ilustra en los ejemplos de las figuras 3 y 4, en un procesador de cuatro núcleos, las aplicaciones de nivel de criticidad DAL A y DAL B solo pueden instalarse en los núcleos 0 y
1. Esta segunda regla de instalación permite así constituir un santuario para estas aplicaciones críticas en caso de contención extrema. El buen funcionamiento dentro del santuario se garantiza así por la detección de estas contenciones y la parada progresiva de las aplicaciones menos críticas en los otros núcleos 2 y 3.
[0106] Con la tercera regla de instalación, el aumento Maj-i es un margen resultante de la caracterización de la plataforma 16 en relación con las contenciones y que ofrece entonces un funcionamiento más seguro de cada aplicación de software de aviónica 14.
[0107] Al prever la cuarta regla de instalación un margen temporal suplementario Mrg-i para cada aplicación de software crítica permite justificar una mejor robustez frente a restricciones de seguridad para aplicaciones de software críticas permitiendo la absorción de contenciones que habrían escapado a una caracterización previa.
Claims (10)
1. Procedimiento de instalación de aplicaciones de software de aviónica (14) en una plataforma (16) destinada a ser embarcada a bordo de una aeronave, comprendiendo la plataforma (16) un procesador multinúcleo que tiene una pluralidad de núcleos distintos, incluyendo cada aplicación de software de aviónica (14) uno o varios tratamientos de software para ejecutar en el curso de un periodo temporal predefinido (MIF), incluyendo el periodo temporal predefinido (MIF) una o varias zonas temporales sucesivas (TC), estando cada zona temporal (TC) delimitada por separaciones (SW) que corresponden cada una a una conmutación síncrona multinúcleo efectuada en el conjunto de los núcleos del procesador multinúcleo,
implementándose el procedimiento de instalación por medio de un dispositivo electrónico de instalación (24) y que comprende la etapa siguiente:
- la determinación (100) de un plan de instalación de los tratamientos de software según al menos una regla entre una primera regla de instalación y una segunda regla de instalación, definiendo el plan de instalación, para cada tratamiento de software, al menos un núcleo y al menos una zona temporal (TC) asociados a dicho tratamiento de software,
la primera regla de instalación consistente en predeterminar una lista de combinaciones autorizadas de niveles de criticidad para aplicaciones destinadas a ser ejecutadas en el curso de una misma zona temporal en la plataforma (16),
la segunda regla de instalación consistente en prohibir la instalación de aplicación o aplicaciones de software críticas en uno o varios núcleos de la pluralidad de núcleos del procesador multinúcleo, teniendo cada aplicación de software crítica un nivel de criticidad superior o igual a un umbral predefinido, correspondiendo el nivel de criticidad a un nivel DAL definido según la norma DO-178 revisión B, o según la norma ARP4754.
2. Procedimiento según la reivindicación 1, en el que, para la primera regla de instalación, para una aplicación de un nivel de criticidad dado, la combinación de las otras aplicaciones debe ser en el peor de los casos del mismo nivel de criticidad, y la probabilidad de que dos aplicaciones de software que tienen un mismo nivel de criticidad dado fallen se considera sustancialmente igual a la probabilidad de que una aplicación de software que tiene un nivel de criticidad superior en una unidad a dicho nivel de criticidad dado falle.
3. Procedimiento según la reivindicación 1 o 2, en el que, para la segunda regla de instalación, cada aplicación de software crítica tiene un nivel de criticidad igual al nivel DAL A o al nivel DAL B, de manera que los niveles DAL A y DAL B se consideran preferentemente como los más críticos.
4. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que, durante la etapa de determinación (100), el plan de instalación se determina según las reglas de instalación primera y segunda.
5. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que, durante la etapa de determinación (100), el plan de instalación se determina además según una tercera regla de instalación que depende de un tiempo de ejecución de peor caso posible (WCET_i) del tratamiento de software respectivo, estando dicho tiempo de ejecución de peor caso posible (WCET_i) aumentado en un aumento (Maj-i) asociado a la plataforma (16), de manera que para la tercera regla de instalación, el aumento (Maj-i) del tiempo de ejecución de peor caso posible (WCET_i) depende preferentemente de una tasa de contención máxima predefinida, asociada a la plataforma (16).
6. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que, durante la etapa de determinación (100), el plan de instalación se determina además según una cuarta regla de instalación consistente en tener en cuenta un margen temporal suplementario (Mrg-i) para cada aplicación de software crítica, teniendo cada aplicación de software crítica preferentemente un nivel de criticidad igual al nivel DAL A o al nivel DAL B, de manera que los niveles DAL A y DAL B se consideran preferentemente todavía como los más críticos.
7. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que el procedimiento comprende además una etapa (110) de prueba del plan de instalación determinado, efectuada después de la etapa de determinación (100), incluyendo la etapa de prueba (110) una implementación simultánea de una o varias aplicaciones de software de aviónica (14) y de una o varias aplicaciones de prueba, siendo al menos una aplicación de prueba preferentemente representativa de contención o contenciones de intensidad superior o igual a un umbral de contención predefinido.
8. Programa informático que incluye instrucciones de software que, cuando son ejecutadas por un ordenador, implementan un procedimiento según cualquiera de las reivindicaciones anteriores.
9. Dispositivo electrónico (24) de instalación de aplicaciones de software de aviónica (14) en una plataforma (16) destinada a ser embarcada a bordo de una aeronave, comprendiendo la plataforma (16) un procesador multinúcleo que tiene una pluralidad de núcleos distintos, de manera que cada aplicación de software de aviónica incluye uno o varios tratamientos de software para ejecutar en el curso de un periodo temporal predefinido (MIF),
incluyendo el periodo temporal predefinido (MIF) una o varias zonas temporales sucesivas (TC), estando cada zona temporal (TC) delimitada por separaciones (SW) que corresponden cada una a una conmutación síncrona multinúcleo efectuada en el conjunto de los núcleos del procesador multinúcleo, comprendiendo el dispositivo (24) un módulo de determinación (30) configurado para determinar un plan de instalación de los tratamientos de software según al menos una regla entre una primera regla de instalación y una segunda regla de instalación, definiendo el plan de instalación, para cada tratamiento de software, al menos un núcleo y al menos una zona temporal (TC) asociados a dicho tratamiento de software,
+ la primera regla de instalación consistente en predeterminar una lista de combinaciones autorizadas de niveles de criticidad para aplicaciones destinadas a ser ejecutadas en el curso de una misma zona temporal en la plataforma (16),
+ la segunda regla de instalación consistente en prohibir la instalación de aplicación o aplicaciones de software críticas en uno o varios núcleos de la pluralidad de núcleos del procesador multinúcleo, teniendo cada aplicación de software crítica un nivel de criticidad superior o igual a un umbral predefinido, de manera que el nivel de criticidad corresponde a un nivel DAL definido según la norma DO-178 revisión B, o según la norma ARP4754.
10. Sistema electrónico (10) que comprende:
- una memoria (12) capaz de almacenar aplicaciones de software (14);
- una plataforma (16) apta para ejecutar cada aplicación de software (14), comprendiendo la plataforma (16) un procesador multinúcleo que tiene una pluralidad de núcleos distintos; y
- un dispositivo electrónico (24) de instalación de las aplicaciones de software de aviónica (14) en la plataforma (16), siendo el dispositivo electrónico de instalación (24) según la reivindicación 9.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1800808A FR3084500B1 (fr) | 2018-07-26 | 2018-07-26 | Procede et dispositif electronique d'installation logicielles avioniques sur une plateforme comprenant un processeur multicoeurs, programme d'ordinateur et systeme electronique associes |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2861261T3 true ES2861261T3 (es) | 2021-10-06 |
Family
ID=65031171
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19188337T Active ES2861261T3 (es) | 2018-07-26 | 2019-07-25 | Procedimiento y dispositivo electrónico de instalación de aplicaciones de software de aviónica en una plataforma que comprende un procesador multinúcleo, programa de ordenador y sistema electrónico asociados |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US10983777B2 (es) |
| EP (1) | EP3599552B1 (es) |
| CN (1) | CN110780886A (es) |
| ES (1) | ES2861261T3 (es) |
| FR (1) | FR3084500B1 (es) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3798886B1 (en) | 2019-09-26 | 2025-07-16 | General Electric Company | Devices, systems, and methods for securely initializing an embedded system |
| US11409643B2 (en) * | 2019-11-06 | 2022-08-09 | Honeywell International Inc | Systems and methods for simulating worst-case contention to determine worst-case execution time of applications executed on a processor |
| FR3110310B1 (fr) * | 2020-05-13 | 2022-12-23 | Thales Sa | Procédé de mitigation de contentions pour une application opérationnelle, produit programme d'ordinateur et procédé de détermination d'un application stressante associés |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5553237A (en) * | 1994-12-13 | 1996-09-03 | Base Ten Systems, Inc. | Safety critical monitoring of microprocessor controlled embedded systems |
| US8015392B2 (en) * | 2004-09-29 | 2011-09-06 | Intel Corporation | Updating instructions to free core in multi-core processor with core sequence table indicating linking of thread sequences for processing queued packets |
| EP4087195B2 (en) * | 2009-09-08 | 2026-01-28 | Abbott Diabetes Care, Inc. | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
| BR112013000271A2 (pt) * | 2010-07-06 | 2016-05-24 | Saab Ab | sistema hospedeiro de aplicação em aviônico, simulador de voo compreendendo sistema hospedeiro, método para simular e/ou testar um número de aplicações particionadas dispostas para ser periodicamente executadas em um sistema alvo e programa de computador |
| FR2987145B1 (fr) * | 2012-02-20 | 2014-04-04 | Airbus Operations Sas | Procede et dispositif d'optimisation de mises a jour de donnees dans des applications logicielles operationnellement approuvees d'aeronefs |
| DE202012013193U1 (de) * | 2012-06-26 | 2015-05-06 | INTER CONTROL Hermann Köhler Elektrik GmbH & Co KG | Vorrichtung für eine sicherheitskritische Anwendung |
| US11150885B2 (en) * | 2012-08-22 | 2021-10-19 | Transportation Ip Holdings, Llc | Method and system for vehicle software management |
| FR2998073B1 (fr) * | 2012-11-14 | 2016-01-08 | Thales Sa | Systeme electronique, plateforme d'execution modulaire embarquee et procede assurant le cloisonnement de regles decisionnelles parametrables |
| FR3003366B1 (fr) * | 2013-03-12 | 2015-04-10 | Airbus Operations Sas | Procede, dispositif et programme d'ordinateur pour l'installation ou la desinstallation automatique de modules logiciels dans des equipements embarques d'un aeronef |
| US9720742B2 (en) * | 2014-05-15 | 2017-08-01 | GM Global Technology Operations LLC | Service and system supporting coherent data access on multicore controller |
| FR3025628B1 (fr) * | 2014-09-04 | 2017-12-22 | Centre Nat D'etudes Spatiales (Cnes) | Systeme embarque mettant en oeuvre des fonctions avioniques critiques |
| US9916189B2 (en) * | 2014-09-06 | 2018-03-13 | Advanced Micro Devices, Inc. | Concurrently executing critical sections in program code in a processor |
| EP3261523B1 (en) * | 2015-02-27 | 2023-05-03 | Zoll Medical Corporation | Downloading and booting method and system for a wearable medical device |
| FR3038751B1 (fr) * | 2015-07-07 | 2018-05-11 | Thales | Procede d'integration d'une application d'optimisation de route (s) sous contraintes dans un systeme embarque avionique a architecture ouverte de type client serveur |
| US9785535B2 (en) * | 2015-08-10 | 2017-10-10 | Accenture Global Services Limited | Multi-data analysis based proactive defect detection and resolution |
| FR3045879B1 (fr) * | 2015-12-21 | 2018-02-02 | Thales | Plateforme d'execution avionique et plateforme de developpement permettant la certification independante de composants logiciels |
| JP6365572B2 (ja) * | 2016-03-14 | 2018-08-01 | トヨタ自動車株式会社 | 車両用のソフトウェア管理システム、管理サーバ及び車両 |
| FR3057081B1 (fr) * | 2016-10-05 | 2019-11-08 | Airbus Operations | Processeur comprenant une pluralite de coeurs de calcul |
| US10846076B2 (en) * | 2016-10-11 | 2020-11-24 | Barfield, Inc. | Remote application update of measurement device field firmware |
| AU2017349775B2 (en) * | 2016-10-31 | 2019-06-27 | Leonardo S.P.A. | Certifiable deterministic system software framework for hard real-time safety-critical applications in avionics systems featuring multi-core processors |
| EP3399411A1 (en) * | 2017-05-04 | 2018-11-07 | Volvo Car Corporation | Method and system for fault handling during remote installation of software in a vehicle |
| US10366007B2 (en) * | 2017-12-11 | 2019-07-30 | Honeywell International Inc. | Apparatuses and methods for determining efficient memory partitioning |
| JP7311245B2 (ja) * | 2018-03-07 | 2023-07-19 | トヨタ自動車株式会社 | マスタ装置、マスタ、制御方法、プログラム及び車両 |
| US10824412B2 (en) * | 2018-04-27 | 2020-11-03 | Nutanix, Inc. | Method and apparatus for data driven and cluster specific version/update control |
-
2018
- 2018-07-26 FR FR1800808A patent/FR3084500B1/fr not_active Expired - Fee Related
-
2019
- 2019-07-19 US US16/517,179 patent/US10983777B2/en active Active
- 2019-07-23 CN CN201910666943.0A patent/CN110780886A/zh active Pending
- 2019-07-25 EP EP19188337.0A patent/EP3599552B1/fr active Active
- 2019-07-25 ES ES19188337T patent/ES2861261T3/es active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN110780886A (zh) | 2020-02-11 |
| EP3599552B1 (fr) | 2021-01-27 |
| US20200034130A1 (en) | 2020-01-30 |
| EP3599552A1 (fr) | 2020-01-29 |
| FR3084500B1 (fr) | 2020-07-03 |
| FR3084500A1 (fr) | 2020-01-31 |
| US10983777B2 (en) | 2021-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2861261T3 (es) | Procedimiento y dispositivo electrónico de instalación de aplicaciones de software de aviónica en una plataforma que comprende un procesador multinúcleo, programa de ordenador y sistema electrónico asociados | |
| US12360864B2 (en) | Workload repetition redundancy | |
| CN107357666B (zh) | 一种基于硬件保护的多核并行系统处理方法 | |
| US9836318B2 (en) | Safety hypervisor function | |
| EP3663920A1 (en) | Buffer checker | |
| US20110066814A1 (en) | Control software for distributed control, and electronic control device | |
| US11940866B2 (en) | Verifying processing logic of a graphics processing unit | |
| CN102968363A (zh) | 用于保护和无损地检查与安全相关的寄存器的装置和方法 | |
| US10571295B2 (en) | Method and device for monitoring an avionics software application via its execution duration, related computer program and avionics system | |
| KR20220027965A (ko) | 펌웨어 롤백 방지 | |
| US10191793B2 (en) | Microprocessor device with reset timer | |
| US10635309B2 (en) | Method for protecting user data of a storage device, and electronic computing system | |
| Parízek et al. | Model checking of concurrent programs with static analysis of field accesses | |
| Szurman et al. | Run-time reconfigurable fault tolerant architecture for soft-core processor NEO430 | |
| Farrall et al. | Hardware and software support for mixed-criticality multicore systems | |
| TWI497318B (zh) | 辨識刀鋒式裝置之記憶體供包括此刀鋒式裝置之分區的作業系統用之技術 | |
| ES2992251T3 (es) | Controlador de arranque seguro para un sistema de a bordo, sistema de a bordo y procedimiento de arranque seguro asociados | |
| KR102475879B1 (ko) | Mdps mcu 코어 고장 감지 장치 및 방법 | |
| CN118133771B (zh) | 寄存器扰动装置、芯片验证方法和系统、设备及存储介质 | |
| US9405580B2 (en) | Method of sequencing on a multicore processor | |
| CN116700786B (zh) | 一种微控制器及防止微控制器Flash误擦写的方法 | |
| CN116382957A (zh) | 一种amp模式下基于两次信息交互的多核处理器容错方法 | |
| CN119004559A (zh) | 一种计算机系统、启动方法、睡眠方法及唤醒方法 | |
| Driscoll | Integrated modular avionics (IMA) requirements and development | |
| Domingues et al. | Design recommendations to mitigate memory and cache non-determinisms in multi-core based IMA platform of airborne systems |