170 likes | 316 Views
Compilation optimisée pour la robustesse des systèmes embarqués Antoine Wecxsteen Encadrants : Régis Leveugle & Salma Bergaoui. Plan. Contexte – Etat de l’art Méthodologie Résultats Conclusion et perspectives. Contexte. Protéger les systèmes embarqués contre les soft errors :
E N D
Compilation optimisée pour la robustesse des systèmes embarquésAntoine WecxsteenEncadrants : Régis Leveugle & Salma Bergaoui
Plan • Contexte – Etat de l’art • Méthodologie • Résultats • Conclusion et perspectives
Contexte • Protéger les systèmes embarqués contre les soft errors : • Protection hardware déjà bien étudiée … • … mais beaucoup reste à faire au niveau logiciel. • On cible le banc de registres (mémoires protégées).
Criticité • Analyse statique du code RTL. • 4 critères complémentaires : • Durée de vie • Importance dans les conditions de branchement • Nombre de descendants • Dépendances fonctionnelles
Durée de vie • Critère qui sera développé ici.
But du TER • Etudes déjà menées pour les macro-options de GCC • But de ce TER : affiner l’étude précédente option par option ou en combinant des options.
Etat de l’art • Analyse statique validée. • Recherches similaires avec l’AVF (T. M. Jones, M.F. O’Boyle, O. Ergin, “Evaluating the Effects of Compiler Optimizations on AVF”, 2008. Macro-options peu performantes.
Méthodologie • Pour chaque programme de test, deux étapes : • On compile avec -O1et on évalue la criticité globale on obtient une base B. • On recompile avec -O1 -option. On normalise la criticité obtenue par B. Le rapport obtenu représente l’augmentation ou la diminution de criticité en ajoutant l’option. • Pour chaque option, deux métriques : • Moyenne • Variance
Résultats Pour O2 et O3 :
Résultats Pour fshedule-insns, finline-functions, foptimize-sibling-calls :
Résultats Criticité moyenne par option
Combinaison d’options • Même méthodologie. • On combine : • les 5 meilleures 2 par 2. • les 5 pires 2 par 2. • fgcse et les options associées
Résultats • Combiner cumule les effets en règle générale : • Exemple sur fexpensive-optimizations+ fschedule-insns2 finline-functions + fgcse fgcse + fgcse-las
Conclusion et perspectives • Pas d’option « miracle » mais des options à éviter ! Le programmeur doit faire un compromis entre robustesse et les autres optimisations. • Il faudrait essayer de « classifier » les programmes pour réduire l’incertitude sur l’effet d’une option. • L’étude des combinaisons est à approfondir.
gcse ? • Global common sub-expression elimination a = b * c + g; d = b * c * d; tmp = b * c; a = tmp + g; d = tmp * d;