École De Technologie Supérieure Université Du Québec
Total Page:16
File Type:pdf, Size:1020Kb
ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC MÉMOIRE PRÉSENTÉ À L’ÉCOLE DE TECHNOLOGIE SUPÉRIEURE COMME EXIGENCE PARTIELLE À L’OBTENTION DE LA MAÎTRISE EN GÉNIE ÉLECTRIQUE M.Ing. PAR Tennessee CARMEL-VEILLEUX ADAPTATION MULTICOEUR D’UN NOYAU DE PARTITIONNEMENT ROBUSTE VERS L’ARCHITECTURE POWERPC MONTRÉAL, LE 7 SEPTEMBRE 2011 © Tous droits réservés, Tennessee Carmel-Veilleux, 2011 PRÉSENTATION DU JURY CE MÉMOIRE A ÉTÉ ÉVALUÉ PAR UN JURY COMPOSÉ DE : M Jean-François Boland, directeur de mémoire Département de génie électrique, ÉTS M Guy Bois, codirecteur Département de génie informatique et logiciel, École Polytechnique M Claude Thibeault, président du jury Département de génie électrique, ÉTS M Bruno De Kelper, membre du jury Département de génie électrique, ÉTS M Daniel Roy, examinateur externe CMC Électronique inc. IL A FAIT L’OBJET D’UNE SOUTENANCE DEVANT JURY ET PUBLIC LE 26 AOÛT 2011 À L’ÉCOLE DE TECHNOLOGIE SUPÉRIEURE REMERCIEMENTS En premier lieu, j’aimerais remercier mon directeur Jean-François Boland et mon codirecteur Guy Bois, qui m’ont donné une grande latitude dans la réalisation de mon projet de maîtrise. J’ai aussi apprécié leur support tout au long de ma maîtrise et en particulier après la naissance de mon fils Léon, arrivé au milieu de mon cheminement. J’aimerais aussi remercier l’École de technologie supérieure (ÉTS), le Fonds québécois de recherche sur la nature et les technologies (FQRNT) et le Regroupement stratégique en mi- croélectronique du Québec (ReSMiQ) pour leur support financier qui m’a permis de réaliser mes travaux. Enfin, je voudrais remercier tout particulièrement ma conjointe Melissa. Ses encouragements et son support ont été instrumentaux à la réussite de mes travaux. ADAPTATION MULTICOEUR D’UN NOYAU DE PARTITIONNEMENT ROBUSTE VERS L’ARCHITECTURE POWERPC Tennessee CARMEL-VEILLEUX RÉSUMÉ L’utilisation de plus en plus commune de l’architecture d’avionique modulaire intégrée (IMA) a permis de réduire le poids, la taille et l’encombrement des systèmes avioniques en consoli- dant l’exécution logicielle de plusieurs fonctions sur un même processeur. En même temps que l’adoption accélérée de l’architecture IMA, les microprocesseurs multicoeurs ont gagné en po- pularité en raison de la stagnation des fréquences d’horloge des processeurs monocoeurs. Les processeurs multicoeurs promettent d’augmenter l’intégration de fonctions logicielles, mais ces derniers ne sont toujours pas acceptés en avionique, pour des raisons de complexité qui affectent la sûreté. La technologie principale permettant l’utilisation de l’architecture IMA est le noyau de par- titionnement robuste. Un noyau de partitionnement robuste permet d’isoler les applications indépendantes d’un système IMA pour prévenir la propagation des fautes. Cette isolation est réalisée par partitionnement spatial et temporel robustes. Dans ce domaine, il n’existe actuel- lement aucun système d’exploitation supportant les recherches sur l’évaluation de sûreté des processeurs multicoeurs. Nous proposons dans ce mémoire d’adapter un noyau de partitionnement robuste existant, afin qu’il supporte le déploiement de partitions en parallèle sur plusieurs coeurs d’un processeur multicoeur. Nous avons analysé l’architecture d’un noyau existant, nommé XtratuM, puis nous l’avons adapté à un modèle de partitionnement robuste multicoeur. Nous avons ensuite réalisé une implémentation de cette adaptation sur un processeur PowerPC multicoeur de la famille MPC8641 de Freescale. Le prototype résultant est nommé XtratuM-PPC. Nous présentons enfin une étude de cas de l’utilisation de XtratuM-PPC avec un plan d’exécution multicoeur. Lors des phases d’adaptation et de réalisation, nous avons identifié un ensemble de problèmes techniques affectant la sûreté des noyaux de partitionnement robuste sur les processeurs multi- coeurs. Ces problèmes mettent en relief la complexité d’implémentation de ce type de système logiciel. Nos travaux nous permettent de conclure que l’adaptation d’un noyau de partitionnement ro- buste monocoeur existant à une architecture multicoeur est possible. Cependant, les problèmes de sûreté qui apparaissent avec les processeurs multicoeurs demeurent non résolus. Notre pro- totype de noyau de partitionnement robuste multicoeur est un point de départ pour la résolution de ces problèmes dans un environnement réel. Mots-clés : Partitionnement, processeurs multicoeurs, systèmes d’exploitation, systèmes em- barqués, avionique, IMA ADAPTATION MULTICOEUR D’UN NOYAU DE PARTITIONNEMENT ROBUSTE VERS L’ARCHITECTURE POWERPC Tennessee CARMEL-VEILLEUX ABSTRACT Increasing use of the integrated modular avionics (IMA) architecture has helped reduce the size, weight and power consumption of avionics systems by consolidating multiple software functions on a same processor. At the same time as the accelerated adoption rate of IMA archi- tectures, multi-core microprocessors have gained popularity due to stagnating performances of single-core offerings. Multi-core processors promise to increase software functions integra- tion, but they are still not widely accepted in avionics, for reasons of complexity which affect safety. The technological underpinning of the IMA architecture is the robust partitioning kernel. A robust partitioning kernel maintains an isolation between independant applications to prevent the propagation of faults within the system. This isolation is achieved by robust time and space partitioning. Unfortunately, there are no multicore-capable robust partitioning kernels currently available to support research in using multicore processors in IMA. In this master’s thesis, we propose to adaptat an existing robust partitioning kernel, so that it supports the deployment of partitions on several cores of a multi-core processor. To achieve this goal, we analyzed the existing XtratuM partitioning kernel and adapted it to support a multi-core robust partitioning model. We then implemented this adaptation on the Freescale MPC8641 multi-core PowerPC processor. The resulting prototype is named XtratuM-PPC. Finally, we present a case study using a multi-core execution plan on XtratuM-PPC. During the adaptation and implementation phases, we identified a set of technical problems which affect the safety of robust partitioning kernels on multi-core processors. These problems highlight the implementation complexity of implementation of multi-core robust partitioning kernels. Our work allows us to conclude that it is indeed possible to adapt a robust partitioning ker- nel from a single-core to a multi-core architecture. However, the safety-related problems that appeared due to the use of multi-core processors remain unresolved. Our multi-core robust partitioning kernel prototype is thus a starting point for the resolution of these problems in a real-world environment. Keywords: Partitionning, multicore processors, operating systems, embedded systems, avio- nics, IMA IV TABLE DES MATIÈRES Page INTRODUCTION.............................................................................. 1 CHAPITRE 1 PROBLÉMATIQUE ......................................................... 7 1.1 Problème de recherche ............................................................... 7 1.2 Objectifs............................................................................... 7 1.3 Contributions.......................................................................... 8 1.4 Hypothèses et suppositions........................................................... 9 CHAPITRE 2 REVUE DE LA LITTÉRATURE ET FONDEMENTS.................... 11 2.1 Survol ................................................................................. 11 2.2 Systèmes embarqués avioniques ..................................................... 11 2.2.1 Fonctions avioniques........................................................ 12 2.2.2 Sûreté des systèmes avioniques ............................................ 13 2.2.2.1 Fiabilité des systèmes avioniques ................................ 13 2.2.2.2 Lignes directrices de certification ................................ 13 2.2.2.3 Directive DO-178B visant le développement logiciel ........... 14 2.2.3 Architecture des systèmes embarqués avioniques ......................... 15 2.2.3.1 L’avionique fédérée ............................................... 15 2.2.3.2 L’avionique modulaire intégrée................................... 17 2.3 Partitionnement robuste .............................................................. 18 2.3.1 Définition du partitionnement robuste ..................................... 19 2.3.2 Partitionnement spatial...................................................... 20 2.3.3 Partitionnement temporel ................................................... 21 2.3.4 Le partitionnement robuste selon la norme ARINC-653 .................. 22 2.3.5 Interdépendances entre partitionnement spatial et temporel .............. 24 2.4 Méthodes de partitionnement spatial ................................................ 25 2.5 Méthodes de partitionnement temporel .............................................. 30 2.6 Choix d’un noyau de partitionnement robuste à adapter ............................ 31 2.7 Processeurs multicoeurs .............................................................. 33 CHAPITRE 3 ARCHITECTURE ET IMPLÉMENTATION DU NOYAU XTRATUM SUR PROCESSEURS LEON ............................................... 35 3.1 Survol ................................................................................. 35 3.2 Historique de XtratuM...............................................................