Présentation

Article

1 - D'UNE À PLUSIEURS INSTRUCTIONS PAR CYCLE

2 - MULTI-PIPELINES DANS LES PROCESSEURS SCALAIRES

3 - PROBLÈMES MATÉRIELS ACCENTUÉS

  • 3.1 - Bancs de registres
  • 3.2 - Contrôle des dépendances de données
  • 3.3 - Accès aux caches
  • 3.4 - Prédiction de branchement
  • 3.5 - Acquisition des instructions
  • 3.6 - Davantage d'opérateurs matériels

4 - MODÈLE MULTI-PIPELINE

  • 4.1 - Lancement des instructions groupe par groupe
  • 4.2 - Chevauchement de deux groupes d'instructions
  • 4.3 - Prétraitement pour le groupage des instructions

5 - SUPERSCALAIRES MULTI-PIPELINES OU À « FLOT DE DONNÉES RESTREINT »

  • 5.1 - R5000 et R10000
  • 5.2 - Power 5 et Power 6
  • 5.3 - Cortex A7 et A9, Cortex R4 et R7

6 - REMARQUES POUR CONCLURE

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

Superscalaires multi-pipelines ou à « flot de données restreint »
Processeurs superscalaires multi-pipelines

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

Relu et validé le 03 août 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 décrit les caractéristiques principales des processeurs superscalaires multi-pipelines, appelés aussi superscalaires «dans l'ordre». Un processeur superscalaire utilise le parallélisme existant entre les instructions d'un code séquentiel pour lancer l'exécution de plusieurs instructions indépendantes à chaque cycle d'horloge. Les problèmes avec les superscalaires pour les bancs de registres, les accès cache, les prédicteurs de branchement et l'acquisition des instructions sont mentionnés. Des exemples sont détaillés, du Pentium d'Intel à certains coeurs Power d'IBM. Enfin, les performances des superscalaires «dans l'ordre» et des versions «non ordonnées» sont comparées pour des processeurs MIPS, IBM et ARM en termes de vitesse, puissance dissipée et surface.

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

Lire l’article

ABSTRACT

Multi-pipeline superscalar processors

This paper describes the main features of “multi-pipeline” also called “in-order” superscalar processors. A superscalar processor uses instruction level parallelism in a sequential code to launch the execution of multiple independent instructions at each clock cycle. The additional problems for superscalar processors are detailed including register banks, cache accesses, branch predictors and instruction fetching. Examples of in-order superscalar processors are presented from Intel Pentium to some IBM Power cores. Performance of in-order and out-of-order superscalar MIPS, IBM and ARM processors is compared for speed, power dissipation, and chip area.

Auteur(s)

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

  • François ANCEAU : Ingénieur INPG Grenoble Professeur retraité – Chercheur au LIP6 (Université Pierre-et-Marie-Curie)

INTRODUCTION

Cet article examine les caractéristiques principales des processeurs superscalaires multi-pipelines, souvent appelés superscalaires dans l'ordre. Un processeur superscalaire 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. C'est le matériel qui détermine les instructions indépendantes qui peuvent démarrer simultanément dans différents pipelines parce que les opérateurs nécessaires sont disponibles et les opérandes sont prêts. L'utilisation de plusieurs pipelines d'exécution existe déjà dans les processeurs scalaires ne pouvant démarrer qu'une seule instruction par cycle à cause des différences de temps d'exécution entre la majorité des instructions sur des données entières et celles des instructions flottantes. Le problème du contrôle des dépendances de données est donc déjà traité dans les processeurs scalaires et ce traitement est rappelé. Avec des processeurs superscalaires, les problèmes matériels sont accentués sur de nombreux points : banc de registres, accès cache, prédiction de branchement, acquisition des instructions. Dans le modèle multi-pipeline, le matériel rassemble les instructions par groupe de 2 ou 4 instructions, et toutes les instructions d'un groupe doivent avoir été lancées avant que les instructions d'un groupe suivant ne le soient. Des exemples des techniques utilisées sont donnés avec les Pentium et Atom d'Intel, les 21064 et 21164 de Digital, le Cortex A8 d'ARM et le cœur Power 6 d'IBM. Des techniques utilisées pour dépasser les limitations d'un strict démarrage groupe par groupe sont détaillées.

