220 likes | 367 Views
Ch3 : Les Processeurs Superscalairs. Niar Smail Master 1 Info Smail.Niar@univ-valenciennes.fr Dispo sur www.univ-valenciennes.fr/lamih/roi/niar. Administration. Sujet DS et Exam années passées dispo. Page web
E N D
Ch3 : Les Processeurs Superscalairs Niar Smail Master 1 Info Smail.Niar@univ-valenciennes.fr Dispo sur www.univ-valenciennes.fr/lamih/roi/niar Smail.Niar@univ-valenciennes.fr
Administration • Sujet DS et Exam années passées dispo. Page web • Stage étranger Montreal(CA), Barcelona(ES) me contacter URGENT!! (voir affichage ISTV pour réunion d’info sur les stages Socrates/Erasmus) Smail.Niar@univ-valenciennes.fr
6 PM 7 8 9 Time 30 40 40 40 40 20 T a s k O r d e r A B C D 3.1 Rappel des notions vues sur le Pipeline • Le pipeline n’améliore pas la latence d’une instruction. Il 5 faut cycles pour une inst. Mais le temps pour exécuter toute la charge (le prog) est réduit • Plusieurs instructions exécutées en // (ILP Instruction Level Parallelism) • speedup idéal = Nombre d ’étages • La vitesse du pipeline est limitée • par la phase la plus longue • (synchronisation sur le plus long) Smail.Niar@univ-valenciennes.fr
Eviter les aléas en utilisant un compilateur optimisant Exemple a = b + c; d = e – f; avec a, b, c, d ,e, and f en mémoire. Code Lent: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SW d,Rd Code Rapide: 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 Smail.Niar@univ-valenciennes.fr
Suite….. • Les Aléas réduisent les perf de l ’archi. : • 3 types d ’Aleas : Structurel, Données et Contrôle • 1 Structurel • Dupliquer les unités exemple • 2 Données: • Par « Direct forwarding DF»: fonctionne bien sauf pour les LW (cf. trans. suivant) et les opérations à grande latence (Virgule flottante) • Ex : division en DP qui nécessite 10 cycles : ^m avec DF il faut suspendre le pipeline 10 cycles • Par le compilateur: Implique une connaissance fine de l ’architecture Smail.Niar@univ-valenciennes.fr
Aléas de données dans les processeurs pipelinés • Dans certains processeurs la profondeur du pipeline est variable (suivant le type d ’instruction). Les instructions risques de finir dans le désordre Smail.Niar@univ-valenciennes.fr
Les types de dépendances de données Deux instructions : i suivit de j • Vrai dépendance : Lecture Après Ecriture, Read After Write RAW i utilise une donnée calculé par j ADDD F2, F4, F6 //addition double précision 64 bits SUBD F8, F2, F4 //Soustraction DP Smail.Niar@univ-valenciennes.fr
Dépendance entre instructions : Les fausses dépendances • Antidependence (WAR) écriture après Lecture j écrit dans un reg ou une position mémoire que l ’instrction i lit, mais i s ’exécute avant exemple: DIVD f2, f4, r3 ADDD f4, r5, r6 // ADDD ne doit pas modifier f4 si DIVD n ’a pas encore lu ces données • Output dependence(WAW) écriture après écriture • i et j écrivent toutes les deux dans le même reg ou position mémoire. J doit Ecrire la dernière exemple: DIVD f2, f2, f43 ADDD f2, f4, f6 Smail.Niar@univ-valenciennes.fr
Les fausses dépendances comment les résoudre • Solution simple : Eliminer les WAR: Lire les registres toujours à la même phase (lors du décodage) Eliminer les WAW : Les écritures dans les registres se font dans l ’ordre de lancements des instructions dans la dernière phase Smail.Niar@univ-valenciennes.fr
3.2 Est ce qu ’il est possible d ’avoir un CPI < 1 ? • CPI < 1 : implique moins d ’un cycle pour exécuter une instruction !!!!! Impossible • Mais : Exécuter plusieurs instructions par cycle : possible • ex : si on peut exécuter deux instructions en parallèle par cycle. On a CPI = 1/2!!! Bravo Smail.Niar@univ-valenciennes.fr
Deux versions : Superscalaire et VLIW • Un processeur superscalaire un processeur capable d ’exécuter plusieurs instructions par cycles horloge • la sélection des instructions à lancer est réalisée dynamiquement (cours de l ’exécution) • Un processeur VLIW (Very long instruction Word) • un processeur capable d ’exécuter plusieurs instructions par cycles horloge • Une instruction VLIW est une concaténation de plusieurs instructions simple exécutées simultanément • La sélection des instructions // est faite par le compilateur avant exécution Smail.Niar@univ-valenciennes.fr
Les superscalaires Vs. Les VLIW Smail.Niar@univ-valenciennes.fr
SS Vs. VLIW Smail.Niar@univ-valenciennes.fr
Le processeur Crusoe de Transmeta www.transmeta.com • un processeur à mot très long VLIW (128 bits) compatible X86 • seulement 2 watts à 700 MHz contre 14 watt pour Pentium III mobile à 650 MHz. Smail.Niar@univ-valenciennes.fr
Philips TRIMEDIA : Un processeur VLIW pour les applications multimedia • Chaque Instruction contient 5 opération • 32 KB de cache Instructions (compressé) • Mémoire cache 16KB à deux ports • Opérations gardées • Rd: Rdest = mul Rsrc1, Rsrc2 • Si Rd==1 alors l’instruction est réalisée • Si non l’instruction n’est pas réalisé • Jeu d’instructions Multimedia: • Une opération sur une vecteur de données Smail.Niar@univ-valenciennes.fr
Pour avoir un CPI<1, il faut lancer plusieurs instructions par cycle, Un exemple • Superscalar MIPS: 2 instructions par cycle: • Un pour les instruction flottantes (ADDS, ADDD, SUBS, SUBD, ….) • Un pour le reste des instructions (Ins. Entier, Ins. Mémoire, Branch…) • Lire (Fetch) 64-bits/cycle horloge Type Pipe Stages Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB Smail.Niar@univ-valenciennes.fr
Sperscalaire VS. VLIW Point commun : Superscalaire (SS) et VLIW lancement de plusieurs instructions en parallèle Différences : • 1 lancement • SS les instructions sont lancées depuis un programmes séquentiel • VLIW : le compilateur arrange les instructions en t-uples • 1 tuple = groupe d’instructions sans aucune dépendance (ni RAW,ni WAR ni WAW) Smail.Niar@univ-valenciennes.fr
Différences SS /VLIW • 2 Gestion des instructions • SS: La gestion (contrôle) est faite de façon dynamique à la volée • VLIW : statique, on sait d ’avance à quel moment une instruction sera exécutée • 3 Degrés du parallélisme (nombre d ’instruction terminées /cycle) • SS : Dynamiquement par hardware entre zéro et N • VLIW : Fixe toujours n (en comptant les nop) Smail.Niar@univ-valenciennes.fr
Suite ... • 4 Lancement dans l ’ordre • SS : il est possible de lancer les instructions dans le désordre i.e : on n ’est plus obligé de lancer i avant j. Dés qu ’une instruction à ses opérandes prêtes, elle est exécutée La terminaison des instructions peut se faire dans • l ’ordre : on garde dans une liste l ’ordre dans le quelle on été lues les instr. Cette liste est utilisée dans la phase WB • dans le désordre : possible mais faire attention aux exceptions • VLIW : lancement dans l ’ordre et terminaison aussi bien sûr Smail.Niar@univ-valenciennes.fr
Différences SS/VLIW (suites) … • Complexité de l ’architecture : • VLIW : Structure relativement simplifiée (tout les problèmes ont été réglés par le compilateur) • SS : Très complexe Smail.Niar@univ-valenciennes.fr
TD : Exposé pour le TD dans 3 semaines • Allez sur www.hardware.fr et lire • Pentium4 et • ??????????????????????????????????? • Athlon 64 bits • http://www.hardware.fr/articles/478/page1.html • Allez dans www.apple.com/powermac lire sur powerPc G5 Smail.Niar@univ-valenciennes.fr