L'objet de ce cours est de présenter les principes fondamentaux d'architecture des ordinateurs et des systèmes d'exploitation :
Après quelques bases de logique propositionnelle, nous étudierons la composition matérielle d'un ordinateur et la façon dont celui-ci fonctionne. Nous partirons des fondamentaux : portes, logique anarchique, puis évoluerons via la logique en tranches et circuits séquentiels jusqu'à la construction d'une carte mère et à l'exécution des programmes.
Nous aborderons donc les aspects purement matériels, les notions d'architecture et de jeu d'instructions, pour remonter ensuite vers le langage d'assemblage pour LC3.
Cette étude nous amènera à regarder la structuration mémoire, en particulier les mécanismes de cache et leurs conséquences sur les algorithmes, et les mécanismes usuels d'optimisation de code (déroulage de boucles, pipeline, etc.).
Programme :
- Circuits de base : circuits logiques élémentaires, unité arithmétique et logique, circuits mémoires.
- Micro-architecture : notions sur l'organisation des processeurs, chemin de données.
- Architecture et principes des jeux d'instructions : exemple, le processeur LC3
- Programmation bas niveau : programmation LC3 avancée (récursion, E/S)
- Assemblage, et lien avec la compilation.
Les TP illustreront tous les concepts du cours : un logiciel de simulation de circuit, Logisim, sera utilisé pour expérimenter la construction de circuits et construire une partie d'un processeur. Un simulateur-LC3 sera utilisé pour la programmation assembleur.