Architecture des ordinateurs

CompArch
Abstract

Ce cours présente l'architecture des systèmes à base de microprocesseurs, depuis les structures internes des processeurs eux-mêmes jusqu'aux principaux périphériques qui les entourent et constituent un ordinateur complet, capable d'exécuter des systèmes d'exploitation comme GNU/Linux, Android, Windows, iOS...

Modalités pédagogiques : Cours magistraux, travail en équipe, séances de travaux pratiques et mini-conférences d'industriels.

Règles du cours : La participation aux séances de travaux pratiques ainsi qu’aux mini-conférences est obligatoire.

Bibliography

Livre : PATTERSON D. A., HENNESSY J. L. Computer organization and design: the hardware software interface. Morgan Kaufmann, 2013, 800p.

Requirements

Connaissances de base en programmation logicielle (types de données, structures de contrôle...)

Description
  • Les types de microprocesseurs, depuis les plus simples jusqu'aux plus puissants, et leurs jeux d'instructions.
  • Les interactions entre le matériel et le logiciel, les caches et la mémoire, les périphériques, le support matériel indispensable aux systèmes d'exploitation...
  • TPs permettant d'observer un processeur en action pendant l'exécution d'applications logicielles, et de comprendre comment il interagit avec son environnement.
  • Mini-conférences données par des industriels, présentant les dernières générations de processeurs et les défis liés à leur conception et à leur vérification.
  • https://perso.telecom-paristech.fr/pacalet/CompArch/

Objectifs d'aprentissage :

  • Comprendre les relations entre les concepts logiciels (fonctionnalité, performance, parallélisme, sécurité...) et les machines matérielles sous-jacentes (processeurs, périphériques...).
  • Découvrir les techniques les plus importantes utilisées par les vendeurs de processeurs et/ou d'ordinateurs pour améliorer les performances de leurs produits (pipelining, caches, prédiction de branches...) et les problèmes qu'elles posent (dangers des pipelines, cohérence des caches...).
  • Comprendre le support matériel des systèmes d'exploitation (modes des processeurs, unités de gestion de la mémoire, temporisateurs, interruptions, opérations atomiques...)
  • Se familiariser avec les compromis classiques entre performance, coût et complexité des systèmes informatiques.
Nombre d'heure : 42 heures

Evaluation: Examen final (50%), rapports de laboratoire (25%), contributions au matériel de cours avec textes, présentations, vidéos, exercices, laboratoires... (25%)