Enjeux des Systèmes Embarqués Complexes

Enjeux des Systèmes Embarqués Complexes

La conception des systèmes embarqués, typiquement automobiles, a subi de fortes évolutions orientées vers de nouvelles fonctionnalités centrées sur le logiciel. Ces évolutions demandent des capacités de calcul de plus en plus importantes et donc des architectures matérielles pour supporter la demande grandissante en fonctionnalités. Par ailleurs le contexte industriel mène à la disparition des calculateurs d’antan, monocœurs, pour se focaliser sur des calculateurs plus complexes et puissants, multicœurs. Cette tendance provient à la fois d’une limitation technologique et d’un besoin grandissant : la façon d’augmenter les capacités de calculs par les méthodes classiques atteint ses limites et les capacités d’exécution concourante de logiciel est de plus en plus demandée dans un contexte industriel aux contraintes fortes. C’est ainsi que naît la volonté de passer sur des architectures électriques et électroniques plus centralisées via l’utilisation d’une quantité réduite d’unités de calcul, mais intégrant un plus grand nombre de fonctionnalités en leur sein ; en un mot, des processeurs multicœurs. Cette volonté implique cependant une superposition des difficultés inhérentes aux architectures matérielles plus complexes avec les contraintes de sûreté de fonctionnement du logiciel. Nous faisons donc face à des systèmes à criticité mixte exécutés sur des calculateurs aux mécanismes complexes.

Évolutions des Systèmes embarqués 

Nouveaux systèmes intelligents et connectés

Si l’on prend le cas du domaine automobile, depuis près de trente ans l’industrie n’a cessé de faire évoluer la façon de concevoir les véhicules et notamment leurs systèmes sousjacents. la transition s’est faite de modifications purement mécaniques vers des évolutions électriques, puis électroniques et de plus en plus intelligentes. Les systèmes de divertissement du consommateur ont été les premiers, dans le milieu des années 1920, à introduire des composants électroniques au sein des véhicules sous la forme de récepteurs radio à lampes ! Si l’apparition de transistors, dans les années 1950, a contribué à l’amélioration des capacités techniques des appareils et à la diffusion massive des autoradios au sein des automobiles, le concept de base a peu évolué jusqu’à la fin des années 1970. L’introduction des premiers systèmes de navigation dans les années 1980, puis des systèmes multimédia dans les années 2000 a changé la donne. Désormais, l’ancienne  façade de l’autoradio devient un écran de commande nommée head unit et concentre 70% du code du véhicule. Les voitures se sont modernisées avec l’ajout de calculateurs dédiés à des fonctions internes ou des services. Le développement des technologies de l’industrie 4.0 mène à une augmentation exponentielle du logiciel embarqué dans l’automobile au cours des 15 dernières années [Blanchet 2016], avec la présence de plus de 50 calculateurs embarqués dans certains modèles [Juliussen 2022]. Les contrôles mécaniques et autres systèmes électriques « simples » cèdent la place au monde du numérique. Les équipements électroniques et logiciels se multiplient au sein du véhicule pour l’aide à la conduite (Advanced Driver-Assistance System – ADAS) et l’ajout de services [Schmidt 2010]. De fait, le système multimédia moderne a un rôle qui va bien au-delà de celui du simple autoradio : il devient l’interaction principale entre le consommateur et le véhicule et devient un critère de choix prépondérant à l’achat.

Ainsi, du simple Système Anti-blocage des roues (ABS), on a introduit des Assistants à la Conduite tels que le Freinage d’Urgence (Emergency Braking System) ou encore le Système de Gestion de Ligne (Lane Support System) qui permet à la fois l’Avertissement de Dépassement de Ligne (Lane Departure Warning), l’Assistant de Maintien de Ligne (Lane Keeping Assist) et le Maintien de Ligne d’Urgence (Emergency Lane Keeping)… et il ne s’agit là que de 2 fonctionnalités supplémentaires ! En parallèle, la voiture devient de plus en plus automatisée, voire autonome. Elle gagne en connectivité avec la prise en compte de données extérieures possiblement avec un lien direct au cloud pour proposer une diversité de services : météo, divertissement, trafic routier, pour n’en citer que quelques exemples. Les systèmes embarqués deviennent par conséquent aussi connectés. On parle de communications car-to-car entre véhicules ou car-to infrastructure entre véhicule et infrastructures routières par exemple. Cette ouverture du système à son environnement est à double tranchant. D’une part cela offre de nouveaux horizons de fonctionnalités et optimisations de conduite, avec des possibilités d’évolutivité simplifiée. Mais d’autre part la complexité va grandissante avec les enjeux d’ingénierie que cela implique. De façon plus générale, le contexte industriel actuel fait émerger de nouvelles technologies basées sur des logiciels de plus en plus complexes et performants. Cela est rendu possible via l’émergence d’architectures matérielles toujours plus puissantes et performantes. Ces améliorations permettent le développement et la mise en application de nouvelles technologies comme les réseaux de communication sans fil haute performance ou encore l’usage d’intelligences artificielles. On retrouve ainsi un nombre grandissant de fonctionnalités directement embarquées dans l’automobile, l’avion, le train pour répondre à la fois à de nouveaux besoins fonctionnels : assistance à la conduite/pilotage, tableaux de bord, etc. et à des besoins de confort d’usage : info-divertissement, connectivité, automatisations… D’un point de vue logiciel, les mises à jour de systèmes embarqués incluent à la fois de nouvelles fonctionnalités critiques pour le bon fonctionnement du système, mais aussi l’ajout de fonctions moins critiques. Ces mises à jour de services non essentiels amplifient la multiplicité des niveaux de criticités du logiciel embarqué et donc la cohabitation entre sous-systèmes critiques et sous-systèmes non-critiques que l’on pourrait qualifier de « confort ».

