1 / 460

Architecture des ordinateurs II GEI 431 - Frédéric Mailhot

Architecture des ordinateurs II GEI 431 - Frédéric Mailhot. 1. Introduction 2. Concepts de base du pipeline 3. Utilisation d'unités d'exécution multiples 4. Méthodes superscalaires et VLIW 5. Structures superscalaires 6. Gestion avancée des branchements 7. Études de cas

gazit
Télécharger la présentation

Architecture des ordinateurs II GEI 431 - Frédéric Mailhot

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architecture des ordinateurs IIGEI 431 - Frédéric Mailhot 1. Introduction 2. Concepts de base du pipeline 3. Utilisation d'unités d'exécution multiples 4. Méthodes superscalaires et VLIW 5. Structures superscalaires 6. Gestion avancée des branchements 7. Études de cas 8. Machines "Dataflow" 9. Développements futurs10. Mémoires caches 11. Multiprocesseurs 12. VHDL 13. Introduction à la synthèse logique 14. BDD et algorithme de buffering

  2. Introduction Objectifs du cours Évaluation Références Matière du cours: - Techniques modernes d’architecture - Les systèmes parallèles - La synthèse automatisée de circuit

  3. Matière couverte • Amélioration des derniers 10 ans • Comprendre ce qui s’en vient d’ici 10 ans

  4. Pourquoi l’évolution de l’architecture? • Loi de Moore: 2X plus de transistors / 18 mois • Depuis 15 ans: environ 1000X (de 4 à 0.13 microns) • En 2008: 0.05 micron, 100M transistors, plusieurs GHz • Différence croissante entre le délai intra-chip et le délai extra-chip • Importance croissante des interconnections entre les transistors • Corrolaire de la loi de Moore: augmentation exponentielle de la puissance dissipée (à voltage constant)

  5. Défis • Taille et puissance • Comment gérer l’augmentation de puissance consommée? (prédite par Dennart en ’70) • Performance du système • Qu’est-ce qui définit la performance? • Où doit-on miser pour augmenter la performance? • Complexité • Comment gérer le design de systèmes de plus en plus gros?

  6. Force motrice derrière l’architecture des ordinateurs • Fin des années ’80, début ’90: • Performance des processeurs • Fin des années ’90, début 2000: • Puissance • Accès à la mémoire lent • Fiabilité • Coût de développement, maintenance de logiciel • Désuétude rapide • Performance des processeurs

  7. Qu’allons-nous étudier ici? • Techniques d’amélioration de la performance des processeurs utilisées depuis 10 ans: • Parallélisme (MLP, ILP) • Pipelines / superscalaires / VLIW • Multiprocesseurs • Synchronisation • Techniques modernes de conception de circuits • Synthèse de haut niveau, logique • HDLs (Hardware Description Languages) • Technologies-cibles: ASIC, FPGA

  8. Comment améliorer la performance? • Matériel • Dispositifs • Ensemble d’instructions (RISC vs CISC) • Conception • Techniques de synthèse • Techniques de test • Parallélisme • MLP (Machine Level Parallelism) • ILP (Instruction Level Parallelism)

  9. Matériel: Amélioration des dispositifs • Plus grande intégration (Moore / Dennart) • Utilisation nouvelle des composants • FPGA: utilisation d’éléments reconfigurables • Protocoles d’entrées/sorties différents • E.g. Rambus

  10. Matériel: Amélioration des dispositifs • Silicium • Sous 0.1 um (IBM prévoit 0.05 um en 2008) • Oxyde trop mince -> effet tunnel • Variations locales du dopage • Transport ballistique • DIBL (Drain-Induced Barrier Lowering) • Arseniure de Gallium (AsGa), Germanium-Silicium (siGe) ? • Communications optiques?

  11. Matériel: Amélioration des dispositifs (2) • Superconducteurs à haute température? • Systèmes quantiques? • Nanotechnologie?

  12. Matériel: ensemble d’instructions • RISC: instructions plus simples à décoder • Plus d’instructions pour la même tâche • Chaque instruction s’exécute plus rapidement • CISC: instructions complexes • VLIW (Very Large Instruction Word)

  13. Conception: techniques de synthèse • Langages de haut niveau (VHDL, Verilog) • Synthèse de haut niveau • Synthèse logique • Placement / Routage

  14. Conception: techniques de test • Vecteurs de test • Modèle stuck-at • JTAG et Full / Partial Scan • BIST (Built-In Self-Test)

  15. Parallélisme: MLP • Machines massivement parallèles • Thinking machines • Masspar • NOW (Network of Workstations) • Multiprocesseurs • ASCI White • Beowulf

  16. Parallélisme: ILP • Pipelines • Méthodes superscalaires • Scoreboard, Tomasulo • Prédiction des branches • Méthodes statiques / dynamiques • Spéculation (EPIC – Explicitely Parallel Instructions Computer) • Machines « multithreaded »

  17. Systèmes Pipeline Les systèmes modernes utilisent tous des architectures pipelines – Pourquoi?

  18. Matière couverte • Principes de base des systèmes pipelines • Utilisation de pipeline dans un microprocesseur simple • Problèmes rencontrés

  19. 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?

  20. Lavage du linge: 1ère itération • L: 30 • S: 40 • P: 20 • 4 * (30 + 40 + 20) = 360 minutes • On termine à minuit

  21. 30 40 20 30 40 20 30 40 20 30 40 20 30 70 110 150 190 210 Lavage du linge: 2e itération: pipeline • L:30, S: 40, P: 20 • On superpose le lavage, séchage et pliage: • On termine à 21h30 • Régime permanent: • 100 min/pers

  22. 30 50 30 50 30 50 30 50 30 80 130 180 230 Lavage 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 • On termine à 21h50 • Régime permanent: • 100 min/pers

  23. 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 60 90 120 140 160 180 Lavage du linge: 4e itération: 2 sécheuses • L:30, S1: 20, S2: 20, P: 20 • On termine à 21h00 • Régime permanent: • 110 min/pers

  24. 30 15 20 20 30 20 20 15 30 20 20 15 30 20 20 15 30 60 90 120 140 160 180 Lavage du linge: 5e itération: 1 sécheuse « haute température » • L:30, S1: 15, S2: 20, P: 20 • On termine à 21h00 • Régime permanent: • 110 min/pers

  25. 30 15 15 15 15 15 15 15 15 20 30 20 30 20 30 20 30 60 90 120 150 170 Lavage du linge: 6e itération: 2 sécheuses « haute température » • L:30, S1: 15, S2: 15, P: 20 • On termine à 20h50! • Régime permanent: • 80 min/pers

  26. 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

  27. Le processeur DLX (De Luxe)

  28. Vue « pipeline » du DLX

  29. 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)

  30. 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)

  31. É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

  32. 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

  33. Le DLX – pipeline à 5 étages

  34. 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

  35. 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

  36. Les obstacles majeurs au pipeline • Problèmes structuraux • Problèmes de dépendances de données • Problèmes de contrôle

  37. Exemple de problème de structure

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

  39. Pipelines: 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

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

  41. Solution au RAW: le « forwarding »

  42. Autre exemple de « forwarding »

  43. Pipeline: 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èreinstruction 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)

  44. 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

  45. Certains « stalls » peuvent être évités, mais pas tous

  46. Effet d’un « stall » sur le pipeline

  47. 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

  48. Pipeline: 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 »

  49. Exemple de « pipeline scheduling » • Soient les instructions suivantes: A = B + C D = 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

  50. 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

More Related