49
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline Les systèmes modernes utilisent tous des architectures pipelines – Pourquoi?

Systèmes Pipeline

  • Upload
    makan

  • View
    66

  • Download
    0

Embed Size (px)

DESCRIPTION

Systèmes Pipeline. Les systèmes modernes utilisent tous des architectures pipelines – Pourquoi?. Matière couverte. Principes de base des systèmes pipelines Utilisation de pipeline dans un microprocesseur simple Problèmes rencontrés. Exemple: le lavage du linge. - PowerPoint PPT Presentation

Citation preview

Page 1: Systèmes Pipeline

Gei

431

Architecture des ordinateurs II – Frédéric Mailhot

Systèmes Pipeline

Les systèmes modernes utilisent tous des architectures pipelines – Pourquoi?

Page 2: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Matière couverte

• Principes de base des systèmes pipelines

• Utilisation de pipeline dans un microprocesseur simple

• Problèmes rencontrés

Page 3: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Exemple: le lavage du linge

• Soient 4 étudiants qui désirent faire leur lavage

• Il y a une laveuse, une sécheuse, et une table pour plier le linge

• Le lavage prend 30 minutes

• Le séchage prend 40 minutes

• Le pliage prend 20 minutes

• Si l’opération commence à 6h00 du soir, à quelle heure termineront-ils?

Page 4: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Lavage du linge: 1ère itération

• L: 30

• S: 40

• P: 20

• 4 * (30 + 40 + 20) = 360 minutes

• On termine à minuit

Page 5: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Lavage du linge: 2e itération: pipeline

• L:30, S: 40, P: 20

• On superpose le lavage, séchage et pliage:

30

30

40

30

70

20

40

30

110

20

40

30

150

20

40

190

20

210

• On termine à 21h30• Régime permanent:

100 min/pers

Page 6: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esLavage du linge: 3e itération – sécheuse/plieuse

• L:30, SP: 50 (une sécheuse/plieuse): SP = 50, au lieu de S + P = 40 + 20 = 60

30

30

50

30

80

50

30

130

50

30

180

50

230

• On termine à 21h50• Régime permanent:

100 min/pers

Page 7: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Lavage du linge: 4e itération: 2 sécheuses

• L:30, S1: 20, S2: 20, P: 20

180

20

30

30

30

20

60

30

20

20

90

20

30

20

20

120

20

20

20

140

20

20

160

• On termine à 21h00• Régime permanent:

110 min/pers

Page 8: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esLavage du linge: 5e itération: 1 sécheuse « haute température »

• L:30, S1: 15, S2: 20, P: 20

180

20

30

30

30

15

60

20

20

160

30

20

90

15

30

20

20

120

15 20

20

140

15

• On termine à 21h00• Régime permanent:

110 min/pers

Page 9: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esLavage du linge: 6e itération: 2 sécheuses « haute température »

• L:30, S1: 15, S2: 15, P: 20

170

20

30

30

30

60

15 15

30

90

2015 15

30

120

2015 15 20

150

15 15

• On termine à 20h50!• Régime permanent:

80 min/pers

Page 10: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Leçons du pipeline de lavage

• Le pipeline n’améliore pas la latence. Il améliore le temps moyen par tâche (throughput)

• La vitesse du pipeline est limitée par l’étage le plus lent

• Plusieurs tâches se font en parallèle

• Accélération possible: nombre d’étages

• Les durées d’étage inégales limitent l’accélération

• Le temps de remplir et de vider le pipeline réduit l’accélération

Page 11: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Le processeur DLX (De Luxe)

Page 12: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Vue « pipeline » du DLX

Page 13: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

La loi de Amdahl

• N = (performance avec amélioration)

(performance sans amélioration)

= 1

(1 – Fraction améliorée) + Fraction (améliorée)

Accélération (améliorée)

Page 14: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Performance: principe de base

• Comment mesurer et comparer la performance?

• X est N fois plus rapide que Y veut dire: N = (temps d’exécution de Y)

(temps d’exécution de X)

• On doit distinguer le temps de réponse pour une tâche du temps moyen de réponse (throughput)

Page 15: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Équation de la performance d’un CPU

• Temps CPU = coups d’horloge d’un programme multiplié par la période de l’horloge

• Soit IC = Instruction Count

= Nombre d’instructions d’un programme

• Soit CPI = Clock cycle Per Instruction

= coups d’horloge d’un programme

IC

• Alors: temps CPU = IC * CPI * période de l’horloge

Page 16: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Le pipeline – principes de base

• Une instruction par coup d’horloge

• L’information doit être propagée d’un étage à l’autre

• Il ne peut y avoir de conflit de ressources

• L’ajout de registres (ou de latches) a un impact sur la période de l’horloge

Page 17: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Le DLX – pipeline à 5 étages

Page 18: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

L’arrêt temporaire du pipeline (stall)

• Dans certains cas, on doit arrêter temporairement un ou plusieurs étages d’un processeur: « cache miss »

Problème local à une instruction

Page 19: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Impact des « stalls » sur la performance

• Amélioration = CPI(sans) * période (sans)

CPI(avec) période (avec)

• CPI(avec) = 1 + stall / instruction

• Amélioration = CPI(sans)

1 + stall / instruction

Amélioration = profondeur du pipeline

1 + stall / instruction

Page 20: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Les obstacles majeurs au pipeline

• Problèmes structuraux

• Problèmes de dépendances de données

• Problèmes de contrôle

Page 21: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Exemple de problème de structure

Page 22: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Effet d’un problème de structure sur les stall

Page 23: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esPipelines: classification des problèmes de dépendance de données

• RAW (Read after Write): instruction subséquente lit la source avant que l’instruction précédente l’ait écrite. Problème résolu avec « forwarding »

• WAW (Write after Write): instruction subséquente tente d’écrire une destination avant que l’instruction précédente l’ait écrite. Ce type de problème existe dans les pipelines où l’écriture se fait à plus d’un endroit

• WAR (Write after Read): instruction subséquente écrit la destination avant que l’instruction précédente ne l’ait lue. Ce type de problème peut apparaître lorsqu’il y a des écritures hâtives et des lectures tardives

Page 24: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Problème de dépendance de données RAW

Page 25: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Solution au RAW: le « forwarding »

Page 26: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Autre exemple de « forwarding »

Page 27: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esPipeline: Problèmes de données exigeant des retards (stalls)

• Soit la séquence d’instructions suivante:LW R1, 0 (R2)

SUB R4, R1, R5

AND R6, R1, R7

OR R8, R1, R9

• La 1ère instruction est une lecture de la mémoire. La 2e utilise dans l’ALU la valeur lue en mémoire (MEM1 et ALU2 sont concurrentes)

• Solution: on utilise un dispositif matériel, le « pipeline interlock », pour détecter ce cas et introduire un retard (stall)

Page 28: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Stalls: impact sur la performance

• Supposons que 30% des instructions sont des « load »

• Supposons que 50% des instructions qui suivent un « load » utilisent la valeur lue

• Le CPI de l’instruction qui suit le « load » est de 1.5 (stall ½ du temps)

• Puisque 30% des instructions sont des « load », les CPI moyen devient:

CPI = (0,7 * 1 + 0,3 * 1,5) = 1,15

Page 29: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esCertains « stalls » peuvent être évités, mais pas tous

Page 30: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Effet d’un « stall » sur le pipeline

Page 31: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

La nécéssité des « stall » - exemple

LW R1, 0(R1) IF ID EX MEM WB

SUB R4, R1, R5 IF ID EX MEM WB

AND R6, R1, R7 IF ID EX MEM WB

OR R8, R1, R9 IF ID EX MEM WB

LW R1, 0(R1) IF ID EX MEM WB

SUB R4, R1, R5 IF ID stall EX MEM WB

AND R6, R1, R7 IF stall ID EX MEM WB

OR R8, R1, R9 stall IF ID EX MEM WB

Page 32: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esPipeline: utilisation des compilateurs pour réduire les problèmes de dépendences

• L’instruction de haut niveau suivante:• A = B + C

cause un délai (stall) pour charger la 2e valeur (C)

• Solution: on tente, à l’aide du compilateur, d’éviter de générer du code où un « load » est immédiatement suivi par l’utilisation du registre visé. Cette technique est appellée « pipeline scheduling » ou « instruction scheduling »

Page 33: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Exemple de « pipeline scheduling »

• Soient les instructions suivantes:A = B + CD = E – F

• Le code suivant évitera les « stall »:• LW Rb, B• LW Rc, C• LW Re, E• ADD Ra, Rb, Rc• LW Rf, F• SW A, Ra• SUB Rd, Re, Rf• SW D, Rd

Page 34: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Réalisation du contrôle du pipeline du DLX

• Lorsqu’une instruction passe de ID à EX, on dit que l’instruction est émise (issued). Dans le DLX, tous les problèmes de dépendances de données peuvent être détectés durant la phase ID. S’il y a un problème de dépendance, il n’y a qu’à retarder l’émission de l’instruction.

• De même, on peut détecter durant la phase ID quels « forwarding » devront être faits, et à quels moments

• Pour pouvoir contrôler ces 2 opérations, il y a 4 cas à considérer: Pas de dépendance Dépendance qui exige un « stall » Dépendance qui exige un « forward » Dépendance dénouée d’elle-même

Page 35: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Pipeline: insertion de « stalls »

• Lorsqu’on détecte un problème de dépendance de données exigeant un « stall », il faut simplement faire 3 choses: Émettre un no-op à l’étage EX

Recirculer l’état de ID

Conserver le même IF

Page 36: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Pipeline: insertion de « forward »

• Pour détecter la nécessité de faire un « forward », il y a un certain nombre de cas qui doivent être détectés dans le pipeline. Dans le DLX, il y a 10 cas à considérer pour les « forward sur les entrées de l’ALU

Note: l’ajout de chemins de « forward » implique que la taille des multiplexeurs des destinations doit augmenter

Page 37: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esCas à considérer pour le « forwarding » des entrées de l’ALU du DLX

Page 38: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esPipeline: délais causés par des problèmes de contrôle

• Lorsqu’on exécute un branchement (branch), l’impact sur la performance peut être important. Dans le DLX tel que présenté jusqu’à maintenant, la modification du PC (lorsqu’un branchement est utilisé) ne se fait qu’à la fin de l’étage MEM.

• Le plus simple à faire est de retarder l’exécution jusqu’à ce que le PC soit valide. Dans ce cas, on doit attendre 3 cycles d’horloge. Mais… C’ext très coûteux!

• Pour réduire les délais des branchements, on peut faire 2 choses: Déterminer plus rapidement si le branchement est utilisé ou

non Calculer le PC résultant plus rapidement

Page 39: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esPipeline: réduction des délais des branchements

• La solution simple est de retarder l’exécution en présence de branchements, mais elle est coûteuse en termes de performance. Peut-on faire mieux?

Page 40: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esPipeline: réduction des délais de branchement

Page 41: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esPipeline: réduction des délais de branchement (2)

On peut supposer que le branchement ne sera pas effectué. Dans ce cas, on continue tout simplement de lire des instructions pendant le calcul du branchement

On peut supposer que le branchement sera effectué. On commence à lire les instructions dès que la destination du branchement est connue. Pour le DLX, ceci n’apporte rien, puisqu’on sait simultanément la destination et la décision de branchement

Page 42: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

esPipeline: réduction des délais des branchements (3)

• On peut utiliser le branchement retardé (delayed branch). Dans le DLX, puisqu’il y a au maximum un délai d’une instruction avant de connaître la décision de branchement, on utilise un « branch-delay slot ». C’est-à-dire que l’instruction qui suit immédiatement celle de branchement est une instruction commue aux deux possibilités de branchement.

Page 43: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Pipeline: branchement retardé

• Il existe trois possibilités pour utiliser le « branch-delay slot »: Intervertir l’instruction de branchement et celle qui la

précède. Ceci ne fonctionne que si cette instruction n’affecte pas le branchement

Utiliser la première instruction du branchement effectué. Ne fonctionne que si cette instruction n’affecte pas le branchement non-effectué

Utiliser la première instruction du branchement non-effectué. Dual de la solution précédente.

• Que choisir? Tout dépend…

Page 44: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

L’utilisation du « branch-delay slot »

Page 45: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Pipeline: Branchement retardé (2)

• Que faire s’il n’y a pas d’instructions sans impact sur l’autre branche?

• Solution: on peut inclure dans le matériel un système de reconnaissance et d’élimination des mauvaises instructions de « branch-delay slot ».

• Il suffit que le compilateur indique pour quelle branche l’instruction du « branch-delay slot » fonctionne. Le processeur n’a qu’à comparer la prédiction du compilateur avec la décision réelle, et canceller l’instruction si la prédiction est invalide.

Page 46: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Pipeline: prédiction des branchements

• Comment le compilateur peut-il décider des branchements? Étude du comportement des programmes en général (%

général des branchements utilisés, vers l’avant et vers l’arrière)

Étude des résultats de l’exécution du programme (souvent, système bi-modal)

Page 47: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Performance des « branch-delay slots »

Page 48: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Pipeline: pourquoi est-ce difficile à réaliser?

• Difficulté majeure: comment gérer les exceptions (interruptions)? Utilisation de périphériques

Utilisation de services du système d’exploitation

Exceptions arithmétiques

Fautes de pages

Fautes de segmentation

Etc.

• Difficulté dérivée: exceptions multiples, exceptions désordonnées

Page 49: Systèmes Pipeline

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es

Exemples d’exceptions

• Requête d’entrée/sortie

• Appel à une fonction de l’OS à partir d’une application

• Debuggage: tracing, breakpoints

• Dépassement arithmétique (overflow, underflow)

• Faute de page

• Mauvais accès à la mémoire

• Instruction non-définie

• Mauvais fonctionnement du matériel

• Problème d’alimentation