Logo ESI
Bannière
ESI talents

Bienvenue



Retour - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Syllabus ARCH
Télécharger



Crédits : 4

ARCH
Architecture
Computer architectures

Coef : 4
VH Cours : 30.00
VH TD : 30.00
Pré-requis :
Architecture des ordinateurs I, Architecture des ordinateurs II.

Ingénierie des Compétences

Familles de Compétences
  • CF7 : Concevoir, mettre en œuvre et administrer des infrastructures complexes et réparties
Type de compétence: TEC : Technique, MET : Méthodologique, MOD : Modélisation, OPE : Opérationnel,
Niveau de compétence:
Base Intermédiaire Avancé


Famille de Compétence Compétence Elément de Compétence Type
CF7 C7.8: Exploiter des architectures parallèles et avancées pour accélérer l'exécution des programmes C78.3: Développer des programmes performants sur des architectures parallèles et avancées TEC
C78.4: Analyser les types d'architectures parallèles et identifier les différents niveaux de parallélisme dans les architectures MET
C78.2: Déterminer les types de mécanismes d’accélérations permettant d’améliorer les performances des programmes OPE
C78.5: Exploiter diverses API pour mettre en oeuvre des programmes parallèles TEC
C78.1: Evaluer l'impact des choix d’architectures générales et spécialisées sur l'exécution d'un programme OPE

Description du programme de la matière

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

Travail Personnel:

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

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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -