Softwareverwaltetes Lese- und Schreib-Wear-Leveling für nichtflüchtigen Hauptspeicher Teil 5
Aug 07, 2024
7 BEWERTUNG
In diesem Abschnitt bewerten wir zwei Hauptszenarien: (1) nicht lesezerstörende NVMs und (2) lesezerstörende NVMs. Für Ersteres wird nur eine Teilmenge der vorgestellten Konzepte verwendet, und für Letzteres werden alle vorgestellten Konzepte verwendet.
Destruktives Lesen beeinträchtigt unser Gedächtnis nicht. Tatsächlich ist destruktives Lesen im Gegensatz zum herkömmlichen Notizenmachen oder Lesen eine aktivere Lernmethode, die unsere Lerneffizienz und unser Gedächtnis verbessern kann.
Unter destruktivem Lesen versteht man das Hervorheben, Hervorheben oder Hinzufügen eines persönlichen Verständnisses des Schlüsselinhalts beim Lesen, um unser Selbstverständnis und unseren Wissenseindruck zu vertiefen. Diese Lernmethode kann uns helfen, Wissen schneller und genauer aufzunehmen und die Gedächtniseffizienz erheblich zu verbessern. Mit einem tieferen Verständnis und einem stärkeren Gedächtnis können wir das erlernte Wissen flexibler in unserer zukünftigen Arbeit, unserem Studium und unserem Leben anwenden und bessere Leistungen und größere Erfolge erzielen.
Um beim destruktiven Lesen den größten Effekt zu erzielen, müssen wir vollständig vorbereitet und konzentriert sein. Wählen Sie einen ruhigen und bequemen Ort und konzentrieren Sie sich auf das Lesen und Verstehen, damit wir so viel wie möglich verstehen und meistern können. Wenn Sie über ein Konzept oder eine Idee verwirrt sind, zögern Sie nicht, Ihre Angst loszuwerden und nach einem tieferen Verständnis zu suchen. Wir können mit Klassenkameraden, Lehrern oder anderen Experten kommunizieren, um diese Konzepte besser zu verstehen und unser Verständnis aufzuzeichnen.
Kurz gesagt ist destruktives Lesen eine positive Lernmethode, die unsere Lerneffizienz und unser Gedächtnis verbessern kann und es uns ermöglicht, Wissen in unserer zukünftigen Arbeit und unserem Leben besser anzuwenden. Solange wir uns konzentrieren, eine bescheidene und fleißige Haltung bewahren und uns daran gewöhnen, unsere Ideen aufzuzeichnen, können wir bessere Lernergebnisse erzielen. Es ist ersichtlich, dass wir das Gedächtnis verbessern müssen. Cistanche kann das Gedächtnis erheblich verbessern, da es antioxidative, entzündungshemmende und alterungshemmende Wirkungen hat, die dazu beitragen können, Oxidation und Entzündungen im Gehirn zu reduzieren und so die Gesundheit des Nervensystems zu schützen. Darüber hinaus kann Cistanche auch das Wachstum und die Reparatur von Nervenzellen fördern und dadurch die Konnektivität und Funktion neuronaler Netzwerke verbessern. Diese Effekte können dazu beitragen, das Gedächtnis, die Lernfähigkeit und die Denkgeschwindigkeit zu verbessern und können auch das Auftreten kognitiver Dysfunktionen und neurodegenerativer Erkrankungen verhindern.

