La conception d'architectures dans l'industrie ou la recherche académique repose l'utilisation de simulateurs. Ce sont des logiciels décrivant en détail le fonctionnement de chacun des composants d'un processeur ou d'un système. En raison du nombre croissant de transistors (42 millions dans le Pentium IV), ces architectures deviennent très complexes, et il devient difficile d'en appréhender le fonctionnement, ce qui en freine le développement. En outre, il devient de plus en plus difficile de comprendre le comportement d'un programme sur une architecture et donc d'en optimiser la performance.
Nous voulons développer une interface de visualisation d'architectures qui permettra de montrer de façon intuitive l'exécution de programmes sur le simulateur d'un processeur ou un système. Ce projet est couplé à un projet de recherche de l'équipe Architecture du LRI dont le but est de proposer une méthode modulaire de conception des simulateurs d'architecture: chaque simulateur est scindé en "boîtes" qui correspondent chacune à un composant de l'architecture (mémoire, unité fonctionnelle, cache...). Cette méthode modulaire de conception se prête bien à la visualisation: on peut spécifier indépendamment, au sein de chaque boîte, les éléments de l'architecture (structures de données) à visualiser. La liaison entre le simulateur modulaire et la visualisation se fera par le biais de XML: chaque boîte générera des informations au format XML qui seront interprétées puis affichées par l'interface graphique.
Le propos du TER est de réaliser la visualisation graphique à partir des sorties XML; il n'est donc pas demandé de travailler sur les simulateurs d'architectures, mais la façon de visualiser les informations exploite largement les connaissances acquises pendant le cours d'architecture. Dans le cadre du TER, il faudra donc extraire les informations contenues dans les sorties XML, puis les afficher, notamment sous forme de chronogramme. De façon optionnelle, on pourra également réfléchir à un affichage des composants de l'architecture et des transferts d'information entre ces composants. La qualité de programmation est un point très important du TER: plutôt que le nombre de fonctionnalités, on privilégiera la capacité à implémenter de nouvelles fonctionnalités dans le futur, au fur et à mesure des besoins. Il faudra donc réfléchir à la façon dont l'interface pourrait évoluer.
Cette interface est destinée à être réellement utilisée en recherche en architecture: dans l'équipe du LRI dans un premier temps, mais elle sera également diffusée auprès d'autres groupes de recherche. Parmi les interfaces développées dans le cadre du TER et qui correspondent au cahier des charges fixé, nous retiendrons la meilleure interface qui servira de base à de futurs développements et qui sera diffusée comme indiquée ci-dessus.