Compilation optimisante pour processeurs extensibles - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2012

Optimizing Compilation for Extensible Processors

Compilation optimisante pour processeurs extensibles

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.
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.
Fichier principal
Vignette du fichier
these.pdf (4.29 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00726420 , version 1 (30-08-2012)

Identifiants

  • HAL Id : tel-00726420 , version 1

Citer

Antoine Floc'H. Compilation optimisante pour processeurs extensibles. Architectures Matérielles [cs.AR]. Université Rennes 1, 2012. Français. ⟨NNT : ⟩. ⟨tel-00726420⟩
561 Consultations
608 Téléchargements

Partager

Gmail Facebook X LinkedIn More