Klicken Sie auf „Ergänzungen kennen, um das Gedächtnis zu stärken“.
Für jedes Szenario evaluieren wir zunächst ein grobkörniges, alterungsbewusstes Wear-Leveling. Wie wir bereits erläutert haben, kann mit dieser Methode kein optimaler Wear-Leveling erreicht werden, weshalb wir sie anschließend in Kombination mit den feinkörnigen Ansätzen bewerten.
Zuerst erläutern wir unseren Evaluierungsaufbau und unsere Analysemethodik und präsentieren dann die Ergebnisse für unsere beiden Hauptszenarien.
7.1 Evaluierungs-Setup
Als technischen Aufbau für die Auswertung nutzen wir die Simulationsumgebung [10], in der wir auch unsere Wear-Leveling-Algorithmen aus den Abschnitten 5 und 6 implementieren.
Obwohl der Simulationsaufbau eine vollständige Systemsimulation durchführt und unsere Implementierung daher auch auf einem realen System laufen würde, bietet die Verwendung der Simulation den entscheidenden Vorteil, dass wir Speicherzugriffe einfach nachverfolgen und anschließend analysieren können.
In dieser Arbeit betrachten wir nur byteadressierbare nichtflüchtige Hauptspeicher (dh keine blockbasierten Speicher). Daher analysieren wir nur die Anzahl der Speicherzugriffe pro Zelle und keine zusätzlichen Effekte, wie z. B. das Löschen von Blöcken bei Flash-basierten Speichern.
Wir zeichnen Speicherzugriffsspuren für mehrere Benchmark-Anwendungen für eine Basisausführung ohne jegliches Wear-Leveling und für die verschiedenen Kombinationen der verwendeten Wear-Leveling-Mechanismen auf.
Wir führen immer eine vollständige Systemsimulation mit einer funktionierenden Implementierung der Wear-Leveling-Algorithmen im Laufzeitsystem durch. Anschließend vergleichen wir die Gesamtzahl der Zugriffe für jedes Speicherbyte und berechnen Indikatoren für die Speicherlebensdauer.
Für das Szenario nicht lesezerstörender NVMs berücksichtigen wir nur Schreibzugriffe und für lesedestruktive NVMs berücksichtigen wir sowohl Schreib- als auch Lesezugriffe.
Dies impliziert auch, dass die Basislinie (kein Wear-Leveling) für beide Szenarien unterschiedlich ist und wir daher über Verbesserungen der Basislinie berichten.
Da es sich bei unserer Implementierung um einen kleinen Bare-Metal-Kernel handelt, erfordert die Portierung und Ausführung von Anwendungen aus bekannten Benchmark-Suiten eine manuelle Code-Integration und die Implementierung der erforderlichen Systemdienste. Daher beschränken wir die Bewertung auf eine kleine Anzahl von Benchmark-Anwendungen.
7.2 Analysemethodik
Für jede aufgezeichnete Zugriffsverfolgung aggregieren wir die Gesamtzahl der gefilterten Zugriffe auf jedes Speicherbyte. Zusätzlich zur grafischen Veranschaulichung der Speicherzugriffszahlen über den Speicherplatz für unsere sechs Benchmarks berücksichtigen wir den analytischen Gewinn bei der Speicherlebensdauer. Wir berechnen mehrere Leistungsindikatoren:
• Erreichte Ausdauer: AE=Mittelwert_Zugriff_Anzahlmax_Zugriff_AnzahlAngenommen, der Speicher kann nicht mehr verwendet werden, sobald die erste Speicherzelle verbraucht ist ,5 Die maximale Zugriffszahl über alle Zellen bestimmt die maximale Lebensdauer.
Bitte beachten Sie, dass dieser Umstand durch den Einsatz einer zusätzlichen Verwaltung fehlerhafter Blöcke vermieden werden könnte. Solange fehlerhafte Blöcke nur auf einer gröberen Granularität als virtuelle Speicherseiten erkannt werden, besteht weiterhin die Notwendigkeit eines Wear-Levelings auf der Granularität virtueller Speicherseiten und kleinerer Granularitäten. Unter perfekten Bedingungen könnten Speicherzugriffe willkürlich auf andere Speicherorte verschoben werden, um alle Zellen vollständig auf Verschleißniveau zu bringen, was dazu führen würde, dass die mittlere Zugriffszahl auf jede Zelle angewendet würde.

