Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parÉmile Marchand Modifié depuis plus de 9 années
1
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Superscalaires Comment peut-on déterminer de façon dynamique, au niveau du processeur, quelles sont les instructions qui peuvent s’exécuter en parallèles? Dans ce qui suit nous étudierons l’architecure superscalaire générale, et nous examinerons en particulier deux méthodes utilisées pour extraire dynamiquement le parallélisme des instructions: La méthode « scoreboard » La méthode de Tomasulo
2
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Architecture superscalaire: introduction Idée derrière l’architecture superscalaire: émission de plus d’une instruction par coup d’horloge, à partir de code compilé de façon traditionnelle Mécanismes sous-jacents: Décodage parallèle Gestion d’instructions multiples Émission d’instructions multiples Exécution parallèle des instructions Préservation de l’ordre des instructions Préservation de l’ordre des exceptions Utilisation du scoreboard ou de la méthode de Tomasulo
3
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Architecture superscalaire: Gestion d’instructions multiples Puisqu’il y a plusieurs instructions émises en même temps, les problèmes de structure, de dépendances de données (RAW, WAW) et de contrôle seront exacerbés Il est impératif de gérer efficacement l’émission des instructions (structure, dépendances de données) Scoreboard Tomasulo Il faut minimiser les délais causés par le branchements (contrôle) Techniques de prévision et de spéculation liées aux branchements
4
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: technique du scoreboard Origine: Control Data CDC 6600, en… 1963! Technique utilisée au départ pour maintenir un taux d’exécution de une instruction par coup d’horloge, en absence de problèmes de structure Extension: utilisation de multiples instructions par coup d’horloge Idée: si une instruction est arrêtée (« stalled »), on peut utiliser une instruction subséquente si elle ne dépend pas de celle qui est arrêtée
5
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: technique du scoreboard (2) Le scoreboard est un tableau interne qui contient toute l’information nécessaire (au sujet des instructions présentes dans le processeur) pour décider quand et où exécuter chacune des instructions On y conserve l’état de chacune des unités d’exécution, ainsi que le statut de chacun des registres
6
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: architecture pour la méthode du scoreboard
7
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: technique du scoreboard (3) Pour chaque unité d’exécution, on doit connaître: Si elle est en opération L’opération qui y est effectuée Le nom des registres de destination et des opérandes Le nom des unités d’exécution qui doivent produire les valeurs requises pour les registres des opérandes (si les valeurs courantes ne sont pas prêtes) L’état des registres des opérandes Le scoreboard utilise toutes ces valeurs pour décider à quel moment les instructions peuvent être exécutées
8
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2) LD F2, 45(R3) MULTD F0,F2,F4 SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALU Mult1 Mult2 Add Div Statut des registres de résultats F0F2F4F6F8F10F12…F30 UE
9
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)ll LD F2, 45(R3) MULTD F0,F2,F4 SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUouiLoadF6R2non Mult1non Mult2non Addnon Divnon Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEALU
10
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3) MULTD F0,F2,F4 SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUouiLoadF6R2non Mult1non Mult2non Addnon Divnon Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEALU
11
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3) MULTD F0,F2,F4 SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1non Mult2non Addnon Divnon Statut des registres de résultats F0F2F4F6F8F10F12…F30 UE
12
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)ll MULTD F0,F2,F4 SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUouiLoadF2R3non Mult1non Mult2non Addnon Divnon Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEALU
13
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)ll MULTD F0,F2,F4l SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUouiLoadF2R3non Mult1ouiMulF0F2F4ALUnonoui Mult2non Addnon Divnon Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1ALU
14
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)ll MULTD F0,F2,F4l SUBD F8,F6,F2l DIVD F10,F0,F6 ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUouiLoadF2R3non Mult1ouiMulF0F2F4ALUnonoui Mult2non AddouiSubF8F6F2ALUouinon Divnon Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1ALUAdd
15
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)ll MULTD F0,F2,F4l SUBD F8,F6,F2l DIVD F10,F0,F6l ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUouiLoadF2R3non Mult1ouiMulF0F2F4ALUnonoui Mult2non AddouiSubF8F6F2ALUouinon DivouiDivF10F0F6Mult1nonoui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1ALUAddDiv
16
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)lll MULTD F0,F2,F4l SUBD F8,F6,F2l DIVD F10,F0,F6l ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUouiLoadF2R3non Mult1ouiMulF0F2F4ALUnonoui Mult2non AddouiSubF8F6F2ALUouinon DivouiDivF10F0F6Mult1nonoui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1ALUAddDiv RAW: LD-> MULTD, SUBD MULTD-> DIVD SUBD-> ADDD WAR: DIVD-> ADDD Struct: SUBD-> ADDD
17
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4l SUBD F8,F6,F2l DIVD F10,F0,F6l ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUouiLoadF2R3non Mult1ouiMulF0F2F4ALUnonoui Mult2non AddouiSubF8F6F2ALUouinon DivouiDivF10F0F6Mult1nonoui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1AddDiv
18
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4ll SUBD F8,F6,F2ll DIVD F10,F0,F6l ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1ouiMulF0F2F4non Mult2non AddouiSubF8F6F2non DivouiDivF10F0F6Mult1nonoui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1AddDiv
19
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4ll SUBD F8,F6,F2llll DIVD F10,F0,F6l ADDD F6,F8,F2 Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1ouiMulF0F2F4non Mult2non AddouiSubF8F6F2non DivouiDivF10F0F6Mult1nonoui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1AddDiv
20
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4ll SUBD F8,F6,F2llll DIVD F10,F0,F6l ADDD F6,F8,F2ll Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1ouiMulF0F2F4non Mult2non AddouiAdddF6F8F2non DivouiDivF10F0F6Mult1nonoui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1AddDiv
21
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4ll SUBD F8,F6,F2llll DIVD F10,F0,F6l ADDD F6,F8,F2lll Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1ouiMulF0F2F4non Mult2non AddouiAdddF6F8F2non DivouiDivF10F0F6Mult1nonoui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1AddDiv RAW: MULTD-> DIVD WAR: DIVD-> ADDD
22
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4llll SUBD F8,F6,F2llll DIVD F10,F0,F6l ADDD F6,F8,F2lll Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1ouiMulF0F2F4non Mult2non AddouiAdddF6F8F2non DivouiDivF10F0F6Mult1nonoui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1AddDiv
23
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4llll SUBD F8,F6,F2llll DIVD F10,F0,F6ll ADDD F6,F8,F2lll Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1non Mult2non AddouiAdddF6F8F2non DivouiDivF10F0F6oui Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEAddDiv
24
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4llll SUBD F8,F6,F2llll DIVD F10,F0,F6ll ADDD F6,F8,F2llll Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1non Mult2non AddouiAdddF6F8F2non DivouiDivF10F0F6non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEAddDiv
25
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4llll SUBD F8,F6,F2llll DIVD F10,F0,F6ll ADDD F6,F8,F2llll Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1non Mult2non Addnon DivouiDivF10F0F6non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEDiv
26
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4llll SUBD F8,F6,F2llll DIVD F10,F0,F6llll ADDD F6,F8,F2llll Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1non Mult2non Addnon DivouiDivF10F0F6non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEDiv
27
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de scoreboard Statut des instructions InstructionsÉmiseOpérandes lusExécutionÉcriture LD F6,34(R2)llll LD F2, 45(R3)llll MULTD F0,F2,F4llll SUBD F8,F6,F2llll DIVD F10,F0,F6llll ADDD F6,F8,F2llll Statut des unités d’exécution NomUtiliséOpF iF jF kQ jQ kR jR k ALUnon Mult1non Mult2non Addnon Divnon Statut des registres de résultats F0F2F4F6F8F10F12…F30 UE
28
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: méthode de Tomasulo Origine: IBM System/ 360 modèle 91 en… 1967! Inventée par Robert Tomasulo Technique utilisée pour éliminer les « fausses » dépendances qui proviennent de l’utilisation des mêmes registres à des fins différentes. La méthode de Tomasulo est une extension de la méthode du scoreboard Idée: Lorsqu’il y a de fausses dépendances de données parce qu’on réutilise les mêmes registres, on n’a qu’à « renommer » les registres (register renaming)
29
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: méthode de Tomasulo (2) On utilise des étiquettes sur les données pour indiquer d’où elles doivent provenir lorsque le registre d’origine des opérandes n’est pas encore valide On utilise un bus de données commun (Common Data Bus, CDB) qui transporte à la fois les données et l’étiquette de leur unité d’exécution d’origine Tous les endroits qui attendent une donnée « écoutent » le CDB et attrapent les données qui leur sont destinées On utilise des « stations de réservation » pour conserver les instructions en attente d’exécution. Il peut y avoir une station de réservation par unité d’exécution, ou une par type d’unité d’exécution, ou même une seule pour toutes les unités d’exécution
30
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: architecture pour la méthode de Tomasulo
31
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: différences entre les méthodes de Tomasulo et scoreboard Tomasulo: Pas de vérification des cas de WAW et/ou WAR (l’utilisation d’étiquettes de provenance élimine ces problèmes) Utilisation du CDB pour obtenir directement les résultats, sans avoir à passer par les registres Load/Store considérés comme des unités d’exécution au même titre que les additions/multiplications/divisions
32
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3) MULTD F0,F2,F4 SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2non Mult1non Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UE
33
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)ll MULTD F0,F2,F4 SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2non Mult1non Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UELoad2 Résultat attendu de Load2
34
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)ll MULTD F0,F2,F4l SUBD F8,F6,F2 DIVD F10,F0,F6 ADDD F6,F8,F2 Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2non Mult1ouiMULTDReg(F4)Load2 Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Load2
35
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)ll MULTD F0,F2,F4l SUBD F8,F6,F2l DIVD F10,F0,F6 ADDD F6,F8,F2 Stations de réservation NomUtiliséOpV jV kQ jQ k Add1ouiSUBDReg(F6)Load2 Add2non Mult1ouiMULTDReg(F4)Load2 Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Load2Add1
36
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)ll MULTD F0,F2,F4l SUBD F8,F6,F2l DIVD F10,F0,F6l ADDD F6,F8,F2 Stations de réservation NomUtiliséOpV jV kQ jQ k Add1ouiSUBDReg(F6)Load2 Add2non Mult1ouiMULTDReg(F4)Load2 Mult2non Div1ouiDIVDReg(F6)Mult1 Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Load2Add1Div1
37
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)ll MULTD F0,F2,F4l SUBD F8,F6,F2l DIVD F10,F0,F6l ADDD F6,F8,F2l Stations de réservation NomUtiliséOpV jV kQ jQ k Add1ouiSUBDReg(F6)Load2 Add2ouiADDDAdd1Load2 Mult1ouiMULTDReg(F4)Load2 Mult2non Div1ouiDIVDReg(F6)Mult1 Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Load2Add2Add1Div1
38
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4l SUBD F8,F6,F2l DIVD F10,F0,F6l ADDD F6,F8,F2l Stations de réservation NomUtiliséOpV jV kQ jQ k Add1ouiSUBDReg(F6)Load2 Add2ouiADDDAdd1Load2 Mult1ouiMULTDReg(F4)Load2 Mult2non Div1ouiDIVDReg(F6)Mult1 Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Load2Add2Add1Div1
39
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4ll SUBD F8,F6,F2ll DIVD F10,F0,F6l ADDD F6,F8,F2l Stations de réservation NomUtiliséOpV jV kQ jQ k Add1ouiSUBDReg(F6)Val(F2) Add2ouiADDDVal(F2)Add1 Mult1ouiMULTDVal(F2)Reg(F4) Mult2non Div1ouiDIVDReg(F6)Mult1 Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Add2Add1Div1
40
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4ll SUBD F8,F6,F2lll DIVD F10,F0,F6l ADDD F6,F8,F2l Stations de réservation NomUtiliséOpV jV kQ jQ k Add1ouiSUBDReg(F6)Val(F2) Add2ouiADDDVal(F2)Add1 Mult1ouiMULTDVal(F2)Reg(F4) Mult2non Div1ouiDIVDReg(F6)Mult1 Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Add2Add1Div1
41
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4ll SUBD F8,F6,F2lll DIVD F10,F0,F6l ADDD F6,F8,F2ll Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2ouiADDDVal(F8)Val(F2) Mult1ouiMULTDVal(F2)Reg(F4) Mult2non Div1ouiDIVDReg(F6)Mult1 Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Add2Div1
42
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4ll SUBD F8,F6,F2lll DIVD F10,F0,F6l ADDD F6,F8,F2lll Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2ouiADDDVal(F8)Val(F2) Mult1ouiMULTDVal(F2)Reg(F4) Mult2non Div1ouiDIVDReg(F6)Mult1 Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Add2Div1
43
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4lll SUBD F8,F6,F2lll DIVD F10,F0,F6l ADDD F6,F8,F2lll Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2non Mult1ouiMULTDVal(F2)Reg(F4) Mult2non Div1ouiDIVDReg(F6)Mult1 Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult1Div1
44
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4lll SUBD F8,F6,F2lll DIVD F10,F0,F6ll ADDD F6,F8,F2lll Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2non Mult1non Mult2non Div1ouiDIVDVal(F0)Reg(F6) Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEDiv1
45
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4lll SUBD F8,F6,F2lll DIVD F10,F0,F6lll ADDD F6,F8,F2lll Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2non Mult1non Mult2non Div1ouiDIVDVal(F0)Reg(F6) Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEDiv1
46
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F6,34(R2)lll LD F2, 45(R3)lll MULTD F0,F2,F4lll SUBD F8,F6,F2lll DIVD F10,F0,F6lll ADDD F6,F8,F2lll Stations de réservation NomUtiliséOpV jV kQ jQ k Add1non Add2non Mult1non Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UE
47
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: Exemple de la puissance de la méthode de Tomasulo Soit une portion de code où les éléments d’un tableau doivent tous être multipliés par une certaine constante: Loop:LD F0, 0(R1) MULTD F4, F0, F2 SD 0(R1), F4 SUBI R1, R1, #8 BNEZ R1, Loop; Branchement si R1 != 0
48
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: Exemple de la puissance de la méthode de Tomasulo (2) Dans la boucle qu’on vient de voir, l’utilisation répétitive de F0, F4 et R1 fait qu’on ne peut exécuter qu’une itération à la fois si rien de spécial n’est fait On peut résoudre ce problème au niveau du compilateur, et faire ce qu’on appelle du « loop unrolling », c’est-à-dire utiliser différents registres pour éliminer les dépendances entre les itérations successives
49
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: Exemple de la puissance de la méthode de Tomasulo (3) Exemple de boucle « déroulée » (unrolled loop): LD F0, 0(R1) MULTD F4, F0, F2 SD 0(R1), F4 SUBI R1, R1, #8 LD F6, 0(R1) MULTD F8, F6, F2 SD 0(R1), F8 SUBI R1, R1, #8 LD F10, 0(R1) MULTD F12, F10, F2 … Cette méthode fonctionne au niveau du compilateur si: On connaît le nombre d’itération au moment de la compilation Il y a assez de registres dans la machine pour contenir toutes les itérations qu’on désire exécuter en parallèle
50
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: Exemple de la puissance de la méthode de Tomasulo (4) Au lieu de faire le travail de déroulement des boucles au niveau de la compilation, on peut le faire dynamiquement avec la méthode de Tomasulo! Il n’est plus nécessaire de connaître le nombre d’itérations lors de la compilation Le nombre de registres de la machine n’est plus un goulot d’étranglement Dans ce qui suit, on fera une simulation de ce qui se passe avec le système de Tomasulo. On supposera que les branchements n’existent pas (i.e., qu’ils sont prédits correctement)
51
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: 2e exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F0, 0(R1)ll MULTD F4, F0, F2 SD 0(R1), F4 LD F0, 0(R1) MULTD F4, F0, F2 SD 0(R1), F4 Stations de réservation NomUtiliséOpV jV kQ jQ k Store1non Store2non Mult1non Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UELoad1
52
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: 2e exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F0, 0(R1)ll MULTD F4, F0, F2l SD 0(R1), F4 LD F0, 0(R1) MULTD F4, F0, F2 SD 0(R1), F4 Stations de réservation NomUtiliséOpV jV kQ jQ k Store1non Store2non Mult1ouiMULTDReg(F2)Load1 Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UELoad1Mult1
53
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: 2e exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F0, 0(R1)ll MULTD F4, F0, F2l SD 0(R1), F4l LD F0, 0(R1) MULTD F4, F0, F2 SD 0(R1), F4 Stations de réservation NomUtiliséOpV jV kQ jQ k Store1ouiSDMult1 Store2non Mult1ouiMULTDReg(F2)Load1 Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UELoad1Mult1
54
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: 2e exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F0, 0(R1)ll MULTD F4, F0, F2l SD 0(R1), F4l LD F0, 0(R1)ll MULTD F4, F0, F2 SD 0(R1), F4 Stations de réservation NomUtiliséOpV jV kQ jQ k Store1ouiSDMult1 Store2non Mult1ouiMULTDReg(F2)Load1 Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UELoad2Mult1
55
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: 2e exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F0, 0(R1)ll MULTD F4, F0, F2l SD 0(R1), F4l LD F0, 0(R1)ll MULTD F4, F0, F2l SD 0(R1), F4 Stations de réservation NomUtiliséOpV jV kQ jQ k Store1ouiSDMult1 Store2non Mult1ouiMULTDReg(F2)Load1 Mult2ouiMULTDReg(F2)Load2 Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UELoad2Mult2
56
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: 2e exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F0, 0(R1)ll MULTD F4, F0, F2l SD 0(R1), F4l LD F0, 0(R1)ll MULTD F4, F0, F2l SD 0(R1), F4l Stations de réservation NomUtiliséOpV jV kQ jQ k Store1ouiSDMult1 Store2ouiSDMult2 Mult1ouiMULTDReg(F2)Load1 Mult2ouiMULTDReg(F2)Load2 Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UELoad2Mult2
57
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: 2e exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F0, 0(R1)lll MULTD F4, F0, F2l SD 0(R1), F4l LD F0, 0(R1)lll MULTD F4, F0, F2l SD 0(R1), F4l Stations de réservation NomUtiliséOpV jV kQ jQ k Store1ouiSDMult1 Store2ouiSDMult2 Mult1ouiMULTDVal(Load1)Reg(F2) Mult2ouiMULTDVal(Load2)Reg(F2) Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UEMult2
58
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: 2e exemple de Tomasulo Statut des instructions InstructionsÉmiseExécutionÉcriture LD F0, 0(R1)lll MULTD F4, F0, F2lll SD 0(R1), F4ll LD F0, 0(R1)lll MULTD F4, F0, F2lll SD 0(R1), F4ll Stations de réservation NomUtiliséOpV jV kQ jQ k Store1ouiSDVal(Mult1) Store2ouiSD Val(Mult2) = Reg(F4) Mult1non Mult2non Div1non Statut des registres de résultats F0F2F4F6F8F10F12…F30 UE
59
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: Tomasulo VS Scoreboard Tomasulo: Dénoue automatiquement les problèmes de WAR et WAW Utilisation du CDB élimine le délai de lecture des registres après qu’un résultat est obtenu (lecture directe sur le bus) Plus complexe en termes de matériel: bus plus large (multiples données+étiquettes), nécéssité de mémoire associative distribuée Scoreboard: Plus simple à réaliser Ne peut résoudre les problèmes de WAW qu’avec des « stalls »
60
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires Superscalaire: Que choisir – Tomasulo ou Scoreboard? Pour une machine assez simple, qui n’émet qu’une instruction par coup d’horloge, la complexité supplémentaire de Tomasulo est probablement trop importante pour en valoir la peine (un bon compilateur peut probablement faire aussi bien) Pour une machine complexe, qui supporte plusieurs émissions par coup d’horloge, où il est possible que l’utilisation des registres cause des problèmes de WAW, Tomasulo est probablement le meilleur choix
61
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires La quête de la performance: récapitulation Nous avons vu jusqu’ici que pour améliorer la performance des processeurs, on peut: Utiliser le pipeline (instructions découpées en petits éléments qu’on peut exécuter en parallèle, amélioration de la période de l’horloge) Utiliser plusieurs unités d’exécution en parallèle, qui ont possiblement des temps de latence différents (permet l’ajout de matériel dédié pour produire plus rapidement des multiplications, divisions et additions point flottant) Utiliser des méthodes superscalaires pour parvenir à exécuter plus d’une instruction par coup d’horloge Scoreboard Tomasulo
62
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes superscalaires La quête de la performance: récapitulation (2) Nous avons aussi vu qu’il existe d’autres facteurs qui influencent la performance: 1.Les branchements 2.L’accès à la mémoire (lecture/écriture) Pour la suite, nous verrons ce qu’on peut faire d’abord pour le premier facteur (les branchements), et ensuite pour l’accès à la mémoire
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.