• Aucun résultat trouvé

Nous avons mesur´e pour les caches feuille et racine plusieurs m´etriques inspir´ees de

l’´etude th´eorique sur les caches du chapitre 3. Nous pr´esentons ici les mesures

obte-nues pour les segments 0 et -2 dont les acc`es m´emoire dessinent des sinuso¨ıdes 3D avec

respectivement des d´eplacements selon 2 et 3 dimensions dans l’espace m´emoire 3D.

3.3.1 Cache feuille

La figure 4.13 repr´esente pour un cache non-hi´erarchique et un cache feuille, le taux

d’utilisation d’un bin mis en cache η

cache

, le coˆut moyen de mise en cache de 4 bins

ˆ

C

cache

(4bins), le taux de d´efautη

defaut

et le taux de surcharge du cacheη

surcharge

.

Taux de r´eutilisation et de d´efaut pour le cache non-hi´erarchique

Pour un cache non-hi´erarchique avec un seul cache, on peut observer sur la figure 4.13

que le taux de r´eutilisation des donn´ees ne varie pas avec la latence m´emoire : il est de

10.1 pour le segment 0 et de 9.2 pour le segment -2 (graphe a). Ce taux de r´eutilisation

est `a comparer avec le taux th´eorique de r´eutilisation des donn´ees qui id´ealement est de

36 pour le segment 0 et 24 pour le segment -2 (graphe d). Cette diff´erence s’explique par

le taux de surcharge du cache assez important autour de 3,6 pour le segment 0 et 2,6 pour

le segment -2 . Ce taux de surcharge est plus ´elev´e que la valeur esp´er´eeE(η

surcharge

)

par les mesures en simulation. En effet, le m´ecanisme de mise `a jour du cache 3D-AP

dessine une sinuso¨ıde plus large que celle correspondante `a une simple strat´egie m´emoire

de type “ping pong”. Le cache 3D-AP fait des mises `a jour du cache plus larges car il

effectue une pr´ediction pour plusieurs angles phi futurs, alors que la strat´egie “ping pong”

met `a jour le cache uniquement pour l’angle suivant phi+ 1. Ce taux de r´eutilisation

permet toutefois le masquage des transferts du cache car comme l’indique le graphe b,

le coˆut de transfert en m´emoire de 4 bins dont a besoin le pipeline `a chaque cycle de

calcul reste inf´erieur au taux de r´eutilisation. Il faut en moyenne entre 2 et 8 cycles pour

mettre en cache un vecteur de 4 bins qui sera r´eutilis´e en moyenne pendant 9 `a 10 cycles

de calcul. Enfin, le taux de d´efaut est faible autour de 0,1%ce qui prouve que le cache

r´eussit `a suivre la sinuso¨ıde 3D (graphe c).

Taux de r´eutilisation et de d´efaut pour le cache hi´erarchique

Pour un cache hi´erarchique, nous avons effectu´e ces mˆemes mesures pour un des

4 caches feuilles d’une architecture parall`ele avec 4 unit´es (avec 8 unit´es nous n’avons

plus de ressources n´ecessaires sur le virtex 2 Pro pour placer les modules de mesures du

cache). Sur la figure 4.13, nous pouvons observer tout d’abord que le taux de r´eutilisation

est plus faible (entre 9 et 5) et surtout qu’il d´ecroˆıt avec la latence. Ce taux de

r´eutili-sation qui d´ecroˆıt s’explique par un nombre plus important de transferts m´emoire entre

les caches feuille et racine comme l’indique le taux de surcharge qui augmente avec la

