blatt01.md 2.87 KB
Newer Older
Christoph Gerum's avatar
Christoph Gerum committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
Title: Blatt 1
status: hidden

# Simulationstechniken

## Aufgabe 1: Einrichten der Simulationsumgebung

In der ersten Aufgabe soll zunächst die SImulationsumgebung eingerichtet werden. 
Sie können dazu eine der zwei folgenden Möglichkeiten wählen:

### 1. Möglichkeit: Verwendung der bereitgestellten virtuellen Maschine (empfohlen)

Unter  [http://atreus.informatik.uni-tuebingen.de/~gerum/ra/vm/ra_virtualbox.ova](http://atreus.informatik.uni-tuebingen.de/~gerum/ra/vm/ra_virtualbox.ova) steht ein Dateisystemimage für die Virtualisierungsumgebung [Virtualbox](https://www.virtualbox.org) zur Verfügung.
Laden Sie das Image und die Virtualisierungssoftware herunter und importieren sie das Dateisystem Image.
Im sich in die virtuelle Maschine einzuloggen verwenden sie als Benutzername und Passwort: *vagrant*. 

Falls sie eine graphische Oberfläche benutzen möchten können sie diese mit ```sudo apt-get install ubuntu-desktop``` installieren.
Als Passwort wird hier wieder *vagrant* verwendet.
   

### 2. Möglichkeit: Manuelles Einrichten der Simulationsumgebung
   
Wir beschreiben hier die manuelle Einrichtung auf einem Ubunut 14.04 System. Für andere Systeme muss die Anleitung evtl. angepasst werden.

Zunächst werden die Abhängigkeiten von gem5 installiert:

    sudo apt-get install build-essential scons  python-dev swig m4 libprotobuf-dev zlib1g-dev mercurial git
    sudo apt-get install libgoogle-perftools-dev  protobuf-compiler libncurses5-dev libelf-dev  




Zuletzt wird noch ein compiler zur Erzeugung von ausführbaren Dateien für die Zielarchitektur installiert. 

    sudo apt-get install gcc-arm-linux-gnueabihf


## Aufgabe 2: Hello World
Schreiben sie ein Hello-World in c und kompilieren Sie dieses für ARM. 

* statisch linken
* Befehl zum kompilieren geben? 

Führen Sie dieses im gem5-Simulator aus. Verwenden Sie dafür die bereitgestellte Config-Datei se.py

``` build/ARM/gem5.opt configs/example/se.py -c hello.elf```

Die genauen Anweisungen finden Sie auch auf der Introduction Seite: 
http://gem5.org/Introduction#Running

### Abgabe:
Geben Sie ihr Hello-World, sowie die Ausgabe auf der Konsole ab.

## Aufgabe 3: CPU-Typen und Ausführungszeiten
gem5 stellt verschiedene Typen von CPU-Modellen bereit, mit denen Simuliert werden kann. In ILIAS finden Sie den Sourcecode für eine einfache Mathe-Benchmark. Kompilieren Sie diese und führen sie auf den verschiedenen Modellen aus.

* m5out auswerten
* ausführungszeit und simulierte cycles rausfinden

Beschreiben Sie die Unterschiede und begründen Sie diese.

### Abgabe:
* Tabelle mit den Ausführungszeiten (sim_seconds, sim_ticks, host_seconds)
* Erklärung der Unterschiede.

## Aufgabe 4: Configuration Scripts
In dieser Aufgabe sollen Sie sich mit den Konfigurationsdateien von gem5 vertraut machen.

Diese Dateien sind python-Skripte, die aber auf dem Simulator, und nicht dem Standard-Interpreter ausgeführt werden.