Contact : T. Carle, H. Cassé, C. Rochange

**Année ::: M1

Équipe : 2-3 personnes

Mots-clé : assembleur, architecture, microprocesseur, mémoires caches, circuits électroniques

Outils /langages de programmation : assembleur, C, Java, Logisim

Description La compréhension du fonctionnement d’un microprocesseur est la clé pour l’analyse de ses performances et l’optimisation des programmes. La réalisation d’un processeur passe par la mise en œuvre de circuits combinatoires et séquentiels. Les premiers sont relativement faciles à comprendre car ils représentent assez directement une fonction booléenne : les sorties à un moment donné ne dépendent que des entrées pratiquement à ce même instant. Les circuits séquentiels sont par contre formés à partir de mémoires et sont synchronisés par une horloge : leur état et leurs sorties évoluent avec le temps. L’enseignement de l’architecture, utilisant ce genre de circuit, passe par la production de schémas de circuits et de chronogrammes qui sont des représentations abstraites et statiques de phénomènes dynamiques.

L’objectif de ce projet est de produire un simulateur de microprocesseur capable (a) d’exécuter un jeu d’instruction simple et (b) d'exhiber le fonctionnement du microprocesseur à travers des représentations graphiques (schéma de circuit, chronogramme et autres) afin d’améliorer la compréhension des étudiants.

Ce simulateur de microprocesseur sera développé en utilisant les composants du simulateur de circuit logiques LogiSim. A côté de l’affichage du circuit et des portes logiques, il faudra étendre Logisim pour qu’il fournisse une visualisation de plus haut niveau de l’activité du microprocesseur incluant (a) l’activation des éléments du microprocesseur, (b) l’exécution des instructions et (c) la manipulation des registres. Le programme simulé pourra être saisi et assemblé dans une fenêtre tierce fournissant un éditeur simple et des commandes pour gérer la simulation.

Le simulateur résultat du projet sera utilisé en cours, en TP ou fourni aux étudiants pour explorer le fonctionnement du microprocesseur. Les sources seront disponibles en code ouvert et distribuées selon la licence ouverte en accord avec la licence de LogiSim.