Le projet proposé traite de la problématique de la mise en œuvre, d’un point de vue de l’ordonnancement temps réel, d’architectures multicœur. Il se situe dans le domaine des systèmes embarqués temps réel, à contraintes strictes. De plus, le domaine d’application visé est celui des calculateurs embarqués dans les véhicules, domaine important de par les multiples contraintes qu’il apporte (standards tel AUTOSAR, conditions de fonctionnement, fiabilité des circuits…). L’arrivée de ces nouvelles architectures dans des composants tels que les microcontrôleurs ouvrent de nouvelles perspectives : augmentation considérable de la puissance de traitement, intérêt économique évident car ouvrant la voie à la réduction du nombre de calculateurs embarqués. Cependant, elle amène aussi de nombreux problèmes scientifiques.
Le projet RESPECTED propose un ensemble de travaux formant un continuum depuis la théorie de l’ordonnancement temps réel multiprocesseur jusqu’aux services du système d’exploitation temps réel implémentant ces algorithmes. Schématiquement nous proposons :
- la sélection et l’adaptation d’algorithmes fondamentaux d’ordonnancement avec comme critère premier l’efficacité de l’implémentation ;
- à partir des algorithmes fondamentaux, la prise en compte de besoins nouveaux tels que la maîtrise des aspects thermiques des processeurs (échauffement) et le partage efficace de ressources en contexte multicœur ;
- la réalisation de simulateurs nécessaires à l’analyse de performance des algorithmes ainsi qu’à la validation des applications les utilisant ;
- la réalisation du support d’exécution temps réel prenant en compte ces algorithmes.
Les produits logiciels résultants (simulateurs, système d’exploitation temps réel) seront des extensions de produits existants chez les partenaires et déjà mis à disposition de la communauté sous forme de logiciel libre.
Concernant l’ordonnancement temps réel fondamental nous avons comme objectifs de produire des résultats dans les deux approches scientifiques actuellement suivies : le partitionnement et l’ordonnancement global. De très gros efforts restent encore à développer pour les confronter avec la réalité et travailler au rapprochement entre modèles et implémentation. C’est l’objectif que nous nous donnerons dans ce projet. Il ne s’agit pas a priori d’opposer partitionnement et ordonnancement global, ou de privilégier d’emblée l’un des deux : nous travaillerons dans les deux axes. En effet, d’un côté les spécifications actuelles pour les systèmes multicœur dans le domaine de l’automobile étendent la version monocœur et tendent naturellement vers du partitionnement. De l’autre, les architectures multiprocesseur symétriques sont les cibles idéales pour un ordonnancement global. Notre intention est donc d’en explorer la capacité d’intégration au sein d’un support d’exécution multiprocesseur, ainsi que l’efficacité en termes de surcoûts temporels induits. Le verrou essentiel est la difficulté d’implémenter efficacement les algorithmes globaux issus de la technique PFair d’ordonnancement fluide.
Par ailleurs, nous avons comme autre objectif de prendre en compte une problématique nouvelle : celle des cycles thermiques des processeurs qui, s’ils sont pénalisants, peuvent réduire considérablement la fiabilité d’un système. C’est au travers de l’ordonnancement que ce problème sera abordé. Le principal verrou scientifique est l’évaluation des températures des cœurs, à partir de l’évaluation, pour un algorithme donné, du comportement temporel et énergétique de la configuration, et de l’association avec un modèle de dissipation thermique de l’énergie consommée. Nous serons confrontés également à des problèmes techniques de mesure permettant de valider les modèles.
Enfin, le problème du partage de ressources est actuellement réglé en monocœur par l’utilisation de protocoles comme IPCP (dans le contexte automobile), mais la proposition pour une architecture multicœur s’appuie sur l’utilisation de spin-locks. Notre objectif est d’évaluer l'adaptation d'algorithmes d'ordonnancement multiprocesseur existants à un partage de données à base de mémoire transactionnelle, avec comme critère que le rajout de la dimension du partage des données à base de transactions conserve l'efficacité des algorithmes considérés. Si cela n’est pas le cas l’objectif sera alors de proposer de nouveaux algorithmes.
Concernant les simulateurs et le support d’exécution nos objectifs sont l’extension et l’adaptation à cette nouvelle problématique de logiciels Open source déjà développés par un partenaire. Nous disposons d’un simulateur fonctionnel de tâches temps réel STORM, conçu à la base pour une architecture multiprocesseur et d’un simulateur à grain fin Harmless, capable d’opérer soit en simulateur de jeu d’instruction soit en simulateur au cycle près. Les verrous techniques concernent la modélisation efficace du comportement des mémoires caches et des comportements thermiques des processeurs. Pour le support d’exécution nous utiliserons comme base de départ l’OS temps réel Trampoline, pour une migration vers le support d’architectures multicœur. Les verrous techniques concernent les bons choix techniques pour les structures de données et algorithmes enfouis.
Programme de travail
Le programme scientifique de travail est logiquement organisé autour de trois tâches principales concernant respectivement :
- l’étude de l’implémentation efficace des algorithmes d’ordonnancement multiprocesseur ;
- l’étude des simulateurs, indispensables pour l’analyse de performance des algorithmes sur divers aspects (temporels et thermiques) ;
- la réalisation du système d’exploitation temps réel en version multicœur implémentant les algorithmes retenus.
Ces trois tâches sont complétées par une tâche initiale de spécification des exigences liées au contexte, à la fois sur les aspects matériels et logiciels, ainsi que par une tâche de réalisation d’un démonstrateur utilisant l’ensemble des résultats produits.
Les retombées scientifiques concernent :
1- des implémentations efficaces d’algorithmes d’ordonnancement temps réel pour des architectures multiprocesseur avec les approches partitionnées et globales ;
2- la maîtrise des aspects thermiques des processeurs augmentant ainsi la fiabilité des systèmes ;
3- la gestion efficace dans le contexte multicœur du partage de données.
Les retombées techniques sont la mise à disposition de la communauté, sous la forme de logiciels libres, d’un ensemble d’outils contribuant au développement des applications temps réel.
Les retombées économiques sont l’appropriation de nouveaux savoir-faire par le partenaire industriel See4sys très investi dans les implémentations du système d’exploitation et du démonstrateur sur un problème réel.
See4sys étant « premium member » AUTOSAR il pourra être porteur des avancées du projet au niveau de la standardisation.