Objectifs: | Ce cours permet à l’étudiant de comprendre la relation entre la performance et la structure des différents composants fonctionnels d’un processeur. A l’issue de ce cours, l’étudiant comprendra comment l’architecture d’un processeur affecte la performance des programmes exécutés sur la machine. Le cours présente les techniques proposées pour améliorer la performance d’un processeur en réalisant souvent des compromis sur la structure des différents composants tels que la fréquence d’horloge du CPU, la taille mémoire, la mémoire cache, etc. Les techniques présentées sont: la hiérarchie mémoire, le pipeline, les architectures RISC, superscalaires, multicores et parallèles. |
Contenu: | I. Introduction : Evolution des architectures (2h) (chapitre modifié, 2h au lieu de 4h) 1. Historique de l’évolution des architectures 2. Evolution logicielle 3. Evolution matérielle 4. Architectures spécialisées. II. Mesure des performances d’une architecture à jeu d’instructions (2h) 1. Introduction 2. Equations de performance de l'UC 3. Unités de mesure des performances 4. Programmes de tests 5. Accélération des calculs, loi d’Amdahl III. Hiérarchie mémoire (2h) 1. Loi de Moore, temps d’accès et temps de cycle mémoire, 2. Principes de localité 3. Notion de hiérarchie mémoire 4. Principe des mémoires cache 5. Les défauts de cache 6. Organisations des mémoires cache 7. Remplacement d'une ligne en cache 8. Ecriture en mémoire cache 9. Niveaux de cache 10. Taille du cache 11. Mémoire virtuelle IV. Microarchitectures pipelinées (6h) (une séance de 2 heures est ajoutée à ce chapitre) 1. Motivation 2. Principe du pipeline 3. Contraintes du pipeline 4. Aléas structurels et leur résolution 5. Aléas de données et leur résolution 6. Aléas de contrôle et leur résolution 7. Performances des systèmes pipelinés V. Architectures superscalaires et VLIW (3h) 1. Motivation 2. Principe des microcarchitectures superscalaires 3. Contraintes de lancement 4. Aléas structurels et leur résolution 5. Aléas de données et leur résolution 6. Aléas de contrôle et leur résolution 7. Remise en ordre 8. Exemples de processeurs superscalaires 9. Principe des architectures VLIW 10. Déroulement des instructions 11. Format des instructions 12. Comparaison entre processeurs VLIW et superscalaires VI. Architectures CISC et RISC (3h) 1. Historique et contexte d’apparition des processeurs CISC 2. Caractéristiques, et jeux d’instructions des CISC (exemples et caractéristiques) 3. Inconvénients des processeurs CISC 4. Exemples de machines CISC 5. Justification de l’apparition des processeurs RISC 6. Caractéristiques des processeurs RISC 7. Jeu d’instruction des processeurs RISC 8. Gestion des variables locales dans les processeurs RISC (utilisation des registres et fenêtres de registres) 9. Gestion des variables globales 10. Rôle du compilateur 11. Techniques d’accélération des processeurs RISC 12. Exemples de processeurs RISC 13. Comparaison CISC/RISC 14. Tendances des processeurs actuels VII. Processeurs multicore (4h) (4h au lieu de 3h) 1. Historique des processeurs multicore 2. Définition d’un processeur multicore 3. Avantages des processeurs multicore 4. Constructeurs et marché du multicore 5. Applications des processeurs multicore 6. Fonctionnement d’un processeur multicore 7. Techniques de fabrication des processeurs multicore 8. Mise en œuvre de la technologie multicore 9. Comparaison des processeurs multicore 10. Avenir des processeurs multicore VIII. Architectures multiprocesseurs (4h) (4h au lieu de 3h) 1. Justification du parallélisme 2. Classification de Flynn, 3. Les architectures SISD, 4. Les architectures SIMD 5. Les architectures MISD 6. Les architectures MIMD 7. Critères de classification des architectures MIMD 8. MIMD à mémoires partagée( les SMP) 9. MIMD à mémoires distribuée (les clusters de PC) 10. Comparaison clusters/SMP 11. Systèmes UMA et NUMA 12. Les réseaux d’interconnexion 13. Exemples de processeurs MIMD |
Bibliographie: | Parallel computer architecture, A Hardware/Software approach, David E. Culler, Jaswinder Pal Singh and Anoop Gupta, Morgan Kaufmann Publishers, ISBN: 1-55860-343-3, 1999. Introduction to Digital Systems, Miloš Ercegovac, University of California at Los Angeles, Tomás Lang, University of California at Irvine, Jaime Moreno, ISBN: 0-471-52799-8, Wiley Publishers, 1999. The Architecture of Computer Hardware and System Software: An Information Technology Approach, Third Edition, Irv Englander, Bentley College, ISBN: 0-471-07325-3, Wiley Publishers, 2003. Understanding Parallel Supercomputing, R. Michael Hord, ISBN: 0-7803-1120-5, Wiley-IEEE Press, March 2001. Computer Organisation and Architecture, de B.S. Chalk, Robert Hind, Antony Carter, Éditeur : Palgrave Macmillan, 2nd Ed edition, ISBN : 1403901643 , (10 octobre 2003) Fundamentals of Computer Architecture, de Mark Burrell, Éditeur : Palgrave Macmillan, ISBN : 0333998669, 26 septembre 2003. Computer Systems Design and Architecture (International Edition), de Vincent P. Heuring, Harry F. Jordan, Éditeur : Prentice-Hall, 2nd Ed edition, ISBN : 0131911562 ISBN : 0131911562, 30 novembre 2003. |