Objectif
L’objectif de ce module est de démystifier le fonctionnement d’un ordinateur, en décrivant le fonctionnement des différents éléments qui le composent. On fera notamment découvrir aux étudiants comment tout calcul complexe se réduit à un enchaînement d’opérations élémentaires sur des bits, comment les structures de contrôle des langages de programmation peuvent être réalisées à l’aide des instructions d’un microprocesseur, et comment le processeur interagit avec son environnement via des périphériques. L’apprentissage est principalement axé sur la pratique, avec la conception d’un microprocesseur simple dans un simulateur, et la programmation d’un microcontrôleur équipé de périphériques simples.
Compétences acquises dans ce module :
- analyser le fonctionnement d’un processeur
- analyser les interactions entre un processeur et son environnement (mémoire, périphériques, interruptions)
- déterminer l’impact des structures de contrôle des langages de programmation sur l’exécution des programmes
- être capable de décrypter la fiche descriptive d’une carte ou d’un ordinateur.
Enseignants
- Frédéric Boulanger frederic.boulanger@centralesupelec.fr
- Henri Delebecque henri.delebecque@centralesupelec.fr
- Gianluca Quercini gianluca.quercini@centralesupelec.fr
Bureaux d'étude
- Premier BE : logique combinatoire, bascules, registres, chemin de données d'un processeur
- Deuxième BE : traduction de quelques constructions Python en langage d'assemblage
- Troisième BE : entrées-sorties simples, interruptions
Études de laboratoire
- Première étude : conception d'un microprocesseur
- Deuxième étude : entrées-sorties
Informations complémentaires
- Des volts aux booléens : réalisation de portes logiques à l'aide de transistors
- Des booléens aux entiers : arithmétique binaire avec des portes logiques
- Arithmétique binaire : représentation des entiers, complément à 2, retenues et débordements
- Circuits séquentiels : construction de circuits qui mémorisent des informations
- Machine de cours : le mini processeur ARM vu en cours
Ouvrages
Andrew Tanenbaum, Architecture de l'ordinateur, 4e édition, 2001
Andrew Tanenbaum, Structured Computer Organization, 6th edition, 2012
John Hennessy, David Patterson, Computer Organization and Design: The Hardware/Software Interface, 5th edition, 2013
John Hennessy, David Patterson, Organisation et conception des ordinateurs : l'interface matériel/logiciel, 1994
John Hennessy, David Patterson, Computer Architecture: A Quantitative Approach, 5th edition, 2011