Thèse soutenue

Conception et programmation efficace de systèmes multiprocesseurs sur puce

FR  |  
EN
Auteur / Autrice : Romain Brillu
Direction : Sébastien PillementFabrice LemonnierPhilippe 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

Résumé

FR  |  
EN

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.