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

Implementation of Simulation Markers in Gem5

Bearbeiter(anonym, Login erforderlich)
BetreuerBjörn Cassens
ProfessorProf. Dr. Rüdiger Kapitza
Projektbats
IBR GruppeDS (Prof. Kapitza)
ArtBachelorarbeit
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 und die CPU simulieren muss.

Problem

Für die Auswertung und Bestimmung der Ausmaße einer Änderung am Betriebssystemkern werden Benchmarks wie CPUSPEC2006 oder MiBench genutzt. Dies erfordert, das der Betriebssystemkern und die Benchmarks gestartet werden. Dies führt zu folgendem Problem: Für den Start des Betriebssystemkerns sind viele Speicherzugriffe nötig die um mehrere Faktoren größer als die der Benchmarks sind. Aufgrund dessen, müssen die Simulierten Werte wie beispielsweise Schreib- und Lesezugriffe auf den Hauptspeicher zu Beginn und nach Beendigung eines Benchmarks abgespeichert werden. Damit ist es möglich, die Simulationsstatistiken für einzelne Benchmarks auszuwerten, was für eine Interpretation und Bewertung der Änderung zwingend erforderlich ist.

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. Gem5 bietet die Funktionalität an, den Start und das Beenden von Benchmarks zu markieren. Das NVMain Framework hingegen bietet diese Funktionalität nicht und muss daher erweitert werden. Neben der Markierung von Start und Ende eines Benchmarks ist auf die Akquirierung der Daten ein wichtiges Thema. Derzeitig können nur Zugriffe auf den physikalischen Speicher abgespeichert werden. Um jedoch später bei der Auswertung Rückschlüsse auf die Datensegmente ziehen zu können, sind auch die virtuellen Adressen zu einem Speicherzugriff vonnöten, was ebenfalls in dieser Arbeit implementiert werden soll.

Aufgabenstellung

  • Einarbeitung in das Gem5 und NVMain Framework
  • Erstellung eines Konzeptes für die Umsetzung der Benchmark Markierungen
  • Prototypische Umsetzung der Benchmark Markierungen
  • Implementierung der Datenakquirierung
  • Evaluation der Ergebnisse anhand von MiBench

Links


aktualisiert am 25.10.2016, 15:36 von Björn Cassens
printemailtop