Principe du pipeline
Processeurs : exécution pipeline des instructions
H1004 v1 Article de référence

Principe du pipeline
Processeurs : exécution pipeline des instructions

Auteur(s) : Daniel ETIEMBLE, François ANCEAU

Relu et validé le 04 mars 2022 | Read in English

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter l'extrait gratuit

Déjà abonné ?

Présentation

1 - Principe du pipeline

2 - Exécution pipeline des instructions simples

3 - Problèmes liés aux instructions à opérations multicycles

4 - Conclusion

Sommaire

Présentation

RÉSUMÉ

Cet article présente les caractéristiques essentielles de l'exécution pipeline des instructions dans les processeurs. Avec les exemples des pipelines du MIPS 2000 et de l'Intel i486, il montre la décomposition des instructions en étapes élémentaires et leur exécution par le matériel. Il présente le traitement des dépendances de données et de contrôle pour les instructions simples, mais aussi pour celles dont la partie calcul nécessite plusieurs cycles d'horloge. Les techniques matérielles de contrôle des dépendances,et les techniques logicielles pour supprimer ou réduire les suspensions, sont présentées, ainsi que les problèmes des interruptions et de terminaison non ordonnée des instructions.

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 à l'Université Paris Sud

  • François ANCEAU : Ingénieur INPG Grenoble - Professeur émérite au CNAM

INTRODUCTION

L'objectif de cet article est de présenter les caractéristiques essentielles de l'exécution pipeline des instructions dans les processeurs, qui est la technique la plus simple d'amélioration des performances employée depuis la fin des années 1950 en permettant qu'une nouvelle instruction commence son exécution alors que les précédentes sont encore en cours d'exécution. Ce recouvrement dans le temps de l'exécution de plusieurs instructions a évolué au cours du temps : les machines anciennes comme l'IBM 360/91 et les processeurs d'Intel jusqu'au 80 386 utilisaient un pipeline « lâche ». Avec l'arrivée de la technologie RISC dans les années 1980, les pipelines des processeurs sont devenus « serrés », les notions « lâche » et « serré » étant précisées dans l'article.

Le traitement pipeline des instructions simples, celles dont les opérations dans l'unité de calcul sont exécutées en un cycle d'horloge, est examiné en détail. Le pipeline du MIPS R2000 est pris comme exemple, avec la manière dont les instructions sont décomposées en étapes élémentaires et exécutées par le matériel. Le traitement des dépendances de données et des dépendances de contrôle est explicité, avec notamment le problème des branchements et des interruptions. Le pipeline d'un processeur CISC, l'Intel i486, est également abordé.

Les opérations de multiplication et de division sur les données entières et toutes les opérations de calcul flottant ne peuvent s'exécuter dans la durée du cycle d'horloge des opérations arithmétiques et logiques simples. Cette situation complique le traitement pipeline des instructions en introduisant des dépendances de données plus complexes : vraies dépendances, antidépendances et dépendances de sortie. Les techniques de contrôles des vraies dépendances sont présentées. Si elles garantissent un fonctionnement correct, elles peuvent introduire des suspensions. Des techniques logicielles, comme le déroulage de boucle ou le pipeline logiciel, permettent de réduire ou supprimer ces suspensions. Les antidépendances et les dépendances de sortie peuvent être supprimées par la technique de renommage de registres. Le problème de la terminaison non ordonnée des instructions est également abordé.

Pour améliorer les performances, le pipeline a été la technique privilégiée pour les processeurs haut de gamme jusqu'au milieu des années 1990. Il reste la technique privilégiée pour les processeurs des applications enfouies et embarquées lorsque le compromis performance – surface silicium – énergie est plus important que la seule performance. Il n'a montré sa pleine potentialité qu'avec l'émergence de nouvelles techniques, comme l'exécution « data flow » de code séquentiel classique ou l'exécution VLIW qui permettent de mieux exploiter le parallélisme d'instructions existant dans les codes séquentiels classiques.

Logo Techniques de l'Ingenieur

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

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


DOI (Digital Object Identifier)

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

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

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

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

1. Principe du pipeline

Dans le dossier Introduction à l'architecture des ordinateurs [H 1 000], l'exécution des instructions a été présentée sur une petite machine comparable à celle des ordinateurs des années 1960 ou des premiers microprocesseurs des années 1970. Dans ces processeurs, l'exécution de chaque instruction est décomposée en étapes élémentaires, qui sont fondamentalement :

  • la lecture de l'instruction ;

  • le décodage ;

  • la lecture des opérandes ;

  • l'exécution ;

  • le rangement du résultat.

Les instructions s'exécutent l'une après l'autre, c'est-à-dire qu'une instruction commence son exécution après la fin de l'exécution de l'instruction précédente. Dans cet article, nous présentons une première technique d'accélération de l'exécution des instructions, qui est apparue dès la fin des années 1950, qui est encore largement utilisée dans la plupart des processeurs pour les applications enfouies et embarquées. Cette technique est basée sur le principe du pipeline, qui est traditionnellement illustré par l'exemple des chaînes de montage automobiles (figure 1) telles qu'elles existent depuis leur apparition en 1913 pour la Ford Modèle T. Le principe est connu : les automobiles avancent sur la chaîne de montage.

À chaque étape :

  • tous les ouvriers effectuent leur tâche propre ;

  • toutes les tâches durent le même temps ;

  • une voiture est achevée à la fin de la chaîne ;

  • une voiture est commencée au début de la chaîne.

Le temps de fabrication d'une automobile est très supérieur à la cadence de sortie de la chaîne.

Le fonctionnement en pipeline de l'exécution des instructions est très ancien. La première machine à utiliser ce principe fut l'IBM Stretch, plus connue sous le nom d'IBM 7030 pour laquelle des détails de réalisation...

Logo Techniques de l'Ingenieur

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

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Principe du pipeline

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

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

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - BLOCH (E.) -   The engineering design of the stretch computer  -  . Proceedings of the Eastern Joint Computer Conference (1959).

  • (2) - ANDERSON (D.W.), SPARACIO (F.J.), TOMASULO (R.M.) -   The IBM system/360 model 91 : machine philosophy and instruction handling  -  . IBM Journal Research and Development, p. 8-24, janv. 1967.

  • (3) - FLYNN (M.J.) -   Some reflections on computer engineering : 30 years after the IBM system 360 model 91.  -  Paper following the invited talk to IEEE Micro (1997).

  • (4) - CRAWFORD (J.) -   The execution pipeline of the Intel i486TM CPU.  -  Proceedings Compcon Spring, p. 254-258 (1990).

  • (5) - HENNESSY (J.L.), PATTERSON (D.A.) -   Architecture des ordinateurs – Une approche quantitative.  -  3e édition, Vuibert Informatique (2003).

  • (6) - TOMATUSO (R.M.) -   An efficient algorithm for exploiting...

Logo Techniques de l'Ingenieur

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

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

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

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Ressources documentaires

Introduction à l'architecture des ordinateurs

L'article commence par une brève histoire des machines informatiques et introduit ensuite les principes ...

Hiérarchie mémoire : les caches

Entre le ou les processeurs d'un ordinateur et les organes de stockage existe une hiérarchie de ...

Processeurs multithreads et multicœurs

Les processeurs multithreads et les processeurs multicœurs permettent l’utilisation des trois types de ...

Évolution de l'architecture des ordinateurs

Cet article présente l’évolution de l’architecture des ordinateurs, précisant ainsi la place et le rôle ...