Représentation dynamique de la liste des copies pour le passage à l'échelle des protocoles de cohérence de cache

par Julie Dumas

Thèse de doctorat en Informatique

Sous la direction de Frédéric Pétrot.

Le président du jury était Florent Dupont de Dinechin.

Le jury était composé de Èric Guthmuller, Quentin Meunier.

Les rapporteurs étaient Daniel Etiemble, Gilles Sassatelli.


  • Résumé

    Le problème du passage à l’échelle des protocoles de cohérence de cache qui se pose pour les machines parallèles se pose maintenant aussi sur puce, suite à l’émergence des architectures manycores. Il existe fondamentalement deux classes de protocoles : ceux basés sur l’espionnage et ceux utilisant un répertoire. Les protocoles basés sur l’espionnage, qui doivent transmettre à tous les caches les informations de cohérence, engendrent un nombre important de messages dont peu sont effectivement utiles. En revanche, les protocoles avec répertoires visent à n’envoyer des messages qu’aux caches qui en ont besoin. L’implémentation la plus évidente utilise un champ de bits complet dont la taille dépend uniquement du nombre de cœurs. Ce champ de bits représente la liste des copies. Pour passer à l’échelle, un protocole de cohérence doit émettre un nombre raisonnable de messages de cohérence et limiter le matériel utilisé pour la cohérence et en particulier pour la liste des copies. Afin d’évaluer et de comparer les différents protocoles et leurs représentations de la liste des copies, nous proposons tout d’abord une méthode de simulation basée sur l’injection de traces dans un modèle de cache à haut niveau. Cette méthode permet d’effectuer rapidement l’exploration architecturale des protocoles de cohérence de cache. Dans un second temps, nous proposons une nouvelle représentation dynamique de la liste des copies pour le passage à l’échelle des protocoles de cohérence de cache. Pour une architecture à 64 cœurs, 93% des lignes de cache sont partagées par au maximum 8 cœurs, sachant par ailleurs que le système d’exploitation chercher à placer les tâches communicantes proches les unes des autres. Notre représentation dynamique de la liste des copies tire parti de ces deux observations en utilisant un champ de bits pour un sous-ensemble des copies et une liste chaînée. Le champ de bits correspond à un rectangle à l’intérieur duquel la représentation de la liste des copies est exacte. La position et la forme de ce rectangle évoluent au cours de la durée de vie des applications. Plusieurs algorithmes pour le placement du rectangle cohérent sont proposés et évalués. Pour finir, nous effectuons une comparaison avec les représentations de la liste des copies de l’état de l’art.

  • Titre traduit

    Dynamic sharing set for scalable cache coherence protocols


  • Résumé

    Cache coherence protocol scalability problem for parallel architecture is also a problem for on chip architecture, following the emergence of manycores architectures. There are two protocol classes : snooping and directory-based.Protocols based on snooping, which send coherence information to all caches, generate a lot of messages whose few are useful.On the other hand, directory-based protocols send messages only to caches which need them. The most obvious implementation uses a full bit vector whose size depends only on the number of cores. This bit vector represents the sharing set. To scale, a coherence protocol must produce a reasonable number of messages and limit hardware ressources used by the coherence and in particular for the sharing set.To evaluate and compare protocols and their sharing set, we first propose a method based on trace injection in a high-level cache model. This method enables a very fast architectural exploration of cache coherence protocols.We also propose a new dynamic sharing set for cache coherence protocols, which is scalable. With 64 cores, 93% of cache blocks are shared by up to 8 cores.Futhermore, knowing that the operating system looks to place communicating tasks close to each other. Our dynamic sharing set takes advantage from these two observations by using a bit vector for a subset of copies and a linked list. The bit vector corresponds to a rectangle which stores the exact sharing set. The position and shape of this rectangle evolve over application's lifetime. Several algorithms for coherent rectangle placement are proposed and evaluated. Finally, we make a comparison with sharing sets from the state of the art.


Il est disponible au sein de la bibliothèque de l'établissement de soutenance.

Consulter en bibliothèque

La version de soutenance existe

Où se trouve cette thèse\u00a0?

  • Bibliothèque : Université Savoie Mont Blanc (Chambéry-Annecy). Service commun de la documentation et des bibliothèques universitaires. Bibliothèque électronique.
  • Bibliothèque : Service Interétablissement de Documentation. LLSH Collections numériques.
  • Bibliothèque : Service interétablissements de Documentation. STM. Collections numériques.
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.