Présentation

Article

1 - PRINCIPE DU PIPELINE

2 - EXÉCUTION PIPELINE DES INSTRUCTIONS SIMPLES

3 - PROBLÈMES LIÉS AUX INSTRUCTIONS À OPÉRATIONS MULTICYCLES

4 - CONCLUSION

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

Conclusion
Processeurs : exécution pipeline des instructions

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

Relu et validé le 04 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 En anglais

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

ABSTRACT

Processors : pipelined execution of instructions

This article presents the essential characteristics of the pipelined execution of instructions in processors. Through the MIPS 2000 and Intel i486 pipeline examples, it illustrates how instructions are broken down into basic stages and executed by the hardware. It presents the treatment of data dependencies and control for simple instructions, but also for those whose calculation requires a long period of time. Hardware techniques for the control of dependencies, and software techniques to eliminate or reduce suspensions are presented, as well as the issue of undesired interruption and termination of instructions.

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.

Cet article est réservé aux abonnés.
Il vous reste 93% à 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.

KEYWORDS

pipeline   |   superpipeline   |   register renaming

DOI (Digital Object Identifier)

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


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 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 En anglais

4. Conclusion

Nous avons examiné les caractéristiques essentielles des pipelines utilisés dans les processeurs scalaires qui commencent l'exécution d'une nouvelle instruction à chaque cycle d'horloge. Si le principe du pipeline est simple, les instructions de contrôle (sauts, branchements, appels et retour de procédure) rompent l'exécution en séquence des instructions, qui est la base même du fonctionnement pipeline. De même, le fait que les opérations effectuées par certaines instructions nécessitent plusieurs cycles d'horloge introduit le problème fondamental des dépendances de données. Si les dépendances de nom peuvent être supprimées par des techniques matérielles, les vraies dépendances de type production consommateur doivent être contrôlées, par matériel ou par logiciel, et des techniques logicielles comme le déroulage de boucle ou le pipeline logiciel sont nécessaires pour que les dépendances ne se traduisent pas par des suspensions du pipeline.

Jusqu'au milieu des années 2000 pour les processeurs d'usage général, et encore en 2010 pour les processeurs embarqués haut de gamme, la tendance a été d'augmenter le nombre d'étages du pipeline pour améliorer la performance en augmentant la fréquence d'horloge. Pour l'ensemble des processeurs, les problèmes énergétiques et de dissipation de la chaleur ont conduit à stopper la progression exponentielle des fréquences d'horloge, qui avait été de 25 % par an dans les deux décennies précédentes. L'allongement des pipelines n'est donc plus à l'ordre du jour.

Le fonctionnement pipeline, comme principe d'amélioration des performances des processeurs, est une technique fondamentale, qui a été la technique privilégiée pour les processeurs haut de gamme jusqu'au milieu des années 1990. Elle reste la technique privilégiée pour les processeurs des applications enfouies et embarqués lorsque le compromis performance – surface silicium – énergie est plus important que la seule performance. Toutefois, cette technique n'a montré sa pleine potentialité qu'avec l'émergence de la notion « d'exécution data flow » de code séquentiel classique, qui a ouvert la voie à une nouvelle génération de processeurs qui sont étudiés dans un autre article de la collection.

HAUT DE PAGE

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

(239 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
Conclusion
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...

Cet article est réservé aux abonnés.
Il vous reste 94% à 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

(239 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