Programme :
· La machine de Von Neuman. Les relations entre le processeur et la mémoire. Le concept d'instruction et de langage machine. La représentation des différents types de données en mémoire.
· Architecture externe du microprocesseur 32 bits MIPS R3000 : Les registres visibles du logiciel. L'adressage et la structuration de l'espace adressable. Le langage d'assemblage du processeur MIPS R3000.
· La programmation structurée et les appels de procédures : L'utilisation de la pile pour les variables locales, les sauvegardes de contextes, et le passage des paramètres. Le rôle du compilateur et le partage des tâches entre le matériel et le logiciel.
· Les deux modes utilisateur / superviseur comme support matériel au fonctionnement multi-tâches et multi-utilisateurs : Le rôle du système d'exploitation. Le traitement des interruptions, exceptions et trappes.
· Architecture générale d'un ordinateur moderne. Rôle des mémoire cache et hiérarchie mémoire. Communications entre le processeur et les organes périphériques. Rôle du bus système et mécanismes d'entrées/sorties.
· Algèbre de Boole. Simplification des sommes, des produits booléens. Correspondance entre expressions booléennes et implantation matérielle. Réalisation des principaux opérateurs combinatoires.
· Logique séquentielle. Modélisation des systèmes numériques synchrones, réalisation des registres et mémoires. Notions de temps de propagation / temps de pré-établissement / temps de maintien.
· Théorie des automates d'état synchrones comme modèle général des systèmes numériques synchrones. Synthèse et implantation matérielle des automates de Moore et de Mealy.
· Architecture interne du microprocesseur MIPS R3000 microprogrammé : Décomposition entre partie opérative et microséquenceur centralisé. Principe de la microprogrammation.
· Description structurelle complète de la partie opérative du processeur : registres, opérateurs de calcul, bus de communications, en utilisant les opérateurs matériels introduits dans la seconde partie du cours.
· Modélisation et réalisation du micro-séquenceur comme un automate d'état synchrone. Correspondance entre microprogramme et automate. Microprogrammation effective de quelques instructions.