Présentation

Article

1 - D'UNE À PLUSIEURS INSTRUCTIONS PAR CYCLE

2 - PRINCIPES DE L'EXÉCUTION VLIW

3 - RÔLE DU COMPILATEUR

4 - EXEMPLES DE PROCESSEURS VLIW

5 - CONCLUSION

Article de référence | Réf : H1012 v1

Rôle du compilateur
Processeurs VLIW

Auteur(s) : Daniel ETIEMBLE

Relu et validé le 08 mars 2022

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

RÉSUMÉ

Les processeurs VLIW s'appuient sur le compilateur pour utiliser le parallélisme entre les instructions d'un code séquentiel et lancer l'exécution de plusieurs instructions indépendantes à chaque cycle d'horloge. Cet article décrit trois exemples. Les processeurs successifs de la famille TMS320Cx de Texas Instruments, les plus proches de l'approche VLIW pure. Le processeur Tiger Sharc d'Analog Device ayant des caractéristiques VLIW et superscalaires. L'architecture EPIC implantée dans les processeurs Itanium distingue les instructions parallèles définies par le compilateur et les instructions VLIW, et décide des instructions à exécuter à chaque cycle d'horloge. Les processeurs VLIW sont utilisés dans les processeurs de traitement du signal (DSP), ou dans les multi-coeurs et «many core» pour la faible consommation.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

  • Daniel ETIEMBLE : Ingénieur INSA Lyon - Professeur émérite à l'université Paris Sud

INTRODUCTION

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. Conçus par Intel et HP pour supplanter les processeurs superscalaires à exécution non ordonnée, EPIC et les processeurs Itanium n'ont pu réaliser cet objectif et sont maintenant abandonnés par Intel.

L'approche VLIW connaît un grand succès avec les processeurs DSP. Elle est aussi beaucoup utilisée pour les coprocesseurs de traitement du signal dans les systèmes sur puce. Elle est également une solution viable pour les architectures multi-cœurs ou « many-core » à faible consommation. Elle est généralement supplantée par les processeurs superscalaires exécutant les jeux d'instructions IA-32, Intel64 ou ARM pour les processeurs d'usage général.

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h1012


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais English

3. Rôle du compilateur

Comme indiqué précédemment, le compilateur est responsable de la génération des instructions longues en fonction des différents slots disponibles. Les instructions VLIW peuvent avoir jusqu'à 8 slots alors que la longueur des blocs de base dans les programmes, c'est-à-dire de la suite des instructions en séquence suivies d'un branchement, varie en moyenne entre 4 à 5 pour les programmes entiers et 8 à 10 pour les programmes flottants. Cela signifie qu'un bloc de base nécessite une instruction ou un très petit nombre d'instructions VLIW.

3.1 Ordonnancement de trace

Le compilateur doit d'abord ordonnancer les blocs de base. Pour optimiser plus, le compilateur doit ordonnancer les instructions à travers plusieurs blocs de base pour constituer des super-blocs. La technique est appelée ordonnancement de traces. Elle est illustrée par la figure 13. La suite des blocs de base la plus souvent exécutée en séquence est privilégiée : c'est la trace, indiquée en grisé (partie gauche de la figure). Idéalement, aucun chemin ne doit entrer dans la trace ou sortir de la trace. Des blocs de base se trouvent donc déconnectés de la trace (partie centrale de la figure). Il faut alors modifier le code de ces blocs de base pour que leur sortie soit connectée à l'entrée de la trace, ou que leur entrée soit connectée à la sortie de la trace : c'est partiellement fait dans la partie droite de la figure 13.

La figure 14 présente un exemple de modification de code pour un bloc sortant de la trace. Le test x > 0 vérifié fait sortir de la trace en son milieu. En positionnant le test en début de trace, et en dupliquant l'instruction 1 dans le chemin hors de la trace, il y a exécution séquentielle de l'un ou l'autre des chemins depuis l'entrée de la trace. La figure 15 montre l'exemple dual. L'instruction 4 entre dans la trace. En permutant les instructions 2 et 3 dans la trace, et en dupliquant l'instruction 3 hors de la trace, les deux chemins se rejoignent en fin de trace. L'ordonnancement de trace implique donc l'ajout d'instructions, mais en permettant une exécution plus efficace des chemins les plus fréquents.

HAUT DE PAGE

3.2 Contraintes liées...

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Rôle du compilateur
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - CHARLESWORTH (A.E.) -   An approach to scientific array processing: the architectural design of the AP-120B/FPS-164 family.  -  Computer, sept. 1981.

  • (2) - FISHER (J.A.) -   Very long instruction word architectures and the ELI-512.  -  Proceeding of the 10th annual international symposium on Computer architecture (ISCA '83), p. 140-150 (1983).

  • (3) - FISHER (J.A.) -   Trace scheduling : a technique for global microcode compaction.  -  IEEE Transactions on Computers, c-30(7), p. 478-490, juil. 1981.

  • (4) - BESK (G.R.), YEN (D.W.L.), ANDERSON (T.L.) -   The Cydra 5 minisupercomputer: architecture and implementation.  -  The Journal of Supercomputing, 7(1/2) (1993).

  • (5) - COLWELL (R.P.), NIX (R.P.), O'DONNELL (J.J.), PAPWORTH (D.B.), RODMAN (P.K.) -   A VLIW architecture for a trace scheduling compiler.  -  IEEE Transactions on Computers, vol. 37, no 8, p. 967-979, août 1988.

  • ...

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS