La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Concepts darchitectures avancées Architectures superscalaires Exécution dans le désordre VLIW( Very Long Instruction Word)

Présentations similaires


Présentation au sujet: "Concepts darchitectures avancées Architectures superscalaires Exécution dans le désordre VLIW( Very Long Instruction Word)"— Transcription de la présentation:

1 Concepts darchitectures avancées Architectures superscalaires Exécution dans le désordre VLIW( Very Long Instruction Word)

2 Plan Introduction – Pipeline Exécution Out Of Order Scoreboarding – détails Tomasulo - principes Processeurs Superscalaires Issue In Order vs. Out Of Order Spéculation – principes VLIW et Ordonnancement statique

3 Pipeline Lexécution du programme est jusquà 8 fois plus rapide. Le temps dexécution dune instruction est inchangé. Inst LDR R1,R0,#30 IAIFSIDIACMEMEXWB ADD R1,R1,#5 IAIFSIDIACMEMEXWB STR R1,R0,#30 IAIFSIDIACMEMEXWB ADD R0,R0,#1 IAIFSIDIACMEMEXWB ADD R3,R0,R2 IAIFSIDIACMEMEXWB BRn LOOP IAIFSIDIACMEMEXWB LDR R1,R0,#30 IAIFSIDIACMEMEXWB ADD R1,R1,#5 IASIIFDIACMEMEX Tous les composants sont utilisés

4 Quelques problèmes + solutions Aléas structurels: Augmenter les ressources Aléas de contrôle: Prédiction de branchement Aléas de données: Délai + Forwarding Latence mémoire: Hiérarchie de caches Instructions multi cycles: Délai Dans tous les cas on peut résoudre les problèmes par des délais inefficace

5 Problème pipeline simple (DLX) En pratique, les délais sont inévitables DLX: Un délai bloque tout le pipeline le temps que laléa soit résolu Un seul chemin de données dans le processeur est limitant Idée: Processeur avec plusieurs chemins de données pour pouvoir exécuter plusieurs instructions indépendantes en même temps Problème: Comment déterminer si des instructions sont indépendantes ?

6 Types de Dépendances RAW (Read After Write): vraie dépendance. WAW (Write After Write): risque décriture dans le désordre (fausse dépendance). WAR (Write After Read): risque décriture avant lecture, i.e., avant quune donnée ait été utilisée (fausse dépendance). Pipeline simple: toutes les instructions sont exécutées dans lordre, on ne sintéresse quaux dépendances RAW Si on décidait dexécuter dans un autre ordre, il faudrait gérer les dépendances WAR et WAW pour être correct

7 Plan Introduction – Pipeline Exécution Out Of Order Scoreboarding – détails Tomasulo - principes Processeurs Superscalaires Issue In Order vs. Out Of Order Spéculation – principes VLIW et Ordonnancement statique

8 Mécanisme pour permettre lexécution dinstructions indépendantes dès que possible: attention aux WAR et WAW Pipeline avec plusieurs FU indépendantes (- aléas structurels) Les phases ID, EX et WB sont étoffées : ID devient Issue + Read Operands: Issue: Teste si linstruction courante écrit dans le même registre quune instruction déjà dans le pipeline: Non: Pas de dépendance WAW, linstruction avance si FU libre Oui: Dépendance WAW, instruction bloquée (IF bloqué.. ?) Mise en œuvre: Table retient pour chaque FU le registre destination de linstruction en cours Cette information est mise à jour quand une instruction entre dans une FU et quune autre en sort (phases Issue et WB) Scoreboarding

9 Scoreboarding: Issue In Order Issue Read Operand FU1 FU2 ……… op1$1 $2, $3 op2$4 $6, $2 op3$1 $2, $3 WAW 1. op1 affecté à FU1, avance dans OR et FU1Dest est mis à $1 2. op2 affecté à FU2, avance dans OR et FU2Dest est mis à $4 3. op3 doit attendre que FU1r != $1 pour avancer dans OR (op3 doit aussi attendre quune des FU ne soit pas occupée) FU11op1…$1 FU21op2…$4 BusyInst…Dest à t = 3 Read Operand

10 Scoreboarding: Issue In Order Issue : Affecter les instructions aux bonnes FU le plus tôt possible Résolution des dépendances WAW Les instructions sortent de la phase Issue dans lordre On peut recouvrir les latences des instructions multicycles par dautres instructions tant que les sorties sont indépendantes Pour issue dans le désordre, il faut un mécanisme compliqué de détection de toutes les dépendances dans cette phase (ex 2)

