Gestion consciente du contenu de la hiérarchie mémoire
Institution:
Rennes 1Disciplines:
Directors:
Abstract EN:
This thesis deals with memory hierarchy behavior. Today, most memory hierarchy treat all data consistently while these data do not have the same usage or content. Here we propose to differentiate the processing of each data inside the memory hierarchy. Our first contribution aim at reducing the pollution generated by data blocks that are allocated in the cache and that are never reused. We call these blocks single usage blocks. We propose a block usage predictor and two mechanisms designed to reduce the single usage pollution: a cache bypass technique and a replacement policy (both based on the block usage predictor). Our second contribution addresses the content of a cache block. Applications manipulate a large amount of cache blocks that are completely null. Storing these blocks is a waste of space. We propose the zero-content cache, a little adjunct cache that is designed to memorize only null blocks where a null block is represented with 1 bit and its tag. For instance, this cache can map 4MB of memory using 10KB of storage. The zero-content cache allows to free space in the main cache, and therefore increase the performance of the memory hierarchy.
Abstract FR:
Les travaux présentés dans cette thèse portent sur le comportement de la hiérarchie mémoire. Dans la plupart des hiérarchies actuelles, toutes les données sont traitées de manière systématique, alors que chaque donnée a une utilisation ou un contenu particulier. Adapter le comportement de la hiérarchie mémoire en fonction de l'utilisation d'une donnée ou de son contenu, permet d'augmenter la performance de la hiérarchie ainsi que la performance globale du calculateur. Notre première contribution se concentre sur la pollution générée par les blocs mémoire alloués en cache qui ne sont jamais réutilisés. Nous proposons un prédicteur capable de découvrir ces données à usage unique, ainsi que deux mécanismes utilisant ces prédictions, une technique de bypass de cache et une politique de remplacement. Chacun de ces mécanismes visent à réduire la pollution engendrée par les blocs à usage unique. Notre seconde proposition quant à elle se focalise sur le contenu des blocs alloués en mémoire. Les applications manipulent un nombre important de blocs de données totalement nuls. Nous proposons ici d'associer à un niveau de cache de la hiérarchie un cache dédié au stockage de blocs nuls. Dans ce cache le stockage des blocs nuls est réduit au minimum, ce qui permet d'augmenter l'espace disponible pour les données non nulles, et ainsi augmenter l'efficacité de la hiérarchie mémoire.