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

Development of a Memory Controller in Gem5

BetreuerBjörn Cassens
ProfessorProf. Dr. Rüdiger Kapitza
Projektbats
IBR GruppeDS (Prof. Kapitza)
ArtMasterarbeit
Statusabgeschlossen

Einleitung

In heutigen Servern ist der installierte RAM neben der CPU oder ggF. der Grafikkarte einer der größten Energiekonsument, der bis zu 40% des gesamt Energiebedarfs ausmachen kann. Daher ist auch die Betrachtung des RAM's für die Gestaltung energiegewahrer Systeme nötig. NVRAM zum Beispiel ist eine zukunftsträchtige Technologie, die neben einer höheren Speicherdichte auch den Energiebedarf des Hauptspeichers senken kann. Neben diesen positiven Eigenschaften von NVRAM weist diese Technologie auch negative Eigenschaften wie Beispielsweise höhere Schreiblatenzen oder ein höherer Energiebedarf für das Schreiben auf. Die heutigen Betriebssystemkerne gehen derzeit von symmetrischen Zugriffszeiten aus, da bisher nur DRAM als Hauptspeicher eingesetzt wird. In zukünftigen Systemen hingegen ist die parallele Nutzung von DRAM und NVRAM denkbar, die tiefgreifende Änderungen im Betriebssystemkern erfordern. Da bisher kein NVRAM wie Phase-Change RAM (PRAM) oder Spin-Transfer Torque RAM verfügbar ist, kann das Verhalten von NVRAM nur innerhalb einer Simulation nachgestellt werden. Um den Energiebedarf ermitteln zu können, müssen innerhalb der Simulation alle Schreib- und Lesezugriffe entsprechend gesammelt und ausgewertet werden. Dies erfordert eine feingranulare Simulation, die neben dem Speicher auch Caches, CPU's und den Memory Controller simulieren muss.

Problem

Damit der Betriebssystemkern Entscheidungen darüber treffen kann, in welchen Speicher eine Page eingelagert bzw. migriert werden soll, sind Informationen über die Anzahl von Lese- und Schreibzugriffen nötig. Da der Memory Controller alle Schreib- und Lesezugriffe auf dem Speicher ausführt, soll dieser erweitert werden. Dies umfasst das Zählen von Schreib- und Lesezugriffe, das persistente Abspeichern von Schreibzugriffen auf dem NVRAM und die Generierung von Interrupts wenn eine Page häufig geschrieben wird.

Für die Simulation wird das Programm Gem5 genutzt, welches eine detaillierte Simulation von CPU's ermöglicht. Um das Verhalten von NVRAM nachzustellen, wird das Framework NVMain genutzt. NVMain stellt für die Simulation diverse API's zur Verfügung, die unter anderem auch das Entwickeln eigener Memory Controller ermöglicht.

Aufgabenstellung

  • Einarbeitung in Gem5 und das NVMain Framework
  • Entwicklung eines Memory Controllers, der die o.g. Funktionalitäten realisiert
  • Entwicklung eines Kernel-Moduls, welches den Memory Controller steuern kann
  • 4. Evaluation der Ergebnisse anhand eines Benchmarks z.B. MiBench

Links


aktualisiert am 27.11.2017, 13:53 von Björn Cassens
printemailtop