Cet article examine les caractéristiques principales des processeurs à mots d'instructions très longs, généralement appelés VLIW (
Very Long Instruction Word
). Un processeur VLIW utilise le parallélisme d'instructions existant dans un programme séquentiel pour démarrer à chaque cycle d'horloge l'exécution de plusieurs instructions élémentaires qui constituent le mot d'instruction très long. Contrairement aux processeurs superscalaires pour lesquels le matériel détermine dynamiquement les instructions exécutables simultanément, les processeurs VLIW s'appuient totalement ou principalement sur le compilateur pour constituer le mot d'instruction très long. Cette caractéristique permet de comprendre pourquoi ces processeurs ont leurs meilleures performances lorsque le comportement du programme est connu à la compilation, ce qui est souvent le cas pour le traitement du signal et des images (DSP).
Après un bref historique des processeurs VLIW, l'article présente les principes de l'exécution VLIW. Un processeur « pédagogique », proche des caractéristiques des VLIW existants, permet d'illustrer les caractéristiques essentielles facilitant l'utilisation du pipeline logiciel pour exécuter à chaque cycle d'horloge des instructions élémentaires appartenant à des itérations différentes d'une boucle de calcul. La manière de rendre conditionnelle l'exécution des instructions élémentaires et la manière de traiter les instructions de calcul multi-cycles, sans et avec « registres tournants », sont détaillées.
Trois exemples de processeurs VLIW sont ensuite présentés, de l'approche VLIW pure où le compilateur contrôle toutes les dépendances à des approches mêlant les caractéristiques VLIW avec un contrôle matériel des dépendances. Le premier exemple est la famille TMS320C6x des processeurs de traitement du signal de Texas Instruments, avec successivement C62 et C67, C64, C64+ et C674, puis C66x. Ces processeurs sont très utilisés comme processeurs DSP avec de très bonnes performances et une consommation réduite. Le second exemple est le TigerSharc qui combine des caractéristiques VLIW et superscalaires. Concurrent des TMS320C6x au début des années 2000, ce processeur n'a pas eu de successeur depuis. Le troisième exemple est celui de l'architecture EPIC implantée dans les processeurs Itanium. Cette architecture distingue les instructions exécutables en parallèle définies par le compilateur et l'instruction longue de 128 bits (3 instructions élémentaires). Le matériel décide quelles instructions parallèles peuvent effectivement démarrer à chaque cycle. Les caractéristiques VLIW (instructions prédiquées, registres tournants...) et les caractéristiques faisant intervenir le matériel (prédiction de branchement, accès mémoire anticipés) sont détaillées....