Daher gibt der Quotient aus beiden den Prozentsatz der möglichen idealen Speicherlebensdauer an. Zusätzlichen Ersatzspeicher berücksichtigen wir bei dieser Bewertung nicht.
Ausdauerverbesserung: EI=AEanalyzedAEbaselineAngesichts der erreichten Ausdauer gegenüber der Grundlinie und einer anderen Konfiguration gibt der Quotient aus beiden die Verbesserung der erreichten Ausdauer im Vergleich zur Grundlinie an.
• Lebensdauerverbesserung: LI=EIOV+1Angesichts der Ausdauerverbesserung und des Overhead-OV (Prozentsatz zusätzlicher Speicherzugriffe) eines Trace im Vergleich zu seiner Basislinie kann die gewonnene Speicherlebensdauer berechnet werden, indem beide in Beziehung gesetzt werden.
Wenn beispielsweise ein Algorithmus die Ausdauer um den Faktor EI=4 verbessert, aber einen Overhead von OV=100 % verursacht, bedeutet dies, dass die Anwendung aufgrund des Wear-Levelings die doppelte Menge an Speicherzugriffen benötigt, um die Lebensdauer abzuschließen das Gesamtsystem wird um den Faktor LI=2 erhöht.
Für alle Benchmark-Läufe berechnen wir die AE-, EI- und LI-Metriken.
7.3 Grobkörniger Verschleißausgleich
Unsere vorgeschlagene Implementierung umfasst alterungsbewusstes, grobkörniges Wear-Leveling, bei dem das Alter von Speicherseiten durch Stichproben von Zugriffen während der Laufzeit geschätzt wird. In diesem Abschnitt führen wir nur die Altersnäherung und die Neuzuordnung der Speicherseiten gemäß dem Neuzuordnungsalgorithmus (Abschnitt 5.3) durch. Wir zeichnen den resultierenden Speicher-Trace auf und stellen die Gesamtzahl der Zugriffe pro Byte grafisch dar.

