Optimizations for faster execution of Esterel programs
| Auteur / Autrice : | Dumitru Potop-Butucaru |
| Direction : | Gérard Berry, Robert de Simone |
| Type : | Thèse de doctorat |
| Discipline(s) : | Informatique Temps Réel, Automatique et Robotique |
| Date : | Soutenance en 2002 |
| Etablissement(s) : | Paris, ENMP |
| Ecole(s) doctorale(s) : | École doctorale Sciences et technologies de l'information et de la communication (Nice ; 1992-....) |
| Partenaire(s) de recherche : | Laboratoire : Centre de mathématiques appliquées (Sophia Antipolis, Alpes-Maritimes) |
| Jury : | Examinateurs / Examinatrices : Nicolas Halbwachs, Albert Benveniste, Michael Mendler, Etienne Closse, Stephen A. Edwards |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Esterel est un langage de spécification utilisé dans le développement de systèmes embarqués. Sa sémantique formelle permet des traductions en automates explicites ou en circuits digitaux synchrones, donnant lieu à deux implantations logicielles dont les propriétés essentielles sont héritées du modèle correspondant. Ces méthodes de compilation sont donc sémantiquement complètes, mais en contrepartie n’arrivent pas à générer du code efficace (à la fois compact et rapide) pour des modèles de taille conséquente. Pour cette raison, de nouvelles techniques ont été proposées récemment pour la génération de code C efficace, consistant essentiellement dans la simulation directe des opérations réactives du programme Esterel. Ces nouvelles techniques doivent être conciliées maintenant avec les aspects spécifiques à la sémantique d’Esterel qui sont la causalité constructive et la cyclicité. Elles doivent aussi être munies de techniques adaptées d’analyse et d’optimisation. Pour atteindre ces objectifs, nous proposons une nouvelle technique de compilation dont la puissance découle de l’utilisation d’un nouveau format intermédiaire, nommé GRC. La représentation GRC d’un programme Esterel se compose d’une représentation de l’état hiérarchique du programme et d’un graphe déstructuré de flot de contrôle. Les deux composants, séparés au niveau syntaxique, sont sémantiquement interdépendants. Le nouveau format permet la représentation de tout programme Esterel. Il est un bon support pour des algorithmes d’optimisation efficaces à ce niveau et pour des algorithmes d’implantation (ordonnancement et encodage) efficaces. Notre travail apporte les contributions suivantes : - une définition précise de la sémantique du langage Esterel avec données ; - la définition du format GRC et de la correspondance formelle entre le code GRC et les circuits générés à partir d’Esterel ; - la caractérisation, au niveau du code GRC, de la classe de programmes Esterel générant des circuits cycliques ; - le développement d’un compilateur Esterel-C qui utilise GRC comme unique format intermédiaire. Le prototype traite actuellement les programmes Esterel dont la représentation GRC est acyclique. Le code C est obtenu dans ces cas par une planification statique du graphe de flot de contrôle GRC. Le compilateur implémente un bon nombre de techniques d’optimisation, en partie originales. Une comparaison entre notre prototype et les autres compilateurs montre l’intérêt de l’approche.