TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Simulation und Tolerierung persistenter Speicherhardwarefehler in Software

BetreuerArthur Martens
ProfessorProf. Dr. Rüdiger Kapitza
Projektdnvmemory
IBR GruppeDS (Prof. Kapitza)
ArtMasterarbeit
Statusoffen

Motivation

Als persistenter Speicher (engl. persistent memory) versteht man neue Formen des Hauptspeichers mit der Eigenschaft Daten auch ohne konstante Stromzufuhr dauerhaft speichern zu können. Speziell für diese Form des Hauptspeichers wurde am IBR DeNoVo-Malloc entwickelt. Eine der Kerneigenschaften dieser Speicherallokationsbibliothek ist die, für den Benutzer transparente, Tolerierung von Bitkippern im persistenten Speicher. Denn Fehler in persistenten Daten sind besonders kritisch, weil sie nicht durch einen Neustart des Systems behoben werden können und daher explizite Maßnahmen zur Detektion und Korrektur erfordern.

Problemstellung

Bisher lassen sich mit DeNoVo-Malloc nur transiente Bitkipper (soft errors) tolerieren, die z. B. durch Umweltstrahlung oder Fertigungsvarianzen ausgelöst werden. Es kommt jedoch im persistenten Speicher auch zu persistenten Fehlern (hard errors). Diese entstehen durch defekte Zellen oder Alterungseffekte. Neue, serienreife, persistente Speichertechnologien wie z. B. Phase Change Random Access Memory (PCRAM) und Ferro-Electric Random Access Memory (FeRAM) altern besonders schnell, sodass Zellen nach nur 1 bis 100 Millionen Schreibzugriffen nicht mehr widerbeschrieben werden können.

Aufgabenstellung

Ziel dieser Masterarbeit ist die Simulation von persistenten Speicherfehlern und die anschließende Implementierung von Toleranzmaßnahmen für diese Fehler in DeNoVo-Malloc. Daraus ergeben sich die folgenden Teilaufgaben, die sich in drei Kategorien gliedern: Simulation persistenter Fehler (sim), Erweiterungen in der Benutzerbibliothek von DeNoVo-Malloc (user) und Erweiterungen im Linux-Kernel-Modul von DeNoVo-Malloc (kernel).

  • Erweiterung der Fehlererkennung um persistente Fehler (user/kernel).
  • Implementierung einer Speichermigration für Verwaltungsdaten (kernel).
  • Implementierung einer Funktion zur Speichermigration von Nutzerdaten (user/kernel).
  • Analyse und Abwägung verschiedener Möglichkeiten persistente Hardwarefehler in Software zu simulieren (sim).
  • Implementierung von Testandwendungen und Fehlerinjektionsszenarien (sim).
  • Evaluation der implementierten Lösung mithilfe der Simulation persistenter Fehler (sim).
Optional können auch Maßnahmen für den Abnutzungsausgleich (engl. wear leveling) implementiert werden.


aktualisiert am 11.06.2018, 16:07 von Arthur Martens
printemailtop