Systèmes et architectures avancées

Systèmes et architectures avancées   GIN4109
Enseignant:
Email:
Durée totale du cours: 22.5 H
Option concernée : Tronc Commun
Semestre : 3
Nombre de crédits : 2
Modules

spécialisés

Modules de

base

Sciences et techniques de

l’ingénierie

Préparation à la carrière professionnelle
X

 

Nombre d’heures Activités hors classe
22.5 18
cours TD TP
22.5  

 

Code      : GIN4109       Systèmes et architectures avancées

                                                                 

Volume Horaire      : 1h30 Cours intégrés (par semaine)

Objectifs d’apprentissage et compétences visées

La présente unité traite les technologies et architectures matérielles présentes dans les ordinateurs contemporains. Les points discutés dans le cours sont en relation avec les avancées atteintes du point de vue organisations, architectures et technologies adoptées par les ordinateurs et par leurs composants. Les travaux pratiques de ce cours sont une opportunité de découvrir les méthodes de programmation permettant de bénéficier de la puissance des composants matériels.

A La fin de ce module, l’étudiant doit :

  • Connaître les principales technologies des ordinateurs
  • Être capable de caractériser plusieurs types d’architectures matérielles.
  • Savoir bénéficier des puissances de chaque

Contenu :

  • Architectures matérielles et performance
    • Définition de performance
    • Métriques de performance
    • Facteurs de performance
    • Evaluation de Performance (Benchmarks)
  • Organisation des machines
    • Principe d’un ordinateur
    • Classification des machines (Flynn, Hwang)
    • Supercalculateurs
    • Clusters
    • Grilles
  • Processeurs
    • Architectures (RISC /CISC /VLIW)
    • Processeurs vectoriels et pipelining
    • Multi-processing (UMA /NUMA)
    • Multicores
    • GPU et GPGPU
    • Co-processeurs de calcul (Xéon PHI)
  • Mémoire
    • Hiérarchie mémoire
    • Mémoire centrale
    • Mémoire cache
    • Mémoire virtuelle
    • Mémoires virtualisées
    • Utilisation des niveaux mémoires et optimisation de programmes
  • Disques
    • Disques magnétiques
    • Disques optiques
    • Disques SSD
    • RAID
  • Virtualisation
    • Principe
    • Architecture des hyperviseurs
    • Exemples d’hyperviseurs
    • Virtualisation et Cloud

Méthodes d’enseignement et d’apprentissage

  • Enseignement frontal (magistral) avec des exemples à résoudre en
  • Exercices théoriques et études de cas (présentation et discussion).
  • Travaux pratiques (laboratoire)
  • Travaux à faire à domicile (mini-projet, compte-rendu, …)

Connaissances et compétences pré-requises

  • Architectures des ordinateurs
  • Programmation C

Références bibliographiques

  • Un polycopié (Notes du cours) de l’enseignant sera
  • Autres références sous forme de tutoriaux, manuels ou documents à télécharger
  • Les recommandations bibliographiques suivantes doivent être considérées :
    • Douglas E. Comer, « Essentials of Computer Architecture », Pearson, 2005, 394p, ISBN : 0- 13-149179-2.
    • David A. Patterson & John L. Hennessy, « Computer Organization and Design, The Hardware / Software Interface », Morgan Kaufmann, Fourth edition 2009, 912p, ISBN : 0123744938

Modalité d’évaluation

  • 40% Contrôle continu (Test, Assiduité, Devoir surveillé, travaux non présentiels, …)
  • 60% Examen semestriel

Résultats d’apprentissage :

Après avoir réussi ce cours, les étudiants seront capables de :

  • Démontrer les concepts de parallélisme matériel/logiciel.
  • Décrire les caractéristiques architecturales des processeurs avancés.
  • Comprendre les compromis en matière de performances du programme dictés par la conception informatique moderne
  • Discuter de l’organisation de la mémoire et des techniques de cartographie.
  • Concevoir des programmes ayant à l’esprit la hiérarchie de la mémoire et la mise en cache
  • Concevoir des programmes pour des architectures parallèles avec le parallélisme à l’esprit
  • Analysez différents schémas de stockage et utilisez ces connaissances dans un contexte industriel réel.
  • Interprétez les performances de différents processeurs en pipeline.
  • Expliquer le flux de données dans les algorithmes arithmétiques
  • Développement de logiciels pour résoudre des problèmes à forte intensité de calcul.
  • Familiarisez-vous avec les orientations modernes de la conception de l’architecture informatique.

Laisser un commentaire

Défiler vers le haut
Need Help? Chat with us