Optimisations logicielles de la localite : le placement precis des donnees en memoire
Institution:
Rennes 1Disciplines:
Directors:
Abstract EN:
Pas de résumé disponible.
Abstract FR:
Cette etude analyse l'impact des techniques de placement des donnees en memoire sur le taux d'echecs des caches et propose des methodes de placement pour des structures de donnees heterogenes. Dans une premiere partie, une classification des defauts de cache est proposee pour evaluer l'impact du placement des donnees sur le taux d'echecs des caches. Cette classification garde la philosophie du classement propose par m. D. Hill. Cependant, elle permet de montrer l'influence du placement des donnees sur le taux d'echecs. Un placement optimal permettrait d'eliminer les defauts de conflit ainsi qu'une partie des defauts de capacite des programmes. Une heuristique a donc ete developpee pour ameliorer le placement en memoire des scalaires independants. Pour cela, une methode de mesure de la localite des references entre deux donnees a ete mise au point. L'heuristique a ete appliquee sur des traces de programmes. Les resultats obtenus confirment qu'en ameliorant le placement memoire on peut eliminer une grande partie des defauts de capacite et de conflit. Cette heuristique ne peut cependant pas etre utilisee comme telle car il est rare que les programmes manipulent des scalaires sans aucune contraintes de placement. Il faut donc adapter des techniques de placement memoire a chaques types de donnees. Les programmeurs utilisent frequemment des structures de donnees allouees dynamiquement lorsqu'il faut manipuler un grand nombre de donnees. Nous proposons donc d'ameliorer le placement memoire de ce type de donnee en reorganisant les champs des structures et en entrelacant les champs de plusieurs instances en memoire. Pour faciliter l'entrelacement des instances, une librairie d'allocation specifique a ete developpee. La combinaison de ces optimisations permet d'obtenir des gains de performance significatifs en reduisant les taux d'echecs des caches.