la-tence m´emoire (compris entre 3 `a 5 pour le segment -2). Le cache feuille ne suit plus aussi

efficacement la sinuso¨ıde 3D comme il le faisait sans la hi´erarchie m´emoire. Toutefois,

s’il charge trop de donn´ees en cache, il obtient encore un faible taux de d´efauts autour

3. PERFORMANCES DU CACHE 3D-AP 165

de 0,1 %. Le coˆut de mise en cache pour 4 unit´es varie peu avec la latence m´emoire,

il est compris entre 1,5 et 2 cycles. En effet, ce coˆut ne correspond plus `a la recherche

de donn´ees en m´emoire externe mais au simple transfert entre les caches feuille et racine.

Coˆut des d´efauts

La figure 4.14 pr´esente le coˆut d’un d´efaut en cache. Les d´efauts sont trait´es par le

cache de mani`ere non-prioritaire apr`es la fin de mise `a jour du cache. C’est pourquoi,

nous faisons la distinction dans la suite de cette ´etude entre les d´efauts retard´es qui

attendent la fin d’une mise `a jour du cache et ceux non retard´es qui acc`edent sans

at-tendre au bus m´emoire. Le coˆut d’un d´efaut non retard´e augmente lin´eairement avec la

latence pour un cache non hi´erarchique (1 unit´e) comme illustr´e sur le graphe b. Pour

un cache hi´erarchique, les d´efauts non retard´es au niveau feuille peuvent ˆetre retard´es

au niveau racine, c’est pourquoi on observe un coˆut plus important et non lin´eaire de ces

d´efauts pour 4 unit´es (graphe b). Les d´efauts r´eellement non retard´es coˆutent quelques

dizaines de cycles (entre 5 et 40 cycles selon la latence m´emoire) ce qui est sup´erieur au

coˆut de mise en cache d’une donn´ee. Ceci est du `a l’acc`es non group´e en ligne m´emoire

des d´efauts, chaque d´efaut paye le prix de la latence m´emoire. Alors que les acc`es `a la

m´emoire pour la mise en cache d’une donn´ee b´en´eficient d’un coˆut partag´e de la latence

m´emoire, par tous les bins de la ligne m´emoire acc´ed´ee. Les d´efauts retard´es coˆutent

plusieurs centaines de cycles (entre 100 et 700 cycles selon la latence m´emoire). C’est

ce coˆut important des d´efauts retard´es qui fait augmenter le coˆut moyen d’un d´efaut

(graphe a). Toutefois, la proportion des d´efauts retard´es reste inf´erieure `a 7 % (graphe

d). Ainsi au final pour une latence de 30 cycles, un d´efaut du cache coˆute 75 cycles pour

une unit´e et le double pour 4 unit´es.

Occupation du bus et traitement des d´efauts

Puisque les transferts du cache sont prioritaires sur les traitements des d´efauts, le

temps de traitement des d´efauts est d´ependant du temps de transfert du cache. Or le

temps de traitement des d´efauts donne une indication directe sur l’efficacit´e de

recons-truction car lorsqu’un d´efaut est trait´e le pipeline est en arrˆet sinon il marche `a plein

r´egime. La figure 4.15 illustre via la repr´esentation des taux d’occupation du bus par

le cache (nombre de cycles de transfert du cache sur le nombre de cycles au total) et

de traitement des d´efauts (nombre de cycles de traitement des d´efauts sur le nombre

de cycles au total), la corr´elation existante entre les temps de transfert du cache et de

traitement des d´efauts. Plus le taux d’occupation du bus augmente, plus le temps de

traitement des d´efauts augmente. Par exemple pour une unit´e, quand le taux

d’occupa-tion du bus atteint 60 %(latence de 15 cycles), la r´epercussion sur le retardement des

d´efauts devient visible avec un accroissement net du temps de traitement des d´efauts

avec la latence. Pour le cache hi´erarchique avec 4 unit´es, le taux d’occupation du bus

entre les caches feuilles et le cache racine est plus important puisque ce bus est partag´e

par les 4 caches feuilles. Ainsi, l’occupation du bus est d´ej`a `a plus de 50 % pour une

latence faible. Ce taux d’occupation augmente quasi lin´eairement jusqu’`a la saturation

du bus `a 80%.

5 6 7 8 9 10 11 12 0 5 10 15 20 25 30 Taux de réutilisation Latence de la mémoire 1 pipeline (segment −2) 1 pipeline (segment 0) 4 pipelines (segment −2) 4 pipelines (segment 0)

(a)

0 2 4 6 8 10 0 5 10 15 20 25 30

Coût de transfert en cache de 4 bins (cycles)

Latence de la mémoire 1 pipeline (segment −2) 1 pipeline (segment 0) 4 pipelines (segment −2) 4 pipelines (segment 0)

(b)

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0 5 10 15 20 25 30 Taux de défaut (%) Latence de la mémoire 1 pipeline (segment −2) 1 pipeline (segment 0) 4 pipelines (segment −2) 4 pipelines (segment 0)

(c)

2 3 4 5 6 7 8 0 5 10 15 20 25 30

Taux de surcharge du cache

Latence de la mémoire 1 pipeline (segment −2) 1 pipeline (segment 0) 4 pipelines (segment −2) 4 pipelines (segment 0)

(d)

Fig.4.13 –η

cache

(a),Cˆ

cache

(4bins)(b),η

defaut

(c) etη

surcharge

(d) du cache feuille

pour 1 et 4 unit´es (segments -2 et 0)