D'un point de vue performance brute, les superscalaires « dans l'ordre » sont moins performants que les superscalaires à « flot de données restreint » souvent appelés superscalaires « non ordonnés » qui recherchent les instructions exécutables dans une fenêtre beaucoup plus grande qu'un groupe de 2 ou 4 instructions. Il est possible de comparer, pour un même constructeur et une même technologie CMOS, les deux approches du point de vue temps de calcul, surface de puce et puissance dissipée. La comparaison est présentée pour deux processeurs MIPS, deux cœurs IBM et des cœurs ARM. À fréquence d'horloge équivalente, la version « non ordonnée » est toujours plus performante, mais la version « dans l'ordre » consomme moins, utilise moins de surface de puce et a généralement la meilleure performance par watt ou par GHz. Les superscalaires « dans l'ordre » sont donc une bonne solution pour les applications embarquées nécessitant plus que les performances des processeurs scalaires, mais avec une surface moindre et une consommation énergétique moindre par rapport à la solution la plus performante.

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

superscalar   |   multi-pipeline   |   instruction launching   |   instruction level parallelism

DOI (Digital Object Identifier)

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


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

5. Superscalaires multi-pipelines ou à « flot de données restreint »

L'approche multi-pipeline permet d'exécuter plusieurs instructions par cycle en décomposant les pipelines en deux parties : la première acquiert simultanément n instructions, les décode, examine les aléas structurels (manque d'opérateurs matériels) et les dépendances de données, et constitue le groupe d'instructions qui peuvent démarrer dans le même cycle d'horloge en se répartissant dans les différents pipelines d'exécution (entiers, flottants, accès mémoire, etc.). Les variantes portent sur le nombre d'instructions acquises par cycle (2 ou 4) et la taille des groupes qui peut varier de 2 à 7 dans les exemples cités dans cet article.

Quelles que soient les variantes, le nombre d'instructions candidates au lancement en un cycle d'horloge est limité, et elles sont proches dans le flot séquentiel des instructions. Or, des instructions récentes peuvent être exécutables alors que des instructions plus anciennes sont en attente d'unités fonctionnelles disponibles ou de données. En d'autres termes, augmenter les possibilités d'utilisation du parallélisme d'instructions dans un programme implique d'aller au-delà d'une fenêtre de quelques instructions séquentielles. Aller au-delà consiste à utiliser un tampon d'instructions permettant de ranger des dizaines d'instructions et d'exécuter les instructions selon le flot de données. C'est le paradigme flot de données restreint encore appelé exécution non ordonnée.

Dans de nombreuses familles de processeurs, on a vu une évolution identique : de la version scalaire à la version superscalaire à exécution dans l'ordre (multi-pipelines) puis à exécution non ordonnée (« flot de données restreint »). Le tableau 4 donne quelques exemples de cette évolution.

La transition des versions des processeurs scalaires vers les processeurs superscalaires multi-pipelines est intervenue au milieu des années 1990 pour les processeurs généralistes et au milieu des années 2000 pour les processeurs embarqués (ARM). Par contre, la transition entre les versions multi-pipelines et flot de données restreint a été rapide. Le Pentium Pro apparaît deux ans après le Pentium. L'Alpha 21264 apparaît deux ans après le 21064. Une seule année sépare le R8000 et le R10000.

Nous donnons maintenant des éléments de comparaison des performances des architectures multi-pipelines et à flot de données restreint.

5.1 R5000...

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

Lecture en cours
Superscalaires multi-pipelines ou à « flot de données restreint »
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - YEH (T.-Y.), PATT (Y.N.) -   A Comprehensive instruction fetch mechanism for a processor supporting speculative execution.  -  Proceedings of the 25th Annual ACM/IEEE International Symposium on Computer Microarchitecture, p. 129-139, déc. 1992.

  • (2) - McLELLAN (E.) -   The Alpha AXP architecture and 21064 processor.  -  IEEE Micro, p. 36-47, juin 1993.

  • (3) - HP -   Alpha 21064 and Alpha 21064A Microprocessors, Hardware Reference Manual.  -  Juin 1996 http://h18000.www1.hp.com/cpq- alphaserver/technology/literature/ 21064hrm.pdf (page consultée le 18/05/2015).

  • (4) - EDMONDSON (J.H.), RUBINFELD (P.), PRESTON (R.P.) -   Superscalar instruction execution in the 21164 alpha microprocessor.  -  IEEE Micro, p. 33-43, avr. 1995.

  • (5) -   Alpha 21164 hardware reference manual.  -  (1996) http://download.majix.org/dec/21164_ hrm.pdf (page consultée le 18/05/2015).

  • ...

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

(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