11 Scoreboarding: Read Operands Une instruction dans la phase RO sexécute sur FU déterminée Lexécution se fait dans le désordre Pas derreur puisquon a garanti quil ny a pas de WAW (pas besoin de se préoccuper de lordre décriture des registres les uns par rapport aux autres) Les opérandes sont lus dès quils sont tous disponibles: Condition: Ne pas lire un opérande avant sa mise à jour. Remarque: Une seule instruction peut mettre un opérande à jour avant sa lecture (puisquon garantit pas de WAW dans le pipeline) Les dépendances RAW sont résolues dynamiquement Nécessité dajouter des colonnes: So1Rdy signifie: "So1 prêt et pas encore lu" Prod1 signifie: "FU qui va produire So1" (si vide, directement registre)

12 Scoreboarding: Read Operands Issue Read Operand FU1 FU2 ……… op1$1 $2, $3 op2$4 $1, $2 op3$1 $2, $3 WAW Pour remplir SoRdy, il existe une table non représentée qui trace pour chaque registre qui est son producteur Cette table permet aussi de tester si une instruction en Issue peut déclencher une erreur WAW Toute instruction qui fait Issue lit cette table et remplit SoRdy Read Operand FU11op1$2$311-- $1 FU BInstDest t = 2 So1So2So1RdySo2RdyProd1Prod2

13 Scoreboarding: Read Operands Issue Read Operand FU1 FU2 ……… op1$1 $2, $3 op2$4 $1, $2 op3$1 $2, $3 WAW La lecture des opérandes ne se fait que si So1Rdy ET So2Rdy A t=3, op1 a lu ses opérandes et op2 est en attente de So1: NOT(So1Rdy) Op1 sexécute (10 cycles) Read Operand FU11op1$2$300-- $1 FU21op2$1$201FU1--$4 BInstDest t = 3 So1So2So1RdySo2RdyProd1Prod2

14 Scoreboarding: Write Result Lorsquune FU termine son exécution, attention aux WAR op1$1 $2, $3 op2$4 $1, $2 op3$2 $2, $3 WAR 10 cycles 5 cycles Avec 3 FU, op3 commence son exécution à t=5 et finit à t=10 alors que op2 attend t=12 pour avoir $1 Op3 finit le calcul avant op2, op3 na pas le droit d écrire Pour quune instruction I puisse écrire son résultat: Aucune instruction J ayant passé Issue ne doit spécifier: So[i]Rdy(J) ET So[i](J) == Dest(I) Dans le cas contraire, J a lun de ses opérandes prêt et ça ne peut pas être le résultat de I qui na pas encore écrit … I na pas le droit décrire Exemple:

15 Scoreboarding: Write Result Issue Read Operand FU1 FU2 ……… op1$1 $2, $3 op2$4 $1, $2 op3$1 $2, $3 WAW A t=12, op1 termine son exécution et passe dans Write La ligne FU2 va être modifiée puisque NOT(So1Rdy) Read Operand FU11op1$2$300-- $1 FU21op2$1$201FU1--$4 BInstDest t = 12 So1So2So1RdySo2RdyProd1Prod2

16 Scoreboarding: Write Result Issue Read Operand FU1 FU2 ……… op1$1 $2, $3 op2$4 $1, $2 op3$1 $2, $3 WAW A t=13, op1 modifie la ligne 2 pour annoncer que $1 est prêt Read Operand FU10op1$2$300-- $1 FU21op2$1$211FU1--$4 BInstDest t = 13 So1So2So1RdySo2RdyProd1Prod2

17 Scoreboarding: Limites Dans ce modèle, les FU ne communiquent pas, pas de forwarding La gestion des producteurs/consommateurs est centralisée (tous les résultats sont explicitement écrits dans les registres) La phase Issue se fait dans lordre, toute dépendance WAW bloque la partie amont du processeur. op1$1 $2, $3 op2$1 $4, $2 op3$5 $1, $3 WAW Scoreboarding inefficace La phase WB résout les dépendances WAR en bloquant lécriture: répercussion sur la lecture des opérandes suivants Il existe un mécanisme décentralisé, plus complexe, bien plus performant, où le forwarding est implicite et permet de résoudre directement les problèmes de dépendances WAR et WAW Algorithme de Tomasulo

18 Plan Introduction – Pipeline Exécution Out Of Order Scoreboarding – détails Tomasulo - principes Processeurs Superscalaires Issue In Order vs. Out Of Order Spéculation – principes VLIW et Ordonnancement statique

19 Tomasulo : Principes Approche qui permet: Exécution dès que les opérandes sont prêts Renommage de registres supprime les dépendances WAR et WAW et permet de réordonner les instructions Les FU communiquent via le CDB (Common Data Bus) Pour chaque FU: 1 Station de Réservation joue le rôle de scoreboard local pour la FU et contient, en plus, les valeurs des opérandes Lécriture en phase WB se fait directement dans ces RS via le CDB Linformation "où trouver lopérande" est calculée dynamiquement et est à jour dans chaque RS renommage implicite op1$1 $2, $3 op2$4 $1, $2 op3$1 $2, $7 op4$5 $1, $2 WAR op1$1 $2, $3 op3$T $2, $7 op2$4 $1, $2 op4$5 $T, $2 Renommage Correct op3$1 $2, $3

