Articles

GeeksforGeeks

Pour améliorer les performances d’un processeur, nous avons deux options:
1) Améliorer le matériel en introduisant des circuits plus rapides.
2) Disposez le matériel de telle sorte que plusieurs opérations puissent être effectuées en même temps.

Comme il y a une limite à la vitesse du matériel et que le coût des circuits plus rapides est assez élevé, nous devons adopter la 2ème option.

Tuyauterie : Le pipelining est un processus d’agencement des éléments matériels de la CPU de telle sorte que ses performances globales soient augmentées. L’exécution simultanée de plus d’une instruction a lieu dans un processeur en pipeline.

Voyons un exemple concret qui fonctionne sur le concept de fonctionnement en pipeline. Considérez une usine d’emballage de bouteilles d’eau. Qu’il y ait 3 étapes qu’une bouteille doit traverser, en insérant la bouteille (I), en remplissant l’eau dans la bouteille (F) et en scellant la bouteille (S). Considérons ces étapes comme l’étape 1, l’étape 2 et l’étape 3 respectivement. Laissez chaque étape prendre 1 minute pour terminer son fonctionnement.
Maintenant, dans une opération non pipelinée, une bouteille est d’abord insérée dans l’usine, après 1 minute, elle est déplacée à l’étape 2 où l’eau est remplie. Maintenant, à l’étape 1, il ne se passe rien. De même, lorsque la bouteille passe à l’étape 3, l’étape 1 et l’étape 2 sont toutes deux inactives. Mais en fonctionnement en canalisation, lorsque la bouteille est à l’étape 2, une autre bouteille peut être chargée à l’étape 1. De même, lorsque la bouteille est à l’étape 3, il peut y avoir une bouteille chacune à l’étape 1 et à l’étape 2. Ainsi, après chaque minute, nous obtenons une nouvelle bouteille à la fin de l’étape 3. Ainsi, le temps moyen de fabrication d’une bouteille est de :

Sans canalisation = 9/3 minutes =3m

I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)

Avec canalisation= 5/3 minutes= 1,67m

I F S | || I F S || | I F S (5 minutes)

Ainsi, le fonctionnement en canalisation augmente l’efficacité d’un système.

Conception d’un pipeline de base

  • Dans un processeur en pipeline, un pipeline a deux extrémités, l’extrémité d’entrée et l’extrémité de sortie. Entre ces extrémités, il y a plusieurs étages / segments tels que la sortie d’un étage est connectée à l’entrée de l’étage suivant et chaque étage effectue une opération spécifique.Les registres d’interface
  • sont utilisés pour maintenir la sortie intermédiaire entre deux étages. Ces registres d’interface sont également appelés latch ou buffer.
  • Toutes les étapes du pipeline ainsi que les registres d’interface sont contrôlés par une horloge commune.

Exécution dans un processeur en pipeline
La séquence d’exécution des instructions dans un processeur en pipeline peut être visualisée à l’aide d’un diagramme spatio-temporel. Par exemple, considérons un processeur à 4 étages et qu’il y ait 2 instructions à exécuter. Nous pouvons visualiser la séquence d’exécution à travers les diagrammes spatio-temporels suivants:

Exécution non chevauchée:

Stage / Cycle 1 2 3 4 5 6 7 8
S1 I1 I2
S2 I1 I2
S3 I1 I2
S4 I1 I2

Total time = 8 Cycle

Overlapped execution:

Stage / Cycle 1 2 3 4 5
S1 I1 I2
S2 I1 I2
S3 I1 I2
S4 I1 I2

Total time = 5 Cycle

Étapes de pipeline

Le processeur RISC dispose d’un pipeline d’instructions à 5 étages pour exécuter toutes les instructions du jeu d’instructions RISC. Voici les 5 étapes du pipeline RISC avec leurs opérations respectives:

  • Étape 1 (Instruction Fetch)
    Dans cette étape, le CPU lit les instructions de l’adresse dans la mémoire dont la valeur est présente dans le compteur de programme.
  • Étape 2 (Décodage d’instructions)
    Dans cette étape, l’instruction est décodée et le fichier de registre est accessible pour obtenir les valeurs des registres utilisés dans l’instruction.
  • Étape 3 (Exécution de l’instruction)
    Dans cette étape, des opérations ALU sont effectuées.
  • Étape 4 (Accès mémoire)
    Dans cette étape, les opérandes mémoire sont lus et écrits depuis/vers la mémoire présente dans l’instruction.
  • Étape 5 (Réécriture)
    Dans cette étape, la valeur calculée/récupérée est réécrite dans le registre présent dans les instructions.

Performance d’un processeur en pipeline
Considérez un pipeline de segments « k » avec le temps de cycle d’horloge comme « Tp ». Soit ‘n » tâches à accomplir dans le processeur en pipeline. Maintenant, la première instruction va prendre « k » cycles pour sortir du pipeline mais les autres instructions « n-1 » ne prendront que « 1 » cycle chacune, c’est–à-dire un total de « n-1 » cycles. Donc, le temps nécessaire pour exécuter ‘n’ instructions dans un processeur en pipeline :

 ETpipeline = k + n – 1 cycles = (k + n – 1) Tp

Dans le même cas, pour un processeur non en pipeline, le temps d’exécution des ‘n’ instructions sera :

 ETnon-pipeline = n * k * Tp

Ainsi, l’accélération(S) du processeur en pipeline sur le processeur non en pipeline, lorsque ‘n’ tâches sont exécuté sur le même processeur est:

 S = Performance of pipelined processor / Performance of Non-pipelined processor

Comme les performances d’un processeur sont inversement proportionnelles au temps d’exécution, nous avons,

 S = ETnon-pipeline / ETpipeline => S = / S = / 

Lorsque le nombre de tâches ‘n’ est significativement supérieur à k, c’est-à-dire n >>k

 S = n * k / n S = k

où ‘k’ est le nombre d’étapes dans le pipeline.

De plus, Efficiency=Given speed up/Max speed up=S/Smax
Nous savons que, Smax=k

Donc, Efficiency=S/k

Débit = Nombre d’instructions / Temps total pour terminer les instructions

Donc, Débit= n/(k + n–1)*Tp

Remarque: La valeur de cycles par instruction (CPI) d’un processeur pipeliné idéal est de 1

Veuillez voir Set 2 pour les dépendances et le risque de données et l’ensemble 3 pour les types de pipeline et de calage.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *