Contact : Hugues Cassé, Christine Rochange

Organisation : IRIT - Université Toulouse 3

Année : M1

Projet : Démonstrateur pédagogique pour l’enseignement de l’Architecture

Description du projet :

Ce projet concerne la reprise d'un projet déjà existant et partiellement développé.

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 processeurs 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épend 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 de 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 ensemble de logiciels permettant de visualiser le fonctionnement du microprocesseur à travers des représentations graphique (schéma de circuit, chronogramme et autres) afin d’améliorer la compréhension des étudiants. On se focalisera sur deux éléments du microprocesseur :

  • le fonctionnement d’un cœur non-pipeliné pour un jeu d’instruction simple,
  • le fonctionnement des mémoires cache pour un programme en ARM.

Le premier outil s’intégrera dans le simulateur de circuit LogiSim dans lequel devra être développé le cœur d’exécution pour un langage d’assemblage simple. En parallèle, une vision de plus haut niveau montrant les parties logiques du cœur et leur activité sera affichée. Le programme simulé pourra être saisi et assemblé dans une autre fenêtre fournissant un éditeur simple. Le second outil consistera à intégrer un simulateur d’ARM fourni par nos soins avec (a) un simulateur de cache configurable (taille de bloc, nombre d’ensemble, associativité) avec (b) un affichage de l’activité du programme, du cache et de la mémoire lors de la simulation. Les technologies à utiliser pour cela sont à définir. Le tout 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és la licence ouverte GPL (tout comme le simulateur ARM fourni).

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