20 Tomasulo : Principes

21 Issue, prendre la tête du buffer dinstructions: Si aucune RS nest disponible, aléa structurel, bloquer la partie amont Sinon, passer linstruction à une RS: Si les opérandes sont disponibles, copier les valeurs dans la RS Sinon, copier les noms des FU productrices dans la RS (renommage) Execute: Sil manque des opérandes, espionner le CDB et récupérer les valeurs Dès que les opérandes sont prêts, exécuter Comportement spécial pour Load/Store puis exécution): Load peut sexécuter immédiatement (sauf si dépendances) Store a besoin dune valeur a stocker qui vient des RS Si Load et Store à la problèmes RAW, WAR, WAW à résoudre Write Result: Chaque FU écrit sur le CDB (risque daléa structurel) Stores écrivent en mémoire dans cette phase (dans lordre modulo

22 Tomasulo : Conclusion/Limites Beaucoup plus efficace que le scoreboarding mais cher: RS = Buffer Associatif à très haute fréquence CDB = Fils dinterconnexions coûteux de capacité limitée Problème des branchements non résolu bloquer le pipeline en attendant IF de la bonne instruction (en espérant que le prédicteur de branchements soit bon) Les dépendances WAR sont résolues grâce à la copie des valeurs des opérandes dans les stations de réservation (en amont de EX) Il est aussi possible de résoudre ce problème en aval grâce à des buffers dédiés à la sauvegarde de la valeur courante dun registre op1$1 $2, $3 op2$4 $1, $2 op3$1 $2, $7 op4$5 $1, $2 WAR op1$1 $2, $3 op3$T $2, $7 op2$4 $1, $2 op4$5 $T, $2 Renommage Correct op3$1 $2, $3

23 Plan Introduction – Pipeline Exécution Out Of Order Scoreboarding – détails Tomasulo - principes Processeurs Superscalaires Issue In Order vs. Out Of Order Spéculation – principes VLIW et Ordonnancement statique

24 Processeur Superscalaire Lexécution dans le désordre permet dexploiter le parallélisme dun programme, CDB limitant Pour le moment, processeurs avec 1 instruction terminée par cycle. Superscalaire de degré n: jusquà n instructions terminées par cycle (n ~ 4) Pour réaliser un processeur superscalaire, il faut: Pouvoir faire IF sur plusieurs instructions en même temps Pouvoir faire Issue sur plusieurs instructions en même temps Disposer de plusieurs unités de calcul en parallèle et exécuter en parallèle (Tomasulo)

25 Issue In Order vs. Out Of Order In Order: Dès quune instruction ne peut pas sortir de Issue, le Front End (partie amont) est bloqué Out Of Order: Si une instruction ne peut pas sortir de Issue et que la suivante le pourrait, Issue de la suivante Fenêtre dinstructions en attente dIssue, résoudre dépendances

26 Problème Branch / Out Of Order On sintéresse aux instructions qui sexécutent après un branchement Issue In Order: Attendre le résultat de la comparaison, comparer avec le prédicteur puis Issue des instructions dépendantes Correct mais inefficace Issue Out Of Order: Incorrect Alternative: Ne pas permettre à des instructions contrôle- dépendantes de dépasser un branch très inefficace à cause de la fréquence des branch (boucles) Prédicteurs de branchement souvent efficaces (90%+ de bonnes prédiction) utiliser intelligemment cette propriété

27 Solution: Exécution Spéculative Plutôt que de bloquer en amont sur un branch, on va exécuter spéculativement les instructions Instructions contrôle-dépendantes dont le branch nest pas sûrement calculé sont exécutées quand même Elles nont pas le doit de faire Write Result tant que le caractère spéculatif nest pas levé Ajout dune nouvelle phase: Commit In Order Si la spéculation est fausse, on vide le pipeline Commit assure quaucune instruction ne modifie les registres si elle ne le devait pas Fonctionne sur plusieurs branchements à la suite Remarque: Exceptions coûteuses interdites en mode spéculatif, on préfère bloquer le pipeline.

28 Superscalaire dynamique Résumé

29 Plan Introduction – Pipeline Exécution Out Of Order Scoreboarding – détails Tomasulo - principes Processeurs Superscalaires Issue In Order vs. Out Of Order Spéculation – principes VLIW et Ordonnancement statique


Télécharger ppt "Concepts darchitectures avancées Architectures superscalaires Exécution dans le désordre VLIW( Very Long Instruction Word)"

Présentations similaires


Annonces Google