Architecture

ESI > Infrastructure > Architecture

Description du programme de la matière:
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.

ID Cours
ARCH
Niveau
1ère année CS
Semestre
Semestre 2
Crédit
4
Volumes Horaires Cours
30.00
Coef
4
Volumes Horaires TD
30.00
Domaine
Infrastructure

Pré-requis:

Architecture des ordinateurs I, Architecture des ordinateurs II.

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

Contenu

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

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.

We are using cookies to give you the best experience. You can find out more about which cookies we are using or switch them off in privacy settings.
AcceptPrivacy Settings

GDPR