Compilation optimisée pour la robustesse/sécurité de systèmes embarqués

De Ensiwiki
Aller à : navigation, rechercher


Compilation optimisée pour la robustesse/sécurité de systèmes embarqués

Labo TIMA
Equipe AMfoRS
Encadrants Regis.Leveugle@imag.fr

Thème général

Les technologies récentes devenant de plus en plus sensibles aux perturbations, il est devenu fondamental de prendre en compte la robustesse parmi les contraintes de conception d'un système embarqué, même pour des applications jugées peu critiques. Naturellement, cette prise en compte est encore plus importante dans les domaines critiques, que ce soit pour la sûreté (par exemple, dans les domaines automobile ou transport en général) ou la sécurité (par exemple, dans le domaine des cartes à puces). Dans le cas d'une fonction implantée de manière logicielle et exécutée par un microprocesseur, le risque de disfonctionnement en cas de perturbation dépend fortement de l'utilisation des registres internes par l'application considérée. La compilation d'un programme C peut être optimisée avec des objectifs variés (performances, taille mémoire, consommation ...). Le niveau de robustesse face aux perturbations transitoires est fortement dépendant des optimisations réalisées. Des études antérieures ont montré que les options de compilation classiques (disponibles dans le compilateur Gcc) ont rarement un effet positif sur la robustesse, et peuvent même très nettement la diminuer. Il reste à définir des options ayant la capacité d'augmenter la robustesse, en réalisant un bon compromis avec les autres critères.

Compétences attendues

Compétences générales liées à la formation informatique ENSIMAG (ou Phelma/ENSIMAG pour les filières communes)

Contexte du travail

L'équipe travaille sur le développement de systèmes robustes ; cette étude doit contribuer à analyser des pistes d'amélioration de la robustesse lors de la phase de génération du logiciel embarqué.

Sujet

L'objectif de cette étude est d'expérimenter une ou des nouvelle(s) option(s) permettant d'orienter l'optimisation de la compilation vers une amélioration de la robustesse, c'est à dire la réduction du risque de disfonctionnement en cas de perturbation. Les principales étapes du travail seront : (1) étude des résultats des travaux antérieurs sur la criticité et l'impact des options de Gcc (2) proposition d'optimisations permettant de réduire un ou plusieurs critères de criticité (durée de vie des informations, dépendances fonctionnelles, impact sur des branchements) (3) programmation d'au moins une de ces options dans Gcc (4) évaluation de l'efficacité dans le cas d'un processeur Sparc v8 (en utilisant une approche développée dans l'équipe).

Résultats attendus

Le résultat attendu est une option fonctionnelle, implantée dans Gcc et permettant d'améliorer la robustesse intrinsèque d'un logiciel embarqué.