7.3.1 Nicht-lesezerstörende NVMs.
Im Fall einer nicht lesezerstörenden NVM werden nur Schreibzugriffe angenähert und das Alter nur anhand der Anzahl der Schreibzugriffe pro Speicherseite geschätzt. In Abbildung 5 stellen wir die Gesamtzahl der Schreibzugriffe (y-Achse) dar der genutzte Speicherplatz (X-Achse) für unsere sechs Benchmark-Anwendungen, wenn der Altersnäherungs- und Seitenneuzuordnungsalgorithmus aktiviert ist.
Wir setzen die Abtastrate der Schreibzugriffe auf das Cwritesample=2,000 und den Benachrichtigungsschwellenwert für den Wear-Leveling-Algorithmus auf nreloc=64. Die Ergebnisse zeigen, dass der Aging-Aware-Algorithmus funktioniert, weil die Schreibzugriffe so verteilt werden, dass alle Bereiche des Speichers nach einem ähnlichen Muster beschrieben werden.
Allerdings sind Schreibzugriffe noch nicht vollständig wear-leveled, was sich aus der Vielzahl an Peaks in der Abbildung ableiten lässt. Es ist auch zu erkennen, dass bei den Benchmarks mit größerem Speicherbedarf (Sha und Rijndael) die Simulationszeit nicht ausreichte, um den gesamten Speicherraum gleichermaßen anzusprechen.
Wenn die Anwendung längere Zeit nicht ausgeführt werden kann, müsste die Wear-Leveling-Konfiguration geändert werden, um einen häufigeren Wear-Leveling zu erreichen und diesen Mangel zu beheben.
7.3.2 Lesedestruktive NVMs.
Wenn das Zielsystem mit einer lesedestruktiven NVM ausgestattet ist, aktivieren wir die Schreib- und Lesenäherung und schätzen das Alter der Speicherseite basierend auf der kumulierten Anzahl an Lese- und Schreibzugriffen, da davon ausgegangen wird, dass beide den gleichen Verschleiß verursachen.
Der Wear-Leveling-Algorithmus bleibt unverändert; lediglich die Eingabe (dh das geschätzte Alter) ist unterschiedlich. Wir behalten die Konfiguration der Schreibnäherung und des Neuzuordnungsschwellenwerts wie in Abschnitt 7.3.1 bei. Wir konfigurieren die Abtastrate von Lesezugriffen weiter für Creadsample=12,000, da Lesezugriffe in einem viel höheren Verhältnis erfolgen als Schreibzugriffe.
Abbildung 6 zeigt die Gesamtzahl der kumulativen Lese- und Schreibzugriffe (y-Achse) über den Speicherplatz (x-Achse). Es lässt sich eine ähnliche Beobachtung wie in Abbildung 5 machen: Das alterungsbewusste Wear-Leveling funktioniert, auch bei destruktiven Lesezugriffen.
Dennoch kann beobachtet werden, dass ein grobkörniges Wear-Leveling nicht ausreicht, um einen allumfassenden Wear-Leveling-Speicher zu erreichen. Die Anwendungen mit größerem Speicherbedarf führen zu einem besseren Wear-Leveling als das in Abschnitt 7.3.1 dargestellte. Da also Lese- und Schreibzugriffe stattfinden, werden mehr Wear-Leveling-Aktionen durchgeführt.
7.4 Feinkörniger Verschleißausgleich
Wie die Auswertung in Abschnitt 7.3 zeigt, kann ein grobkörniges Wear-Leveling nicht den gesamten Wear-Level-Speicher erreichen, da dichte Zugriffs-Hotspots innerhalb von Speicherseiten nicht aufgelöst werden. Daher schlägt dieser Artikel eine zusätzliche feinkörnige Verschleißnivellierung vor, die in diesem Abschnitt bewertet wird. Wir führen zusätzlich zum grobkörnigen Wear-Leveling das feinkörnige Stapel- und Text-Wear-Leveling aus, um ein insgesamt alterungsbewusstes Wear-Leveling zu erreichen.
7.4.1 Nicht-lesezerstörende NVMs
Bei nicht lesedestruktiven NVMs zielt die feinkörnige Erweiterung nur auf den Stapel ab, da der Textbereich nur von Lesezugriffen angesprochen wird. Wir behalten die gleiche Konfiguration wie in Abschnitt 7.3.1 bei und führen bei jeder Neuzuordnung virtueller Speicherseiten eine Stapelverschiebung durch (dh mit demselben Verhältnis wie der Seitenneuzuordnungsalgorithmus). Wir konfigurieren den Verschiebungsabstand (dh die Bewegung des Stapels) auf 64 Bytes.
Abbildung 7 zeigt die resultierende Anzahl an Schreibzugriffen (y-Achse) über den Speicherplatz (x-Achse). Es ist zu beobachten, dass bei einigen Benchmarks ein nahezu vollständig auf Verschleiß basierender Speicher erreicht wird.
Der Mangel im Dijkstra-Benchmark ergibt sich aus der Tatsache, dass Dijkstra das Datensegment intensiv zur Verwaltung der Algorithmusschritte nutzt. Daher treten im Datensegment dichte Schreib-Hotspots auf, die durch unseren feinkörnigen Stapelmechanismus nicht aufgelöst werden können.
7.4.2 Lesedestruktive NVMs
Um ein feinkörniges Wear-Leveling auf lesedestruktiven NVMs durchzuführen, müssen dichte Hotspots für Lese- und Schreibvorgänge angegangen werden. Daher verwenden wir zusätzlich zum alterungsbewussten grobkörnigen Setup aus Abschnitt 7.3.2 unseren Mechanismus zum Stack- und Text-Wear-Leveling.

Wir behalten die gleiche Konfiguration für den grobkörnigen Algorithmus bei und führen bei jeder grobkörnigen Seitenverschiebung einen Stapel und eine Textverschiebung durch. Generell können beide Verhältnisse jedoch separat auf einen beliebigen Wert eingestellt werden.
Der Verschiebungsabstand für die Stapel- und Textverschiebung ist auf 64 Bytes festgelegt. Die Ergebnisse in Abbildung 8 erlauben wiederum ähnliche Beobachtungen wie für den nicht lesedestruktiven Fall in Abschnitt 7.4.1.
Im Allgemeinen wird das Gedächtnis unter Berücksichtigung des zerstörerischen Einflusses von Lesen und Schreiben abgenutzt. Bei den crc32- und Rijndael-Benchmarks sind dennoch größere Ungleichmäßigkeiten zu beobachten. Dies ist auf die Tatsache zurückzuführen, dass das Text-Wear-Leveling nur den verschiebbaren Code verschiebt, nicht jedoch GOT und PLT. Diese beiden Tabellen werden jedoch während der Benchmark-Ausführung gelesen und haben daher einen destruktiven Einfluss auf den zugrunde liegenden Speicher.

7.5 Analyseergebnisse
Da die zuvor präsentierten Zahlen nur einen Anhaltspunkt für die erreichte Qualität unseres vorgeschlagenen Wear-Leveling-Algorithmus geben, berechnen wir die analytischen Lebensdauerindikatoren (Abschnitt 7.2) für alle unsere Benchmarks und fassen sie in Tabelle 1 zusammen. In dieser Tabelle können mehrere Beobachtungen gemacht werden. Wenn man zunächst nur die letzte Spalte (LI) betrachtet, erkennt man, dass die gesamte Speicherlebensdauer durch unseren Algorithmus um bis zu den Faktor 955 erhöht wird.
Mit anderen Worten: Eine Speicherlebensdauer von mehreren Tagen ohne Wartung würde allein durch den Einsatz unserer softwarebasierten Algorithmen auf viele Jahre verlängert werden. Zweitens können Lesezugriffe in einigen Benchmarks ein etwas schlechteres Wear-Level aufweisen als Schreibzugriffe, was sich aus der geringeren Lebensdauerverbesserung ableiten lässt. Wie in Abschnitt 7.1 erläutert, muss für lesezerstörende NVMs eine weitere Basislinie berücksichtigt werden. Somit kann die Verbesserung deutlich geringer ausfallen als bei nicht lesedestruktiven NVMs.
Drittens kann durch die Untersuchung der ersten Spalte (AE) abgeleitet werden, wie optimal die verwendeten Algorithmen sind. Wenn AE 1 wäre, wäre keine weitere Verbesserung möglich. Es ist zu beobachten, dass mit einer rein grobkörnigen Verschleißnivellierung in den meisten Fällen nur wenige Prozent der optimalen Lebensdauer erreicht werden können. Beim feinkörnigen Wear Leveling sind die Algorithmen deutlich leistungsfähiger, bieten aber dennoch Potenzial für weitere Verbesserungen. Darüber hinaus ist die erreichte Lebensdauer bei den verschiedenen Benchmark-Anwendungen unterschiedlich.
Der Rijndael-Benchmark erzielt mit Abstand die schlechtesten Ergebnisse, da unsere Algorithmen damit nicht richtig umgehen können. Obwohl der Overhead für die verschiedenen Wear-Leveling-Konfigurationen implizit im LI-Indikator enthalten ist, kann der Overhead die Menge zusätzlicher Speicherzugriffe aufgrund des Wear-Levelings sein selbst untersucht werden. Bei leistungsempfindlichen Anwendungen ist die zusätzliche Menge an Speicherzugriffen ein wesentlicher Faktor für den Leistungsabfall.
Wir berechnen den Overhead, indem wir die Gesamtzahl der Speicherzugriffe aus einer Simulation mit Wear Leveling mit der Basissimulation ohne Wear Leveling vergleichen. Berücksichtigt man nur Lesezugriffe, ergibt sich daraus der Lese-Overhead (RO), für Schreibzugriffe der Schreib-Overhead (WO) und für beide Zugriffsarten in Kombination der Lese-Schreib-Overhead (RWO).

Tabelle 2 enthält die resultierenden Gemeinkosten für die verschiedenen Wear-Leveling-Szenarien. Es ist ersichtlich, dass nur für grobkörniges Wear-Leveling alle Overhead-Typen bei einigen Prozent liegen. Beim Einsatz eines feinkörnigen Wear-Levelings zeigt sich, dass das Ergebnis des Wear-Levelings von der analysierten Anwendung abhängt. Für Rijndael beispielsweise führt selbst die Berücksichtigung enormer Overheads für das Wear Leveling nicht zu einer wesentlich längeren Speicherlebensdauer. Dies lässt sich dadurch erklären, dass das Wear-Leveling diese Arten von Speicherzugriffen nicht gut anspricht.
Einige Speicherbereiche, auf die intensiv zugegriffen wird, unterliegen weiterhin keinem Wear-Level. Bei der Untersuchung der Benchmarks, bei denen Wear-Leveling gute Verbesserungen der Speicherlebensdauer erzielen kann, beträgt der Overhead jedoch etwa 300 % – das heißt, mit Wear-Leveling werden viermal so viele Speicherzugriffe ohne Wear-Leveling durchgeführt.
Bei der Interpretation dieses Ergebnisses sollte berücksichtigt werden, dass der Overhead durch den Konfigurationsparameter auf die Kosten des Wear-Leveling-Ergebnisses abgestimmt werden kann. Wenn die Anwendung jedoch nicht leistungsempfindlich ist, kann ein solch großer Overhead dennoch beträchtlich sein; Die Speicherlebensdauer erhöht sich dennoch um den Faktor ≈200.
Der Laufzeitaufwand unserer Wear-Leveling-Algorithmen ist ein wichtiger Indikator für den praktischen Einsatz. Nicht nur erfordern die zusätzlichen Speicherzugriffe mehr Zeit für die Ausführung, sondern auch die Ausführung der Zugriffsnäherung und der Wear-Leveling-Entscheidungen erfordern zusätzliche Rechenzeit. Um diesen Overhead zu analysieren, vergleichen wir die gesamten erforderlichen Systemzyklen für eine Basiskonfiguration und Konfigurationen mit aktiviertem Wear-Leveling. Der relative Anstieg ist in Tabelle 3 angegeben.
Es lässt sich beobachten, dass die feinkörnigen Wear-Leveling-Methoden im Allgemeinen einen höheren Laufzeitaufwand verursachen als die grobkörnigen Methoden; Der Lese-Wear-Leveling erfordert mehr zusätzliche Ausführungszeit als der Schreib-Wear-Leveling. Darüber hinaus lässt sich erkennen, dass sich der Zeitaufwand für verschiedene Benchmark-Anwendungen stark unterscheidet.
Beispielsweise ist crc32 mit einem Overhead von höchstens 32 % konfrontiert, während Rijndael mit einer fast siebenfachen Verlängerung der Ausführungszeit zu kämpfen hat. Es ist zu beachten, dass der Zeitaufwand auch durch Anpassen der Häufigkeit der Verschleißausgleichsaktionen konfiguriert werden kann. Wenn jedoch eine Leistungseinbuße in Bezug auf die Ausführungszeit von bis zu fast dem Doppelten möglich ist, können die meisten Benchmark-Anwendungen mithilfe softwareverwalteter Lösungen auf Verschleißniveau gebracht werden.
8 SCHLUSSFOLGERUNG
In dieser Arbeit zielen wir auf Computersysteme ab, die mit NVM als Hauptspeicher ausgestattet sind. Wir unterscheiden die Fälle in diesem Speicher entweder als nicht lesedestruktiv oder lesedestruktiv. Wir schlagen ein softwaregesteuertes Wear-Leveling vor, um die Lebensdauer solcher Systeme zu verbessern, da eine geringe Zellenlebensdauer zu einer erheblich verkürzten Lebensdauer führen kann.
Bei ersterem Systemtyp berücksichtigen wir Schreibzugriffe, um das aktuelle Alter des Speichers zu ermitteln und entsprechende Wear-Leveling-Aktionen durchzuführen, bei letzterem berücksichtigen wir Schreib- und Lesezugriffe gleichermaßen, da beide den Speicher gleichermaßen belasten. Um ein alterungsbewusstes Wear-Leveling (d. h. das aktuelle Speicheralter wird für jede Wear-Leveling-Entscheidung untersucht) während der Laufzeit durchzuführen, schlagen wir eine generische Laufzeitnäherung von Schreib- und Lesezugriffen vor, die nicht auf spezielle Hardware oder Debugging-Funktionen angewiesen ist.
Diese Näherung wird anschließend in einen Wear-Leveling-Algorithmus eingespeist, der Speicherseiten entsprechend ihrem geschätzten Alter austauscht. Da viele Anwendungen ein zusätzliches Wear-Leveling für feine Granularitäten erfordern, schlagen wir außerdem zwei feinkörnige Wear-Leveling-Mechanismen vor, bei denen wir speziell auf den Stapel- und Textbereich abzielen.
Diese spezifischen Lösungen funktionieren zudem ohne besondere Hardware- oder Systemanforderungen und werden daher softwaregesteuert verwaltet. Die spezifische Lösung für das Textsegment wird nur für lesezerstörende NVMs aufgerufen, da das Textsegment nur von Lesezugriffen angegriffen wird. Unsere Auswertung vergleicht die endgültige Speicherlebensdauer nach Anwendung unserer Algorithmen mit der Speicherlebensdauer der Basisausführung bestimmter Benchmark-Anwendungen. Bei nicht lesedestruktiven NVMs können wir die Lebensdauer um bis zu Faktor 955x verlängern, bei lesedestruktiven NVMs erreichen wir eine Verbesserung bis zu Faktor 418x.
Obwohl diese Zahlen stark vom Speicherverhalten der Basisausführung der spezifischen Anwendung abhängen, erreichen wir ≈40 % des idealen Wear-Levelings für nicht lesedestruktive NVMs und ≈20 % des idealen Wear-Levelings für lesedestruktive NVMs. Die Hauptursache hierfür sind Speicherzugriffsmuster, die von unseren Methoden nicht explizit berücksichtigt werden.
9 AUSBLICK
Wie unsere Auswertung zeigt, erreichen wir durch den entsprechenden Einsatz unserer Algorithmen eine sinnvolle Verbesserung der Speicherlebensdauer. Dennoch können wir den idealen Verschleißausgleich (angezeigt durch die erreichte Ausdauer (AE)) nicht erreichen.

Mit anderen Worten: Unsere Algorithmen können weiter verbessert werden, um in allen Szenarien einen besseren Wear-Leveling zu erreichen. Wie beim Dijkstra-Benchmark zu beobachten ist, benötigen die Daten- und BSS-Abschnitte in einigen Fällen auch einen spezifischen Wear-Leveling. Darüber hinaus löst die spezifische Lösung für das Textsegment keine Zugriffs-Hotspots im GOT und PLT. Wir beabsichtigen, diese Mängel in zukünftigen Arbeiten zu beheben.
REFERENZEN
[1] Hoda Aghaei Khouzani, Yuan Xue, Chengmo Yang und Archana Pandurangi. 2014. Verlängerung der PCM-Lebensdauer durch energieeffiziente, segmentbewusste und verschleißfeste Seitenzuweisung. In Proceedings des 2014 International Symposium on Low Power Electronics and Design (ISLPED'14). ACM, New York, NY, 327–330.https://doi.org/10.1145/2627369.2627667
[2] Chi-Hao Chen, Pi-Cheng Hsiu, Tei-Wei Kuo, Chia-Lin Yang und Cheng-Yuan Michael Wang. 2012. Altersbasierte PCMwears-Nivellierung mit nahezu null Suchkosten. In Proceedings of the 49th Annual Design Automation Conference (DAC'12). ACM, New York, NY, 453–458. https://doi.org/10.1145/2228360.2228439[3] Sangyeun Cho und Hyunjin Lee. 2009. Flip-N-Write: Eine einfache deterministische Technik zur Verbesserung der PRAM-Schreibleistung, -energie und -ausdauer. In Proceedings des 42. jährlichen IEEE/ACM International Symposium on Microarchitecture (MICRO'09). ACM, New York, NY, 347–357.https://doi.org/10.1145/1669112.1669157
[4] Jianbo Dong, Lei Zhang, Yinhe Han, Ying Wang und Xiaowei Li. 2011. Nivellierung der Verschleißrate: Lebensdauerverlängerung von PRAM mit Ausdauervariation. In Proceedings der 48. Design Automation Conference. ACM, New York, NY, 972–977.
[5] Alexandre P. Ferreira, Miao Zhou, Santiago Bock, Bruce Childers, Rami Melhem und Daniel Mossé. 2010. Erhöhung der Lebensdauer des PCM-Hauptspeichers. In Proceedings of the Conference on Design, Automation, and Test in Europe (DATE'10).914–919.http://dl.acm.org/citation.cfm?id=1870926.1871147.
[6] Vaibhav Gogte, William Wang, Stephan Diestelhorst, Aasheesh Kolli, Peter M. Chen, Satish Narayanasamy und Thomas F. Wenisch. 2019. Software-Verschleißmanagement für persistente Erinnerungen. In Proceedings der 17. USENIX-Konferenz zu Datei- und Speichertechnologien (FAST'19). 45–63.https://www.usenix.org/conference/fast19/presentation/gogte.
[7] William Goh und Andreas Dannenberg. 2014. MSP430 FRAM-Technologie – Anleitungen und Best Practices. Technischer Bericht SLAA628. Texas Instruments.https://www.ti.com/lit/an/slaa628a/slaa628a.pdf?ts=1609843980784&ref_url=https253A252F252Fwww.ti.com252Fproduct252FMSP430FR5989-EP.
[8] MR Guthaus, JS Ringenberg, D. Ernst, TM Austin, T. Mudge und RB Brown. 2001. MiBench: Eine kostenlose, kommerziell repräsentative eingebettete Benchmark-Suite. In Proceedings of the 2001 IEEE International Workshop onWorkload Characteristics (WWC'01). IEEE, Los Alamitos, CA, 3–14.https://doi.org/10.1109/WWC.2001.15
[9] Christian Hakert, Kuan-Hsun Chen, Paul R. Genssler, Georg Brüggen, Lars Bauer, Hussam Amrouch, Jian-Jia Chen und Jörg Henkel. 2020. SoftWear: Softwarebasiertes In-Memory-Wear-Leveling für nichtflüchtigen Hauptspeicher. CoRRabs/2004.03244 (2020).https://arxiv.org/pdf/2004.03244.pdf.
[10] Christian Hakert, Kuan-Hsun Chen, Mikail Yayla, Georg von der Brüggen, Sebastian Bloemeke und Jian-Jia Chen.2020. Softwarebasierte Speicheranalyseumgebungen für In-Memory Wear-Leveling. In Proceedings der 25. Asien- und Südpazifik-Designautomatisierungskonferenz (ASP-DAC'20).
[11] Y. Han, J. Dong, K. Weng, Y. Wang und X. Li. 2016. Verbesserter Verschleißratenausgleich zur Verbesserung der PRAM-Lebensdauer unter Berücksichtigung von Prozessschwankungen. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 24, 1 (Januar 2016), 92–102.https://doi.org/10.1109/TVLSI.2015.2395415
[12] Kaixin Huang, Yijie Mei und Linpeng Huang. 2020. Quail: Verwendung des NVM-Schreibmonitors, um transparentes Wear Leveling zu ermöglichen. Journal of Systems Architecture 102 (2020), 101658.
For more information:1950477648nn@gmail.com






