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.