Partage des caches en traduction binaire dynamique

De Ensiwiki
Aller à : navigation, rechercher


Partage des caches en traduction binaire dynamique

Labo TIMA
Equipe SLS
Encadrants Frederic.Petrot@imag.fr

Thème général

Ce sujet s'inscrit dans le contexte de la simulation rapide de machines multiprocesseur sur la puce.

Contexte du travail

La simulation de jeux d'instructions de processeurs (instruction set simulators en anglais) est une pierre angulaire de la définition de nouvelles architectures systèmes, car la simulation d'un système matériel/logiciel complet est nécessaire à l'évaluation quantitative des performances attendues avant fabrication. Diverses méthodes existent, mais celle dont le rapport généralité vs efficacité est le meilleur est, à ce jour, la traduction binaire dynamique.

Sujet

Le sujet proposé porte sur l'étude de l'efficacité du partage des caches de traduction dans la simulation d'architectures multiprocesseur. En effet, à l'heure actuelle chaque simulateur de processeur possède son propre cache de traduction. Néanmoins, dans le cas de machines SMP à mémoire partagée cohérentes exécutant un unique OS (genre Linux SMP sur un octocore), on peut partager le cache de traduction.

L'efficacité de ce partage reste néanmoins à quantifier, en terme d'invalidation du contenu du cache, de taux de partage, etc, et bien sur de performance globale de la simulation. Aussi étrange que cela puisse paraître, aucune pubmication n'a, à notre connaissance, rapporté une étude quantitative sur ce sujet.

Il faut donc définir les compteurs de performance qui ont du sens dans le simulateur, et mettre en place une stratégie de "non partage des caches", car par défaut les caches sont partagés, puis faire des expérimentations en faisant varier le nombre de processeurs, les applications, etc, pour quantifier les métriques désirées (à définir également), et en tirer des conclusions sur la bonne manière de faire.

Résultats attendus

On attend comme résultat une quantification de l'intérêt de partager ou non ces caches, et potentiellement des pistes sur la stratégie d'invalidation des caches de traduction.

Compétences nécessaires

L'ensemble des expérimentations prendra place dans une version patchée de Qemu (www.qemu.org) intégrée à un simulateur de systèmes sur puce (http://tima.imag.fr/sls/research-projects/rabbits/). Hacker level C coding (il faut "rentrer" dans le code de Qemu, ce qui n'est pas une sinécure). Rigueur dans l'expérimentation et l'analyse de résultats (analyses statistiques élémentaires)