Nouvelles architectures Matérielles

D’un point de vue matériel, il y a de fortes convergences sur les architectures employées dans les différents domaines. Historiquement, on retrouvait en premier lieu des calculateurs monocœurs. Cependant, les diverses évolutions d’exigences ont fait apparaître des limites en capacité de calcul. La montée en fréquence de fonctionnement atteint un seuil maximum à cause de l’augmentation de température et la consommation que cela implique. De fait les processeurs ne peuvent dépasser un certain seuil de température de fonctionnement (typiquement au-delà de 90°C) sans risque de dégradations irréversibles. Par ailleurs, l’augmentation du nombre de transistors qui composent les processeurs arrive aux abords des limites physiques : la taille de gravure du silicium arrive au même ordre de grandeur que la taille des atomes de silicium dont elle est composé. De fait, jusqu’à récemment encore, la Loi de Moore [Thompson 2006] sur la puissance des processeurs s’est vérifiée. Des premiers microprocesseurs Intel en 1971, avec quelques milliers de transistors de 10 µm, l’on est aujourd’hui à plus de 1 milliards de transistors de près de 10 nm. Mais à l’aune d’une gravure proche des 2 nm, on environne les dimensions de 10 à 15 atomes et les effets de la physique quantique entrent en jeu. Par conséquent, l’on se dirige vers les limites des technologies actuelles pour poursuivre ces améliorations de puissance. Pour ces raisons, le plus grand levier de progression disponible aujourd’hui repose sur la parallélisation des unités de calcul, et donc la notion de calculateur multicœur, qui est apparue dès les années 1950 [Smotherman 2005]. Les fondeurs s’orientent vers des processeurs où la montée en puissance est assurée par la multiplication des unités de calcul (dit « cœurs ») parallèles dans le processeur. On passe ainsi de monocœurs toujours plus petits et compacts à des duals/quadri cœurs… et l’on va aujourd’hui jusqu’à des supercalculateurs à plus de 128 cœurs.

Tous ces changements se visualisent parfaitement avec l’évolution des caractéristiques des processeurs au fil des années , tel qu’agrégé par K. Rupp [Rupp 2020]. Ces évolutions sont les bienvenues dans tous les secteurs concernés, allant du grand public dans les ordinateurs, téléphones et autres multimédias jusqu’aux applications industrielles en passant par les usages de serveurs réseaux et centres de calculs. Il existe divers types d’architectures matérielles parmi les évolutions multicœurs que l’on retrouve aujourd’hui. On pourrait de façon simple différencier entre les multicœurs classiques, les manycœurs et à l’extrême ce que l’on connaît sous le nom de GPU, les processeurs graphiques.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction
1 Enjeux des Systèmes Embarqués Complexes
1.1 Évolutions des Systèmes embarqués
1.1.1 Nouveaux systèmes intelligents et connectés
1.1.2 Nouvelles architectures Matérielles
1.2 Risques et Problématique
1.2.1 Sûreté de Fonctionnement Informatique
1.2.2 Systèmes temps-réel et Ressources partagées
1.2.3 Problématique et Objectifs
1.3 Contraintes et Hypothèses
1.3.1 Contexte industriel Automobile
1.3.2 Standards industriels et Concept de Criticité
1.3.3 Contraintes d’intégration
1.4 Grandes approches du domaine
1.4.1 Mécanismes de contrôle
1.4.2 Mécanismes Réactifs
1.5 Contribution de la thèse et objectifs
2 État de l’Art
2.1 Vue d’ensemble des systèmes à criticité mixte
2.1.1 Entre garanties et optimisation
2.1.2 Solutions Matérielles et Logicielles
2.1.3 Contrôle Statique et Dynamique
2.2 Mécanismes de contrôle réactif
2.2.1 Contrôle réactif spatial
2.2.2 Contrôle réactif temporel
2.3 Positionnement des travaux
3 Principe et architecture
3.1 Modèle basé sur des chaînes de tâches
3.1.1 Notion de Criticité
3.1.2 Modèle de Tâche et Chaînes de tâches
3.2 Mécanisme de Surveillance et de Contrôle
3.2.1 Méthode d’anticipation
3.2.2 Passage en Mode Dégradé
3.3 Architecture Logicielle
3.3.1 Task Wrapper Component (TWC)
3.3.2 Core Control Component (CCC)
3.3.3 Définition des constantes de Contrôle
3.4 Application industrielle
3.4.1 Spécification fonctionnelle
4 Protocole et démarche expérimentale
4.1 Principe Général et Objectifs
4.2 Protocole de conception d’un cas de test
4.2.1 Profil des tâches
4.2.2 Profil du cas de test et Chaîne de tâches
4.3 Protocole d’Implémentation et Calibration
4.3.1 Spécification des paramètres de Contrôle
4.3.2 Calibration du Mécanisme de Contrôle
4.4 Protocole expérimental global
5 Implémentation, Résultats et Analyse
5.1 Plateforme de développement
5.1.1 Plateforme Matérielle
5.1.2 Support Logiciel
5.2 Logiciel Applicatif
5.2.1 Benchmark MiBench
5.2.2 Charge de test
5.2.3 Implémentation de la plateforme expérimentale logicielle
5.3 Application du Protocole Expérimental à MiBench
5.3.1 Phase de Conception
5.3.2 Phase de Configuration du mécanisme
5.3.3 Phase de Validation et Analyses
Conclusion
Conclusion
Perspectives
Publications

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *