** accès bloquant, le processeur est en attente de la donnée
Les implantations qui ont été faites de nos protocoles ne sont probablement pas
opti-males. Nous aurions pu imaginer que l’acquittement des invalidations se fasse directement
auprès des caches ayant effectué la requête, faisant chuter la latence d’accès de4à3.L
m.
Malgré cela, les principes suivis pour l’implantation ont été les mêmes, les protocoles
restent donc comparables entre eux.
4.2 Expérimentations
Afin d’évaluer et comparer les protocoles WTI et WB-MESI nous avons réalisé leur
im-plantation dans un environnement de simulation. Nous décrivons ci-dessous
l’environne-ment de simulation utilisé, les architectures modélisées et la couche logicielle utilisée.
4.2.1 Environnement de simulation et architecture matérielle
Environnement de simulation
Nos plateformes de simulation ont été construites à l’aide de la bibliothèque de
compo-sants SoCLib [soc]. La plupart des composants sont décrits avec une précision au niveau du
cycle d’horloge et du bit d’information CABA
1.
Certains composants sont décrits avec moins de précision. Ceci est notamment le cas du
réseau d’interconnexion. Le composant utilisé « Generic Micro Network » (GMN) est décrit
au niveau du cycle d’horloge, mais son implantation n’est pas réaliste. Il est modélisé comme
un double crossbar (cf fig.4.3) (pour les requêtes et les réponses) avec des files d’attentes.
Ces dernières, de profondeur configurable, permettent de modéliser la latence minimum de
traversée (file de délai) et la capacité du réseau (file de capacité).
F
IG. 4.3 – Architecture du GMN, la file de délai a un temps de traversée constant, la file de
capacité peut être traversée en 1 cycle.
Ce composant a un comportement proche d’un NoC car il est peu sensible à la congestion
et il est de type point-à-point. Son défaut majeur est que tous les composants sont
ment placés à la même distance les uns des autres, il ne permet donc pas de modéliser une
topologie.
Malgré cela, le point important est que les deux protocoles implantés soient comparés
sur la même base, l’erreur de précision obtenue sur le résultat absolu n’est pas gênante car
nous nous concentrerons uniquement sur les comparaisons des résultats relatifs.
Cette bibliothèque nous permet de modéliser des plateformes contenant des dizaines de
processeurs, mémoires et périphériques communiquant à l’aide du protocole VCI
2[vci00].
Descriptif des architecture modélisées
Dans la figure4.4 nous présentons les architectures modélisées. Nous avons utilisé des
processeurs Sparc V8 d’architecture Harvard (cache instructions et données séparées).
No-tons que les deux caches partagent la même interface VCI sur le réseau afin de réduire sa
surface.
Nous utilisons deux types d’architectures, l’une est très centralisée et l’autre au contraire
très décentralisée. Les deux intègrent de 4 à 100 processeurs. L’architecture décentralisée
possède un nombre variable de bancs mémoire.
Le tableau ci-dessous résume les caractéristiques des deux architectures.
Nombre de processeurs n={4,16,32,64}
Nombre de bancs mémoire m={2, n+ 3}
Processeur utilisé SPARC-V8 et une FPU
Taille du cache des données 4Kb
Taille du cache des instructions 4Kb
Taille d’une ligne de cache 32 bytes
Politique d’évincement du cache Direct-mapped
Taille du tampon d’écritures 8 words (32 bytes)
Configuration du GMN Mesh - 2D
Latence du réseau 3.
23√n+m+ 3
T
AB. 4.2 – Caractéristiques des plateformes simulées
4.2.2 Applications
4.2.2.1 Application synthétique : simple_test
Afin de valider nos protocoles et d’observer certaines tendances, nous avons utilisé une
application synthétique. Cette application crée un tableau de travail à deux dimensions. Cet
ensemble est divisé de façon régulière entre les différents processeurs du système. Chaque
processeur va réaliser un calcul simple sur le sous-ensemble qui lui est dédié et celui-ci, aura
un taux de recouvrement avec les zones voisines paramétrable. Nous pouvons ainsi
obser-ver le comportement des différents protocoles en fonction du taux de partage des données.
Dans la figure4.5nous présentons le placement des données de l’application en fonction
du type de plateforme considérée. La distribution des données sur l’ensemble des bancs
mémoire aura une influence déterminante sur le comportement des protocoles.
Cette application, très simple, ne requiert le support d’aucun système d’exploitation.
Ainsi, l’ensemble des accès réalisés est entièrement déterminé par l’application.
4.2 Expérimentations
(a) Architecture centralisée
(b) Architecture décentralisée