Compilation optimisante pour processeurs extensibles

par Antoine Floc'h

Thèse de doctorat en Informatique

Sous la direction de Christophe Wolinski et de François Charot.

Soutenue en 2012

à Rennes 1 .


  • Résumé

    Les processeurs à jeu d'instructions spécifiques (ASIP) constituent un compromis entre les performances d'un circuit matériel dédié et la flexibilité d'un processeur programmable. Ces processeurs spécialisés peuvent être composés d'un processeur généraliste dont le jeu d'instructions est étendu par des instructions spécifiques à une ou plusieurs applications et qui sont exécutées sur une extension matérielle. On parle alors de processeurs extensibles. Si le coût de conception et de vérification de telles architectures est considérablement réduit en comparaison à une conception complète, la complexité est en partie reportée sur l'étape de compilation. En effet, le jeu d'instructions d'un processeur extensible est à la fois une entrée et une sortie du processus de compilation. Cette thèse propose plusieurs contributions pour guider le processus de conception de telles architectures à travers des techniques d'optimisations adaptées aux processeurs extensibles. La première de ces contributions consiste à sélectionner et à ordonnancer les instructions spécialisées VLIW en résolvant un unique problème d'optimisation de programmation par contraintes (CP). D'autre part, nous proposons une technique originale qui traite de l'interaction entre l'optimisation de code et l'extension de jeu d'instructions. Le principe est de transformer automatiquement le code original des nids de boucles d'un programme (à l'aide du modèle polyédrique) afin de sélectionner des instructions spécialisées vectorisables et dont les données temporaires, produites lors d'une itération de boucle, sont mémorisées sur l'extension matérielle du processeur.


  • Résumé

    Application specific instruction set processors (ASIP) are a well known compromise between the high performance of a dedicated hardware and the flexibility of a programmable processor. These specialized processors may be composed of a general purpose processor whose instruction set is extended by instructions that are specific to one or few applications. Such specific instructions will be executed on a dedicated hardware extension that will reduce their execution times. If the design and verification cost of an extensible processor is reduced compared to a from scratch hardware design, the complexity is partly transferred to the compilation step. Indeed, the instruction set of an extensible processor is both an input and an output of the compilation process. This singularity implies a questioning of the compilation itself and usually place the designer at the heart of an iterative and exploration based design process. This thesis proposes several contributions to guide the design process of an extensible processor through automated optimization techniques. The first of these contributions is to select and schedule custom VLIW instructions by solving a single constraint programming (CP) optimization problem. Furthermore, we propose a novel technique that addresses the interactions between code optimization and instruction set extesion. The idea is to automatically transform the original loop nests of program (using the polyhedral model) to select specialized and vectorisables instructions. These instructions may use local memories of the hardware extension to store intermediates data produced at a given loop iteration.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 1 vol. (IV-236 p.)
  • Notes : Publication autorisée par le jury
  • Annexes : Bibliogr. p. [223]-236

Où se trouve cette thèse ?

  • Bibliothèque : Université de Rennes I. Service commun de la documentation. Section sciences et philosophie.
  • Disponible pour le PEB
  • Cote : TA RENNES 2012/39
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.