Projets dArchitecture des Ordinateurs
Plusieurs projets sont proposés ci-dessous mais vous avez
la possibilité de proposer votre propre sujet; il suffit de
demander l'accord du chargé de cours. Tous les projets
ci-dessous peuvent être réalisés en binôme; cela
est même recommandé pour certains des sujets.
La complexité des processeurs actuels rend leur conception de plus en
plus difficile. La plupart des architectes utilisent des simulateurs
de processeurs, précis au niveau cycle, mais comprendre le
comportement d'une instruction, lors de son exécution dans le
processeur, est de plus en plus difficile en raison du nombre de
composants et de leurs interactions. Dans ce but, quelques équipes de
recherche travaillent sur des simulateurs différents, modulaires,
permettant de faciliter la conception et de mieux isoler le
comportement individuel des composants. Dans le cadre du projet
UNISIM de simulation modulaire, nous
envisageons de développer une interface graphique afin
d'améliorer encore la tâche de l'architecte. Chaque module peut etre modifié
pour indiquer au format XML les évènements se produisant cycle à cycle.
Il faut maintenant envisager une façon de visualiser ces évènements
au cours du temps.
Travail demandé:
Le but du travail est de concevoir un prototype d'interface graphique
permettant de visualiser le déroulement de l'exécution d'une
instruction au sein du processeur; cette interface pourra être
complétée par un chronogramme des évènements d'une exécution. Si le
travail conduit à une interface raisonnablement aboutie, elle sera
diffusée en open-source dans le cadre du projet UNISIM. Ce travail
pourra éventuellement être prolongé dans le cadre d'un stage.
A terme, la plupart des processeurs seront multi-coeurs. Dans les
prochaines années, on escompte des processeurs comportant des
dizaines, voir des centaines de coeurs. A ce degré de parallélisme, il
devient difficile d'appréhender le comportement du programme sur
l'architecture. Des outils de visualisation de l'exécution d'un
programme permettraient de faciliter la tache de conception d'un
programme.
Travail demandé:
Dans le cadre du projet, on propose de se concentrer sur une
application donnée (de segmentation d'images), et d'en visualiser le
comportement sur un processeur virtuel comportant un très grand nombre
de coeurs. Le programme a été parallélisé en utilisant une méthode
dynamique de partitionnement des taches au cours de l'exécution
(voir