• Aucun résultat trouvé

Évolution mesurée des latences d’accès au cache en fonction de la taille

On observe le même comportement en lecture (Figure 5.7b) et écriture (Figure 5.7c) pour la STT-MRAM. Néanmoins, l’augmentation de latence est moins marquée en lecture grâce à l’effet de densité. Le temps de routage augmente, mais les circuits périphériques restent toujours plus courts que ceux de la SRAM. On passe d’une latence d’environ 4ns pour 256Ko à une latence de 8ns pour 16Mo.

La latence d’écriture augmente très peu dans les deux scenarii. En effet, le circuit d’écriture est plus court que celui de lecture. Lors d’une lecture, une fois la donnée lue, il est nécessaire de la faire sortir de la mémoire et de l’envoyer sur le bus. Pour une écri- ture, cette étape de sortie et de communication est inutile puisque l’initiateur de l’écriture n’attend pas d’acquittement. La latence augmente de manière modérée et la différence moyenne entre les deux scenarii est de 10%, alors qu’elle est de 35% pour la lecture.

Dans cette section, nous avons vu que la densité de la STT-MRAM permet l’augmen- tation de la capacité de stockage d’une mémoire cache, en général d’un facteur 4×. Nous avons mené une exploration architecturale sur l’organisation interne de la mémoire cache pour montrer que celle-ci diffère entre les technologies SRAM et STT-MRAM. En effet, la technologie STT-MRAM est moins sensible aux latences des circuits périphériques, ce qui permet de ré-organiser les composants en conséquence. Dans la suite de ce chapitre, nous présentons une étude sur les possibilités d’optimisation de la mémoire cache utilisant les

résultats de notre analyse de densité.

5.3 Choix d’optimisation lors de la conception d’une mémoire

cache

Une mémoire cache est représentée par un ensemble de paramètres architecturaux comme la taille, l’associativité, le routage, le nombre de ports de lecture/écriture etc. Le problème non trivial ici est de trouver la bonne configuration parmi toutes les possibi- lités pour obtenir une mémoire la plus efficace possible selon les besoins. Pour trouver cette configuration, si elle existe, il faut dans un premier temps réaliser une exploration complète de toutes les possibilités. L’architecte doit ensuite déterminer un ensemble de critères pour trouver les solutions qui paraissent intéressantes, puis parcourir l’espace de design et extraire ces configurations.

Les travaux précédents n’ont que rarement mené ce type d’étude en le combinant à une approche architecturale. De nombreuses propositions ont été faites pour optimiser la cellule de mémoire STT-MRAM [50,99,121] pour atténuer les latences, le coût énergétique ou l’asymétrie. Ces approches se font à un niveau circuit. Ici nous sommes à un niveau plus élevé qui est l’architecture.

5.3.1 Approche proposée

Les propositions relevées dans le chapitre 3 intègrent de la STT-MRAM avec certaines caractéristiques de latences et d’énergie mais n’explicitent pas ces valeurs. Aucune explo- ration n’est menée et les détails des configurations ne sont pas donnés. Nous proposons une méthode d’exploration architecturale découpée en plusieurs étapes :

— une définition minimale des caches que l’on veut explorer (taille, associativité, tech- nologie de gravure. . . )

— une exploration automatisée de ces configurations — la définition du critère de sélection de(s) configuration(s) — une visualisation de l’espace d’exploration

— l’extraction de configuration(s) dans cet espace

Pour ces explorations, nous considérons l’outil NVSim présenté dans le chapitre 3. NVSim permet d’estimer les latences, la puissance et la surface d’un cache. L’outil dis- pose de nombreux paramètres architecturaux qui peuvent être modifiés, permettant un large choix d’exploration. La configuration des ces paramètres est donnée en entrée par l’architecte. L’outil propose un mode d’exploration automatisé, laissant le designer fixer seulement les paramètres voulus.

5.3.2 Initialisation des variables et exploration

NVSim propose divers paramètres d’exploration pour les mémoires à travers un fi- chier de configuration. Ce fichier regroupe une trentaine de champs. Dans notre étude, nous fixons seulement les paramètres suivants :

— la taille de la mémoire cache — la taille des mots

— l’associativité

— le nœud technologique — la température

Une fois ces valeurs spécifiées, un script les combine à un fichier squelette de NVSim pour créer tous les fichiers d’entrées pour chaque configuration à explorer. Les autres paramètres sont laissés vides et seront explorés par NVSim. L’outil dispose de plusieurs modes d’exploration qui vont optimiser le cache selon plusieurs critères : la latence de lecture ou d’écriture, la surface, l’efficacité énergétique de la lecture etc.

Le lancement de NVsim pour toutes ces configurations est automatisé. En fonction du nombre de possibilités, cette exploration peut prendre plusieurs dizaines de minutes à plusieurs heures. Une fois l’exploration terminée, les résultats sont placés dans des fichiers CSV.

5.3.3 Visualisation et extraction de l’espace d’exploration

Une fois l’espace d’exploration défini, il est possible de le visualiser à travers un lo- giciel comme Matlab�R. Pour cela, nous avons développé un ensemble de scripts prenant

en entrée un fichier CSV produit par NVSim et produisant en sortie plusieurs graphiques représentant l’espace d’exploration. Les meilleures configurations selon les critères exis- tants sont visibles, et sont également affichées sous forme textuelle. Les informations ex- traites pour ces configurations de cache sont les latences d’accès (lecture/écriture), les coûts énergétiques d’accès (lecture/écriture), la puissance statique et la surface.

La figure 5.8 est un exemple de graphique que l’on obtient en sortie de Matlab. Ici, l’espace d’exploration contient 62432 configurations. La meilleure configuration est choi- sie selon le critère du meilleur ratio entre la latence de lecture, le coût énergétique d’une lecture et la surface occupée par le cache. On appelle ce critère l’ADEP, pour Area-Delay- Energy Product (voir Tableau 5.2).

L’outil permet également de visualiser les latences d’écriture et le coût énergétique des accès, comme montré par la Figure 5.9.

F����� 5.8 – Espace d’exploration pour un cache 16 associatif de 2Mo et pour une tempé-