Temps de lecture : 8 minutes
CAST-32A présente la position coordonnée des autorités de certification avionique concernant les processeurs multicœurs (MCP). Alors que l'écosystème avionique d'aujourd'hui pourrait bénéficier de l'utilisation des MCP, avant la publication de CAST-32A, la FAA & l’EASA n'avaient pas encore imaginé un moyen d'obtenir un crédit de certification pour les logiciels sécuritaires déployés sur un MCP.
À cette fin, le document de synthèse CAST-32A identifie les sujets de préoccupation qui pourraient avoir une incidence sur la sécurité, les performances et l'intégrité d’un logiciel sécuritaire DO-178C déployé sur les MCP. Pour chaque sujet, le document fournit une justification qui explique pourquoi ces thèmes sont importants et propose des objectifs afin de répondre à ces préoccupations.
CAST-32A est-il significatif aujourd'hui ?
Étant donné que les documents de certification des logiciels avioniques (DO-178B / C et ED-12B / C) ont été rédigés avant l'utilisation des MCP dans les aéronefs civils, ces directives de certification ne peuvent porter que sur l'exécution de logiciels sur du matériel monocœur. L'équipe du logiciel des autorités de certification (the Certification Authorities Software Teams - CAST) est une équipe internationale d'experts qui clarifient et harmonisent l'écosystème de développement pour l'aviation. Leur position est que l’utilisation des MCP pourrait amener des avantages significatifs en termes de taille, de poids, de puissance et de coût - SWaP-C - et que les équipementiers avioniques sont aujourd’hui fortement intéressés pour utiliser des MCP dans leurs systèmes.
L’industrie « Grand Public » à d’ores et déjà pleinement adopté les MCP et de nombreux appareils utilisés quotidiennement intègrent des MCP. Certains prédisent déjà l'obsolescence des architectures mono-cœur (Single-Core Processor -SCP) à plus ou moins brève échéance
L'avionique de demain utilisera certainement des équipements plus sophistiqués, ce qui signifie le besoin d’une capacité de traitement et de calcul considérablement accrue. Les MCP sont une solution clé à ce besoin incessant d’augmentation de puissance des systèmes informatiques embarqués. Par conséquent l'industrie avionique, dans sa globalité, doit réfléchir à la meilleure façon d'utiliser les MCP dans les développements futurs. Mais comment surmonter les défis des MCP ?
Avant d’aborder les sujets de préoccupation du comité CAST-32A sur les MCP, qui mettent l'accent sur le partitionnement et sa dégradation, considérons d'abord le contexte influençant l'utilisation des MCP. Les ingénieurs et les managers qui anticipent déjà l'utilisation des MCP dans leurs prochaines générations d’équipements tireront partie de cette analyse.
L’industrie « Grand Public » à d’ores et déjà pleinement adopté les MCP et de nombreux appareils utilisés quotidiennement intègrent des MCP. Certains prédisent déjà l'obsolescence des architectures mono-cœur (Single-Core Processor -SCP) à plus ou moins brève échéance
L'avionique de demain utilisera certainement des équipements plus sophistiqués, ce qui signifie le besoin d’une capacité de traitement et de calcul considérablement accrue. Les MCP sont une solution clé à ce besoin incessant d’augmentation de puissance des systèmes informatiques embarqués. Par conséquent l'industrie avionique, dans sa globalité, doit réfléchir à la meilleure façon d'utiliser les MCP dans les développements futurs. Mais comment surmonter les défis des MCP ?
Avant d’aborder les sujets de préoccupation du comité CAST-32A sur les MCP, qui mettent l'accent sur le partitionnement et sa dégradation, considérons d'abord le contexte influençant l'utilisation des MCP. Les ingénieurs et les managers qui anticipent déjà l'utilisation des MCP dans leurs prochaines générations d’équipements tireront partie de cette analyse.
Monocœur vs multicœur
Le diagramme suivant illustre les différences essentielles entre mono-cœur et multi-cœurs :
Comme illustré ci-dessus, un processeur mono-cœur (côté gauche) est composé d'un ensemble de registres et d'une Unité Arithmétique / Logique (ALU) associée. Les cœurs multithread (non représentés) peuvent être conçus par duplication des parties les plus utilisées d'un mono-cœur, par exemple, en ajoutant un deuxième set de registres.
Dans les vrais MCP (côté droit), les cœurs sont « tuilés » pour créer un ensemble plus étendu de cœurs. En règle générale, les SCP et les MCP utilisent un bus pour accéder aux ressources et périphériques « externes » et « non sensibles » en termes de comportement.
Pour bon nombre de développeurs l'utilisation de MCP amène de nombreux avantages tels que :
Dans les vrais MCP (côté droit), les cœurs sont « tuilés » pour créer un ensemble plus étendu de cœurs. En règle générale, les SCP et les MCP utilisent un bus pour accéder aux ressources et périphériques « externes » et « non sensibles » en termes de comportement.
Pour bon nombre de développeurs l'utilisation de MCP amène de nombreux avantages tels que :
- Performances nettement supérieures
- Exécution simultanée
- Moins de puissance nécessaire et de chaleur dissipée par instruction individuelle exécutée.
- Possibilité d’applications « multithread »
- Prise en charge la loi de Moore
- Accès « aux technologies les plus récentes » du monde industriel
Quel type de « domicile » pour héberger les tâches Sécuritaires : Maison, appartement ou hôtel ?
Les marchés des PC, des serveurs et des mobiles utilisant des systèmes d'exploitation de type multiprocesseurs symétriques (SMP) sont de grands consommateurs de processeurs MCP et ce depuis 2005. Cette approche a permis aux serveurs d’entreprise d’évoluer et d’être à même d’absorber des charges de traitement de plus en plus lourdes. Par contre, les contraintes temps réel et les problèmes de sécurité (Safety) caractéristiques des logiciels certifiés DO-178C ont retardé l'adoption du MCP pour les logiciels avioniques. Les sujets de préoccupation présentés dans le rapport CAST-32A se situent au cœur de cette différence entre les systèmes d'exploitation SMP, qui ont facilement évolué pour utiliser des MCP, et les systèmes d'exploitation en temps réel sécuritaires qui ne l'ont pas fait.
Ces problématiques ont été également soulignées dans de nombreuses autres publications de la FAA et du RTCA. Par exemple, un modèle de référence pour le traitement en temps réel est donné dans le document FAA AR-05/27. Dans ce modèle, les systèmes avioniques temps réel sont considérés comme calculant une « loi de commande » qui prend en comptes les entrées des capteurs et fournit des sorties aux actionneurs sur une base périodique fixe. Lorsque l'actionneur contrôle un élément critique tel qu’une commande de vol ou un autre aspect critique pour la sécurité de l'avion, le non-respect de l'échéance temporelle peut avoir des effets catastrophiques. Dans ces contextes, les problèmes les plus difficiles auxquels sont confrontés les déploiements MCP concernent la protection - ou le partitionnement - des logiciels chargés de respecter ces délais critiques pour la sécurité et ainsi que d’assurer un comportement déterministe et maitriser la logique interne des MCP.
Dans une application « entreprise », les tâches, processus et threads sont « encouragés » à quitter leur processeur hôte fréquemment - à un rythme qui peut être comparé à la loi de Moore.
En revanche, le fait d'héberger des applications embarquées temps réel critiques soulève des problèmes de sécurité et des coûts de certification qui doivent être réexaminés chaque fois que le logiciel d'avionique est déployé sur un modèle de processeur différent. En règle générale, dans le domaine avionique, les logiciels sécuritaires nécessitant des exécutions déterministes et en temps réel sont plus étroitement liés à un cœur processeur unique et à une carte cible spécifiques. Pour cette raison, la loi de Moore aide et nuit aux systèmes temps réel. Le graphique de la loi de Moore (ci-dessous) aide à formuler ces préoccupations en termes de croissance exponentielle au cours des décennies :
Ces problématiques ont été également soulignées dans de nombreuses autres publications de la FAA et du RTCA. Par exemple, un modèle de référence pour le traitement en temps réel est donné dans le document FAA AR-05/27. Dans ce modèle, les systèmes avioniques temps réel sont considérés comme calculant une « loi de commande » qui prend en comptes les entrées des capteurs et fournit des sorties aux actionneurs sur une base périodique fixe. Lorsque l'actionneur contrôle un élément critique tel qu’une commande de vol ou un autre aspect critique pour la sécurité de l'avion, le non-respect de l'échéance temporelle peut avoir des effets catastrophiques. Dans ces contextes, les problèmes les plus difficiles auxquels sont confrontés les déploiements MCP concernent la protection - ou le partitionnement - des logiciels chargés de respecter ces délais critiques pour la sécurité et ainsi que d’assurer un comportement déterministe et maitriser la logique interne des MCP.
Dans une application « entreprise », les tâches, processus et threads sont « encouragés » à quitter leur processeur hôte fréquemment - à un rythme qui peut être comparé à la loi de Moore.
En revanche, le fait d'héberger des applications embarquées temps réel critiques soulève des problèmes de sécurité et des coûts de certification qui doivent être réexaminés chaque fois que le logiciel d'avionique est déployé sur un modèle de processeur différent. En règle générale, dans le domaine avionique, les logiciels sécuritaires nécessitant des exécutions déterministes et en temps réel sont plus étroitement liés à un cœur processeur unique et à une carte cible spécifiques. Pour cette raison, la loi de Moore aide et nuit aux systèmes temps réel. Le graphique de la loi de Moore (ci-dessous) aide à formuler ces préoccupations en termes de croissance exponentielle au cours des décennies :
Pour illustrer la problématique de transférer une application sécuritaire d’une architecture SCP vers une architecture MCP, on peut considérer cela comme déménager l’application d’une maison vers un nouveau domicile et la question est quel est le type de logement le plus approprié : (1) une structure permanente dédiée à cet usage comme une maison, (2) une structure à usage partagé, comme un appartement, ou (3) une chambre à temps partagé, comme un hôtel ?
En 2014, la FAA a publié lune première version, le CAST-32, qui a été rendu obsolète par le CAST-32A. À cette époque, des experts indépendants de l'industrie, tels que David Arterburn, directeur du Rotorcraft Systems Engineering and Simulation Center de l'Université de l'Alabama à Huntsville, ont minimisé les perspectives à court termes de l’utilisation multicœurs, soulignant la difficulté de comprendre et de prédire les interactions complexe au sein de puces quad-core par exemple. Arterburn compilait à l'époque 36 études de divers groupes de travail financés. V. H. Dova rapporte dans son évaluation des niveaux de préparation technique de la future avionique modulaire intégrée (IMA2G ou IMA de 2e génération) :
« Arterburn a minimisé l'importance de la publication CAST-32, affirmant qu'aucune installation de puces multicœurs n'a réellement atteint la navigabilité officielle ». Il n'a pas tardé à souligner cependant que la question allait bientôt arriver à un point critique. « Dans cinq ans », a-t-il prédit, « vous ne pourrez plus acheter un processeur monocœur classique » (D. R. Arterburn, communication personnelle, 22 janvier 2015 tel que rapporté dans Dova, 2015)
Le graphique de la loi de Moore ci-dessus prend en charge la prédiction d'Arterburn. Non seulement la production des processeurs MCP augmente à mesure que la production de SCP diminue, mais le tracé des transistors heurtera inévitablement un mur lié à la limite de la physique (la taille minimale d'un cristal semi-conducteur) et d'une limite de rentabilité (le prix de revient par transistor). Alors que la croissance exponentielle du nombre de transistors cessera, le nombre de cœurs logiques par boîtier de microprocesseur (ou puce) a augmenté de façon exponentielle depuis avant 2010 comme le montre le tracé en noir sur la figure précédente et c’est cette tendance auquel le document CAST-32A répond.
« Arterburn a minimisé l'importance de la publication CAST-32, affirmant qu'aucune installation de puces multicœurs n'a réellement atteint la navigabilité officielle ». Il n'a pas tardé à souligner cependant que la question allait bientôt arriver à un point critique. « Dans cinq ans », a-t-il prédit, « vous ne pourrez plus acheter un processeur monocœur classique » (D. R. Arterburn, communication personnelle, 22 janvier 2015 tel que rapporté dans Dova, 2015)
Le graphique de la loi de Moore ci-dessus prend en charge la prédiction d'Arterburn. Non seulement la production des processeurs MCP augmente à mesure que la production de SCP diminue, mais le tracé des transistors heurtera inévitablement un mur lié à la limite de la physique (la taille minimale d'un cristal semi-conducteur) et d'une limite de rentabilité (le prix de revient par transistor). Alors que la croissance exponentielle du nombre de transistors cessera, le nombre de cœurs logiques par boîtier de microprocesseur (ou puce) a augmenté de façon exponentielle depuis avant 2010 comme le montre le tracé en noir sur la figure précédente et c’est cette tendance auquel le document CAST-32A répond.
Article rédigé par Mark Brown - Systems Architect LYNX SOFTWARE
Votre Interlocuteur : Fréderic MARAVAL - Responsable Produits Systèmes embarqués et Qualité
Solutions : LYNX SOFTWARE