Commit 04ddf195 authored by Christoph Gerum's avatar Christoph Gerum

Fix some typos

parent 39041235
......@@ -7,7 +7,7 @@ status: hidden
## Aufgabe 1: Einrichten der Simulationsumgebung
In der ersten Aufgabe soll zunächst die SImulationsumgebung eingerichtet werden.
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)
......@@ -16,10 +16,14 @@ Unter [http://atreus.informatik.uni-tuebingen.de/~gerum/ra/vm/ra_virtualbox.ova
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*.
Im Unterverzeichnis ```parallel_computer_architecture/exercises/aufgaben``` finden sie die Aufgaben und den zugehörigen Beispielcode.
Um die Aufgaben auf den neuesten Stand zu bringen führen sie in diesem Verzeichnis folgendes Kommando aus:
git pull
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 aktuellen Ubuntu System. Für andere Systeme muss die Anleitung evtl. angepasst werden.
......@@ -38,25 +42,29 @@ Dieser wird im Verzeichnis ```gem5``` übersetzt mit:
scons build/ARM/gem5.opt
Zuletzt wird noch ein compiler zur Erzeugung von ausführbaren Dateien für die Zielarchitektur installiert.
Zuletzt wird noch ein Compiler zur Erzeugung von ausführbaren Dateien für die Zielarchitektur installiert.
sudo apt-get install gcc-arm-linux-gnueabihf
Weitere Informationen zur installation GEM5 finden Sie beispielsweise unter:
Weitere Informationen zur Installation von GEM5 finden Sie beispielsweise unter:
* [http://gem5.org/Compiling_M5](http://gem5.org/Compiling_M5)
* [http://pages.cs.wisc.edu/~david/courses/cs752/Spring2015/gem5-tutorial/part1/building.html](http://pages.cs.wisc.edu/~david/courses/cs752/Spring2015/gem5-tutorial/part1/building.html)
Für diese Aufgabe ist **keine** Abgabe notwendig.
Den Beispielcode und die Aufgaben für den Rest der Übungen erhalten Sie mittels:
git clone https://atreus.informatik.uni-tuebingen.de/advanced_computer_architecture/exercises.git
## Aufgabe 2: Einführung in Instruktionssatzsimulation
Schreiben sie ein Programm das ```Hello World!``` ausgibt in C und kompilieren Sie dieses wie folgt für ARM.
Schreiben Sie ein Programm das ```Hello World!``` ausgibt in C und kompilieren Sie dieses wie folgt für ARM.
arm-linux-gnueabihf-gcc -static -O3 hello.c -o hello.elf
Führen Sie dieses im gem5-Simulator aus. Verwenden Sie dafür die bereitgestellte Config-Datei se.py
Führen Sie dieses im gem5-Simulator aus. Verwenden Sie dafür die bereitgestellte Konfigurationsdatei se.py
$(GEM5_ROOT)/build/ARM/gem5.opt $(GEM5_ROOT)/configs/example/se.py -c hello.elf
......@@ -65,8 +73,10 @@ Die genauen Anweisungen finden Sie auch auf der Introduction Seite des Simulator
### Fragen
Auf diesem Blatt und vermutlich auch auf den weiteren Blättern werden die Benchmarks im sogenannten Syscall Emulation Mode ausgeführt.
1. Was ist der Unterschied zwischen dem Syscall Emulation Mode und dem Full System Mode?
2. Welche Problemem können sich ergeben wenn der Syscall Emulation Mode für die bewertung Rechnerarchitekturen eingesetzt werden?
2. Welche Problemen können sich ergeben wenn der Syscall Emulation Mode für die Bewertung von Rechnerarchitekturen eingesetzt werden?
3. Welche Vorteile bietet der Syscall Emulation Mode?
### Abgabe:
......@@ -77,7 +87,7 @@ Geben Sie den Quellcode ihres Hello World, die beantworteten Fragen, sowie die
## Aufgabe 3: Skriptbasierte Konfiguration des Simulators
Für einfache Simulationenenthält GEM5 schon beispielkonfigurationen wie ```$(GEM5_ROOT)/configs/example/se.py``` und ```$(GEM5_ROOT)/configs/example/fs.py```.
Für einfache Simulationen enthält GEM5 schon Beispielkonfigurationen wie ```$(GEM5_ROOT)/configs/example/se.py``` und ```$(GEM5_ROOT)/configs/example/fs.py```.
Bei aufwändigeren Simulationen und eigenen Erweiterungen müssen allerdings eigene Konfigurationen erstellt werden.
Diese Konfigurationsdateien sind einfache [Pythonskripte](http://python.org), die aber auf dem Simulator (in unserem Fall: ```$(GEM5_ROOT)/build/ARM/gem5.opt```),
......@@ -102,12 +112,12 @@ dieser Stelle nicht betrachtet werden soll, können hier einfach die Standardarg
``` python
system.clk_domain = SrcClockDomain()
system.clk_domain.clock = '2GHz'
system.clk_domain.clock = '1GHz'
system.clk_domain.voltage_domain = VoltageDomain()
```
Als nächstes wird der Adressraum der Prozessoren in Teilbereiche für die einzelnen Speicher-/Peripheriegeräte unterteilt.
In diesem Fall reicht ein einzelner bereich für den 512 MB großen Hauptspeicher. Außerdem wird der detailgrad der Speichersimulation
In diesem Fall reicht ein einzelner Bereich für den 512 MB großen Hauptspeicher. Außerdem wird der Detailgrad der Speichersimulation
angegeben. Hier ist in den meisten fällen ```timing``` die richtige Wahl. Falls die AtomicSimpleCPU verwendet wird,
muss hier allerdings ```atomic``` angegeben werden.
......@@ -117,7 +127,7 @@ system.mem_ranges = [AddrRange('512MB')]
system.mem_mode = 'timing'
```
Als nächstes wird das CPU-Modell instanziert. Auch wenn in der Simulation keine Interupts verwendet werden muss immer in
Als nächstes wird das CPU-Modell instanziiert. Auch wenn in der Simulation keine Interupts verwendet werden muss immer ein
Interrupt-Controller erzeugt werden.
......@@ -161,21 +171,18 @@ Und die Simulation gestartet.
``` python
root = Root(full_system = False, system = system)
m5.instantiate()
print "Beginning simulation!"
exit_event = m5.simulate()
print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())
```
Die Konfigurationsdatei finden Sie auch unter [aufgaben/blatt01/simple.py](/aufgaben/blatt01/simple.py).
Die Konfigurationsdatei finden Sie auch unter [simple.py](../aufgaben/blatt01/simple.py).
Erweitern Sie die Konfiguration so, dass wie in der folgenden Abbildung L1 Caches verwendet werden.
![Abbildung der gewünschten Systemkonfiguration](/aufgaben/figures/system1.svg)
![Abbildung der gewünschten Systemkonfiguration](../aufgaben/figures/system1.svg)
Die Caches sollen die folgende Konfiguration haben:
......@@ -188,7 +195,7 @@ Die Caches sollen die folgende Konfiguration haben:
| Response Latency | 2 Cycles | 2 Cycles |
Die Parameter des Caches können der Datei ```src/mem/cache/BaseCache.py``` im gem5 verzeichnis entnommen werden.
Die Parameter des Caches können der Datei ```src/mem/cache/BaseCache.py``` im ```gem5``` Verzeichnis entnommen werden.
``` python
class L1ICache(BaseCache):
......@@ -207,16 +214,45 @@ Eine Datei ```simple_cache.py``` die ein Programm ```./hello.elf``` auf der ange
## Aufgabe 4: CPU-Typen und Ausführungszeiten
Der GEM5
Der GEM5 Simulator enthält verschieden Modelle für CPU-Architekturen.
Erstellen Sie basierend auf ```simple_cache.py``` eine Konfiguration bei der Sich das simulierte Programm und das simulierte
CPU-Modell mit Hilfe eines Kommandozeilenschalters auswählen lässt. Die sonstige Systemkonfiguration soll wie in der vorhergehenden Aufgabe sein.
Zum parsen der Kommandozeilenargumente verwenden sie am besten das Python-Modul [argparse](https://docs.python.org/2.7/library/argparse.html).
Im Unterverzeichnis ```automotive``` finden Sie verschiedene Benchmarkprogramme.
Führen sie die folgenden Benchmarks aus.
| Benchmark | Commando |
|----------------|------------------------------------------------------------------------------------------|
| basicmath | automotive/basicmath/basicmath_small |
| bitcnts | automotive/bitcount/bitcnts 75000 |
| qsort | automotive/qsort/qsort_small automotive/qsort/input_small.dat |
| susan_smooth | automotive/susan/susan automotive/susan/input_small.pgm output_small.smoothing.pgm -s |
| susan_edge | automotive/susan/susan automotive/susan/input_small.pgm output_small.edges.pgm -e |
| susan_contrast | automotive/susan/susan automotive/susan/input_small.pgm output_small.corners.pgm -c |
Nach der Ausführung einer Simulation findet sich in der Datei ```m5out/stats.txt``` das Simulationsergebnis.
In diesem Fall interessieren uns vor allem die Anzahl der simulierten Takte ```sim_ticks`` und die Ausführungszeit der Simulation ```host_seconds```(Simulationsperformanz).
sim_ticks 27916229000 # Number of ticks simulated
...
host_seconds 6.56 # Real time elapsed on the host
Erstellen Sie einen Plot in dem sich die Performance der simulierten CPUs vergleichen lässt.
Im Unterverzeichnis ```simple_cache.py```
Erstellen Sie einen Plot mit dem sich die Performance des Simulators bei den unterschiedlichen CPU-Modellen vergleichen lässt.
### Fragen
1. Wie unterscheiden sich die 3 CPU-Typen? Beschreiben Sie die characteristischen Eigenschaften kurz.
2, Überlegen Sie sich für jede der 3 Varianten einen sinnvollen Einsatzzweck beim Entwurf einer Rechenerarchitektur.
1. Welche der CPU modelle hat die höchste Performance? Welches der CPU-Modelle erlaubt die kürzesten Simulationsdauern.
2. Wie unterscheiden sich die 3 CPU-Typen? Beschreiben Sie die charakteristischen Eigenschaften kurz.
3. Überlegen Sie sich für jeden der 3 CPU-Typen einen sinnvollen Einsatzzweck beim Entwurf einer Rechenerarchitektur.
### Abgabe:
Abzugeben sind: Skript zum ausführen der Messungen, Plot der Ergebnisse sowie antworten auf die Fragen.
Abzugeben sind: Skript zum ausführen der Messungen, Plots der Ergebnisse sowie Antworten auf die Fragen.
Title: Blatt 5
status: hidden
# Spekulative Ausführung (**DRAFT**)
# Multicore Architekturen / Cache Coherency (**DRAFT**)
Title: Blatt 6
status: hidden
# Spekulative Ausführung (**DRAFT**)
# Heterogene Systeme (**DRAFT**)
......@@ -4,7 +4,7 @@ from __future__ import unicode_literals
AUTHOR = u'Christoph Gerum, Michael Kuhn'
SITENAME = u'Übungen Parallele Rechnerarchitektur'
SITEURL = ''
SITEURL = 'https://atreus.informatik.uni-tuebingen.de/~gerum/ra/pra/ss16/'
PAGE_PATHS=['aufgaben', 'pages']
ARTICLE_PATHS=['news']
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment