Skip to Main content Skip to Navigation
Theses

Software-level Analysis and Optimization to Mitigate the Cost of Write Operations on Non-Volatile Memories

Rabab Bouziane 1
1 PACAP - Pushing Architecture and Compilation for Application Performance
Inria Rennes – Bretagne Atlantique , IRISA-D3 - ARCHITECTURE
Résumé : La consommation énergétique est devenue un défi majeur dans les domaines de l’informatique embarquée et haute performance. Différentes approches ont été étudiées pour résoudre ce problème, entre autres, la gestion du système pendant son exécution, les systèmes multicœurs hétérogènes et la gestion de la consommation au niveau des périphériques. Cette étude cible les technologies de mémoire par le biais de mémoires non volatiles (NVMs) émergentes, qui présentent intrinsèquement une consommation statique quasi nulle. Cela permet de réduire la consommation énergétique statique, qui tend à devenir dominante dans les systèmes modernes. L’utilisation des NVMs dans la hiérarchie de la mémoire se fait cependant au prix d’opérations d’écriture coûteuses en termes de latence et d’énergie. Dans un premier temps, nous proposons une approche de compilation pour atténuer l’impact des opérations d’écriture lors de l’intégration de STT-RAM dans la mémoire cache. Une optimisation qui vise à réduire le nombre d’opérations d’écritures est implémentée en utilisant LLVM afin de réduire ce qu’on appelle les silent stores, c’est-à-dire les instances d’instructions d’écriture qui écrivent dans un emplacement mémoire une valeur qui s’y trouve déjà. Cela rend notre optimisation portable sur toute architecture supportant LLVM. La validation expérimentale montre des résultats prometteurs selon le niveau de silentness des instructions d’écritures dans les benchmarks étudiés. Certaines considérations de conception sont analysées au niveau de la compilation et de la microarchitecture afin de tirer le meilleur parti de l’optimisation. Le principe de l’implémentation est inspiré par le travail initial de Lepak et al. [54] sur l’élimination des silent stores à travers des mécanismes matériels, pour améliorer le speedup sur une architecture monoprocesseur et réduire le trafic sur le bus de données sur une architecture multiprocesseur. Nous considérons une variante de compilation de cette optimisation. Notre approche consiste à transformer un code suivantes: 1. une instruction de lecture à l’adresse de l’écriture, 2. une instruction de comparaison, pour comparer la valeur écrite à la valeur déjà écrite, 3. une branche conditionnelle pour ignorer l’opération d’écriture si nécessaire. Nous avons implémenté la transformation ci-dessus dans LLVM en utilisant la représentation intermédiaire du code. L’approche est accomplie en deux étapes : un profiling des silent stores basé sur les accès mémoire observés, suivi par l’application de l’optimisation uniquement sur les silent stores qui sont silent à une certaine probabilité donnée et qui exprime combien de fois une opération d’écriture est silent. Une opération d’écriture qui est silent et qui est souvent exécutée aura un haut niveau de silentness et sera donc bénéfique pour une telle optimisation. Dans un second temps, nous proposons une approche qui s’appuie sur l’analyse des programmes pour estimer des pire temps d’exécution partiaux, dénommés δ-WCET. À partir de l’analyse des programmes, δ-WCETs sont déterminés et utilisés pour allouer en toute sécurité des données aux bancs de mémoire NVM avec des temps de rétention des données variables. L’analyse δ-WCET calcule le WCET entre deux endroits quelconques dans un programme, comme entre deux blocs de base ou deux instructions. Ensuite, les pires durées de vie des variables peuvent être déterminées et utilisées pour décider l’affectation des variables aux bancs de mémoire les plus appropriées. Notre approche est validée dans la suite de benchmarks de Mälardalen et des réductions significatives d’énergie dynamique de la mémoire (jusqu’à 80% et 66% en moyenne) sont observées en fonction des caractéristiques des programmes. L’implémentation de cette partie a été faite sur Heptane, qui est un outil d’estimation statique de WCET. À partir d’un CFG, Heptane génère un problème ILP suite à une série d’analyses. Ce problème ILP est ensuite résolu en utilisant un solveur comme Cplex ou lp_solve. Le concept de notre approche se base sur l’utilisation du def-use (reaching definitions) qui permet d’identifier pour une opération d’écriture, toutes les opérations de lecture qui lui correspondent. Cela permet de construire un sous-graphe du CFG initial du programme. Ce sous-graphe représentera par la suite le graphe que Heptane va traiter et un nouveau problème ILP est généré pour le calcul du δ-WCET.
Document type :
Theses
Complete list of metadatas

Cited literature [137 references]  Display  Hide  Download

https://hal.inria.fr/tel-01954076
Contributor : Bouziane Rabab <>
Submitted on : Thursday, December 13, 2018 - 2:39:34 PM
Last modification on : Friday, July 10, 2020 - 4:02:20 PM
Document(s) archivé(s) le : Thursday, March 14, 2019 - 2:04:53 PM

File

merged.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : tel-01954076, version 1

Citation

Rabab Bouziane. Software-level Analysis and Optimization to Mitigate the Cost of Write Operations on Non-Volatile Memories. Computer Science [cs]. Université de Rennes 1 [UR1], 2018. English. ⟨tel-01954076⟩

Share

Metrics

Record views

208

Files downloads

283