<  Retour au portail Polytechnique Montréal

Performance Assessment and Improvement for Cache Predictability in Multi-Core Based Avionic Systems

Jean-Baptiste Lefoul

Mémoire de maîtrise (2019)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (1MB)
Afficher le résumé
Cacher le résumé

Résumé

Les systèmes avioniques sont parmi les systèmes les plus critiques. Une erreur d'exécution d'un de ces systèmes peut avoir des conséquences assez catastrophiques jusqu'à un accident mortel. Afin de contrôler au maximum l'exécution de ces systèmes et d'utiliser des technologies établies, ces derniers sont en grande majorité des systèmes munis d'un processeur à un seul coeur. Il y a donc un seul flot d'exécution, ce qui permet d'avoir plus de déterminisme que sur un système multicoeur avec plusieurs flots d'exécution en parallèle. Cependant, les fournisseurs de processeurs délaissent les systèmes single-core afin de se concentrer sur les systèmes multicoeurs qui sont plus demandés. Les concepteurs de systèmes avioniques doivent donc s'adapter à ce changement d'offre. La question qui se pose est donc la suivante: comment limiter au maximum la baisse du déterminisme qu'apportent les systèmes multicoeurs dans le cadre des systèmes avioniques? Dans le cadre de ce projet de recherche, nous nous sommes intéressés aux systèmes avioniques partitionnés et en particulier aux systèmes d'exploitation temps-réels qui gèrent les ressources et l'exécution des applications du système. La revue de littérature nous a montré plusieurs impacts que peuvent avoir les systèmes multicoeurs sur le déterminisme de l'exécution des applications. L'influence d'une application sur l'exécution d'une autre est communément appelée interférence. Après avoir passé en revue les causes connues de ces interférences, nous nous sommes concentrés sur les mémoires caches, qui exercent la plus grosse influence sur le déterminisme des systèmes en termes de temps d'exécution. Une des solutions existantes pour réduire les interférences dans les mémoires cache est de verrouiller des données dans le cache afin qu'elles ne soient pas évinçables, cette technologie est connue sous le nom de "cache locking". La question qui se pose est donc de comment choisir les données à verrouiller dans le cache. Nous proposons donc un framework capable de profiler les accès mémoire lors de l'exécution d'un système. Le framework est également muni d'un simulateur de cache, ce qui nous permet de prévoir le comportement de la mémoire cache suivant les configurations qu'on lui donne. Un algorithme peut donc tirer profit des informations qu'offre le framework. Nous avons validé notre approche en implémentant dans notre framework un algorithme de sélection d'adresses à verrouiller dans le cache. Nous obtenons, comme prévu, une réduction de fautes de cache dans les caches privés et une hausse de déterminisme en temps d'exécution. Cela met bien en évidence que notre solution contribue à la réduction d'interférences au niveau du cache (plus de 25%).

Abstract

Avionics are highly regulated systems and must be deterministic due to their criticality. There is no place for error, a simple error in the system can have catastrophic consequences. Singlecore systems have a single processor running, hence only one execution flow, making them easily predictable in execution, this is why avionics are mainly single-core systems today. However, processor manufacturers are letting down single-core processors to focus only on multicore processors manufacturing. Avionics systems are thus compelled to transition from single-core to multicore architectures. Mechanisms to mitigate the loss of determinism when using multicore architectures must be developed to take profit from the parallelism offered by them. We focus this thesis on partitioned avionics systems and more precisely Real-Time Operating Systems (RTOS) in avionics. We can find in the literature sources of interference between two applications in multicore systems leading to execution predictability loss. After studying these interferences, we decided to focus on cache-related interferences, since they are the ones with the greatest impact on execution predictability of the system. One solution to mitigate these types of interferences is cache locking: lock a data in the cache making it unevictable. To use this method, we must choose which data to lock in the cache, a problem for which this thesis proposes a solution. We propose a framework that allows to analyze application behavior thanks to execution traces. It also gives cache information through an integrated cache simulator. To validate our framework, we integrated a cache locking selection algorithm in it. The algorithm computes a list of data to lock in the cache and assesses its performance using the framework's cache simulator. When running tests through our framework, we indeed have an improvement in execution predictability and a reduction of interference (over 25%) after locking data in the cache.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Gabriela Nicolescu
URL de PolyPublie: https://publications.polymtl.ca/3965/
Université/École: Polytechnique Montréal
Date du dépôt: 11 oct. 2019 10:23
Dernière modification: 05 avr. 2024 17:19
Citer en APA 7: Lefoul, J.-B. (2019). Performance Assessment and Improvement for Cache Predictability in Multi-Core Based Avionic Systems [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/3965/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document