Conception et programmation efficace de systèmes multiprocesseurs sur puce
Auteur / Autrice : | Romain Brillu |
Direction : | Sébastien Pillement, Fabrice Lemonnier, Philippe Millet |
Type : | Thèse de doctorat |
Discipline(s) : | Electronique, Systèmes embarqués |
Date : | Soutenance en 2014 |
Etablissement(s) : | Nantes |
Partenaire(s) de recherche : | Autre partenaire : École polytechnique universitaire de Nantes Université |
Jury : | Président / Présidente : Alain Darte |
Examinateurs / Examinatrices : Alain Darte, Frédéric Pétrot, Gilles Sassatelli | |
Rapporteur / Rapporteuse : Frédéric Pétrot, Gilles Sassatelli |
Mots clés
Résumé
Les applications embarquées incorporent de plus en plus de fonctionnalités impliquant différents types de traitement à réaliser. L'impact majeur de cette demande est l'évolution croissante des systèmes embarqués que cela soit en terme de performances et de capacité mémoire. Ces systèmes doivent en effet trouver un compromis entre leurs capacités (puissance de calcul, dynamicité) et les contraintes du domaine d'application. Face à cette évolution les architectures MPSoC apparaissent actuellement comme les principaux promoteurs de la révolution industrielle des semiconducteurs. Cependant, la conception d'une architecture « MPSoC » faible consommation et supportant les performances requises, n'est pas aisée. Cet équilibre dépend en effet de nombreux paramètres tels que le nombre de coeurs de calcul, l'enveloppe énergétique globale, le type de réseau d'interconnexion, l'architecture de la hiérarchie mémoire, le déploiement de l'application sur le système. Tous ces défis durant la conception des architectures MPSoC mettent en lumière le besoin de processus automatisé aidant l'utilisateur à définir et à programmer ces architectures. Dans le cadre de cette thèse, notre contribution est la définition d'une méthodologie d'exploration d'espace de conception. Cette méthodologie a pour but de définir à la fois une architecture matérielle et son code binaire exécutable à partir de trois entrées: (1) Le code C séquentiel d'une application, (2) Une librairie d'architectures, (3) Un fichier de contraintes. De plus, étant donné que nous souhaitons explorer et générer des architectures matérielles, notre seconde contribution est la définition des deux modules matériels. Le premier module matériel défini une unité de management mémoire servant à facilter la programmation des architectures MPSoC et permettant d'augmenter leurs performances. Le second module matériel est l'''accelerator interface'' qui est utilisé pour abstraire l'hétérogénéité des plateformes MPSoC, afin de faciliter leur conception et leur programmation.