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η
defautet 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 30Coû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 30Taux 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)
Dans le document
Adéquation Algorithme Architecture pour la reconstruction 3D en imagerie médicale TEP
(Page 185-188)