~~NOTOC~~ ====== Circuits et architecture des ordinateurs ====== ===== Description ===== Ce module offre un panorama des couches basses des systèmes informatiques, partant du transistor pour aller jusqu'à la programmation en assembleur. Il s'agira d'ouvrir la boîte noire que constitue le plus souvent le matériel : que se passe-t-il lorsqu'on lance l'exécution d'un programme C ? En plus d'apporter à l'informaticien ou informaticienne une culture générale bienvenue, le cours vous apportera les connaissances de bases utiles lorsqu'il s'agit de déboguer les couches logicielles basses de votre système ou bien de comprendre la performance d'un programme dans le détail. Le module donne lieu à un projet qui consiste en la réalisation d'un petit micro-processeur en simulation. ===== Syllabus ===== ==== Sujets centraux ==== - Notions de base sur le fonctionnement des transistors - Algèbre de Boole - Circuits combinatoires, circuits séquentiels - Arithmétique des ordinateurs, entière et flottante - Architecture générale d'un processeur - Processeur LC-3 * jeu d'instruction, codage * pile et appels de sous-routines * programmation assembleur - Pipeline - Mémoires caches ==== Sujets potentiellement traités ==== - Autres architectures au delà du LC-3 - Exposé invité d'un industriel ===== Pré-requis ===== * Cours [[..:..:..:licence:2024-2025:ue:l1:pf1|Principes de fonctionnement des machines binaires]] (L1) * Connaissance de base en algèbre booléenne * Cours [[..:..:..:licence:2024-2025:ue:l2:lc4|Langage C]] (L2) * Connaissances de base en C * Familiarité avec le concept de pointeur