Pré-requis:
Architecture des ordinateurs I, Architecture des ordinateurs II.
Familles de Compétences
Type de compétence:
TEC : Technique
MET : Méthodologique
MOD : Modélisation
OPE : Opérationnel
Niveau de compétence:
Base | Intermédiaire | Avancé |
|
I. Introduction : Evolution des architectures (2h) (chapitre modifié, 2h au lieu de 4h)
Historique de l’évolution des architectures
Evolution logicielle
Evolution matérielle
Architectures spécialisées.
II. Mesure des performances d’une architecture à jeu d’instructions (2h)
Introduction
Equations de performance de l’UC
Unités de mesure des performances
Programmes de tests
Accélération des calculs, loi d’Amdahl
III. Hiérarchie mémoire (2h)
Loi de Moore, temps d’accès et temps de cycle mémoire,
Principes de localité
Notion de hiérarchie mémoire
Principe des mémoires cache
Les défauts de cache
Organisations des mémoires cache
Remplacement d’une ligne en cache
Ecriture en mémoire cache
Niveaux de cache
Taille du cache
Mémoire virtuelle
IV. Microarchitectures pipelinées (6h) (une séance de 2 heures est ajoutée à ce chapitre)
Motivation
Principe du pipeline
Contraintes du pipeline
Aléas structurels et leur résolution
Aléas de données et leur résolution
Aléas de contrôle et leur résolution
Performances des systèmes pipelinés
V. Architectures superscalaires et VLIW (3h)
Motivation
Principe des microcarchitectures superscalaires
Contraintes de lancement
Aléas structurels et leur résolution
Aléas de données et leur résolution
Aléas de contrôle et leur résolution
Remise en ordre
Exemples de processeurs superscalaires
Principe des architectures VLIW
Déroulement des instructions
Format des instructions
Comparaison entre processeurs VLIW et superscalaires
VI. Architectures CISC et RISC (3h)
Historique et contexte d’apparition des processeurs CISC
Caractéristiques, et jeux d’instructions des CISC (exemples et caractéristiques)
Inconvénients des processeurs CISC
Exemples de machines CISC
Justification de l’apparition des processeurs RISC
Caractéristiques des processeurs RISC
Jeu d’instruction des processeurs RISC
Gestion des variables locales dans les processeurs RISC (utilisation des registres et fenêtres de registres)
Gestion des variables globales
Rôle du compilateur
Techniques d’accélération des processeurs RISC
Exemples de processeurs RISC
Comparaison CISC/RISC
Tendances des processeurs actuels
VII. Processeurs multicore (4h) (4h au lieu de 3h)
Historique des processeurs multicore
Définition d’un processeur multicore
Avantages des processeurs multicore
Constructeurs et marché du multicore
Applications des processeurs multicore
Fonctionnement d’un processeur multicore
Techniques de fabrication des processeurs multicore
Mise en œuvre de la technologie multicore
Comparaison des processeurs multicore
Avenir des processeurs multicore
VIII. Architectures multiprocesseurs (4h) (4h au lieu de 3h)
Justification du parallélisme
Classification de Flynn,
Les architectures SISD,
Les architectures SIMD
Les architectures MISD
Les architectures MIMD
Critères de classification des architectures MIMD
MIMD à mémoires partagée( les SMP)
MIMD à mémoires distribuée (les clusters de PC)
Comparaison clusters/SMP
Systèmes UMA et NUMA
Les réseaux d’interconnexion
Exemples de processeurs MIMD
TP1 : Hiérarchie Mémoire: Les mémoires caches
Outil : CPU-OS
Objectifs:
Manipuler deux différentes organisations de la mémoire cache à savoir la mémoire cache
à placement direct et la mémoire cache associative par ensemble
Comprendre les limites de l’organisation en placement direct
Expliquer l’effet de la taille du cache et son organisation sur la performance du cache
TP2 : Architecture pipeline et prédiction de branchement
Outil : CPU-OS
Objectifs:
Comparer une exécution séquentielle et parallèle d’un programme.
Découvrir les problèmes de l’architecture pipeline.
Intégrer et étudier des solutions pour résoudre le problème des aléas dans l’architecture
pipeline.
TP3 : Architectures Parallèles et OpenMP
Outil : Langage C et API OpenMP
Objectifs :
Identifier le parallélisme dans un code donné pour une exécution sur une architecture
multicore
Utiliser effectivement les directives, fonctions et variables OpenMP pour paralléliser un
programme en vue d’une exécution sur une architecture multicore
Comparer les exécutions séquentielle et parallèle d’un même programme afin de
déterminer l’accélération obtenue
TP4 : Architectures Parallèles – Programmation Parallèle Hybride
Outil : Langage C et API OpenMP et MPI
Objectifs :
Utiliser MPI pour distribuer un code sur plusieurs processeurs avec mémoire distribuée
Utiliser OpenMP pour distribuer un code sur plusieurs processeurs avec mémoire partagée
Réaliser la programmation parallèle hybride en utilisant OpenMP et MPI pour partager un
code sur plusieurs multiprocesseurs avec mémoire distribuée et chaque multiprocesseur
utilise une mémoire partagée
Comparer les exécutions séquentielle et parallèle d’un même programme afin de
déterminer l’accélération obtenue
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.