Ce protocole est la combinaison d’une mise à jour mémoirewrite-through avec un
pro-tocole d’invalidations write-invalidate. Dans le contexte de nos travaux, le protocole
d’in-validations est basé sur un répertoire (directory based). Nous en énumérons ci-dessous les
différentes caractéristiques.
Toute écriture est propagée en mémoire. Cette caractéristique est la raison principale pour
laquelle il n’est pas ou peu utilisé dans les systèmes multiprocesseurs. En effet, la plupart des
systèmes multiprocesseurs utilisent un bus ou tout autre moyen d’interconnexion à bande
passante limitée. Comme nous l’avons vu précédemment, l’usage de cette politique de mise
à jour mémoire n’est pas envisageable sur un bus. Toutefois, nos travaux portent sur des
plateformes multiprocesseurs sur puce faisant usage d’un NoC. Ce type d’interconnexion
fournit une bande passante cumulée bien supérieure à celle d’un bus.
Dans un système avec des caches write-through, en moyenne une instruction sur 15 est
une écriture et donc un accès à la mémoire (la plupart des lectures sont des succès en cache).
Dans de telles conditions, il est difficile de saturer les liens de communication. Toutefois, la
congestion peut apparaître sur le nœud mémoire s’il est accédé simultanément par un grand
nombre de processeurs.
Enfin, afin d’amoindrir l’influence des écritures sur l’accessibilité des liens de
communi-cations, les caches posséderont un tampon d’écriture (write-buffer).
Une mémoire toujours cohérente. L’avantage inhérent des écritures propagées est le fait
d’avoir des données toujours cohérentes en mémoire. De fait, la mémoire possède toujours
la dernière copie d’une donnée ce qui simplifie le protocole de cohérence. Contrairement à
un protocole de type write-back, il n’est pas nécessaire de récupérer dans un autre cache la
dernière copie d’une donnée.
Dans une implantation autour d’un bus, ceci était une tâche aisée car l’espionnage des
requêtes permettait au propriétaire de la donnée valide d’envoyer la donnée demandée.
De plus, le temps de transfert d’un cache à un autre est sensiblement équivalent à celui de
l’accès à une mémoire (intégrée à la puce).
L’utilisation d’un NoC rend impossible l’espionnage des requêtes, et donc un transfert de
cache à cache d’une manière aussi simple. L’interrogation du répertoire afin de déterminer
où se trouve la donnée valide est obligatoire. Par conséquent, récupérer la donnée depuis un
autre cache de façon directe, ou bien à l’aide du contrôleur mémoire sera bien plus coûteux
qu’une simple lecture en mémoire.
4.1.1.1 Simplicité d’implantation
Le protocolewrite-through invalidateest le plus simple des protocoles existant. Une
com-plexité réduite se traduit par une économie de surface et une économie d’énergie au niveau
de la gestion du protocole.
4.1.2 Protocoles comparés dans cette étude
Nous allons comparer ici deux protocoles. D’un côté le protocolewrite-through invalidate
dont les principaux arguments ont été présentés ci-dessus, et de l’autre un protocole
write-back invalidatedont nous détaillerons l’implantation ci-dessous.
4.1.2.1 Protocoles de haut niveau
Write-trough invalidate (WTI): la machine à états présentée dans la figure4.1(a)montre
les deux états possible d’une ligne de cache.
I: La ligne n’est pas en cache ou elle est marquée comme étant invalide.
V: La ligne est en cache. Les lectures sont traitées localement, les écritures sont
propa-gées à la mémoire qui se chargera d’invalider les autres copies du système.
Write-back invalidate (WB-MESI): ce protocole est plus complexe, comme nous pouvons
le voir dans la figure4.1(b), une ligne de cache possède quatre états possibles :
I: La ligne n’est pas en cache ou elle est marquée comme étant invalide.
S: La ligne est en lecture seule, un ou plusieurs caches possèdent une même copie. Cet
état est atteint lors d’unmissen lecture, ou d’une invalidation due à unmissen lecture
d’un autre cache, obligeant la ligne à passer d’un état E ou M à S. Seul les lectures sont
traitées localement, une écriture génère une demande d’exclusivité afin, d’une part
invalider les autres copies du système et d’autre part, récupérer une copie à jour de la
donnée si cela est nécessaire.
M: La ligne est modifiée en cache, toute lecture ou écriture est gérée localement.
E: Suite à unmissde lecture, si personne ne possède de copie de cette ligne, la réponse
du contrôleur mémoire est marqué comme « exclusive » . Dans ce cas, cette copie est
unique et toutes les requêtes du caches sont traitées localement (lecture, écriture).
4.1 Protocoles, caractéristiques et motivations
(a)Write-through invalidate : WTI (b) Write-back invalidate : WB-MESI