Add gem5-101 from other site

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
diff --git a/_pages/documentation/gem5-101/_index.md b/_pages/documentation/gem5-101/_index.md
new file mode 100644
index 0000000..bc4f5e9
--- /dev/null
+++ b/_pages/documentation/gem5-101/_index.md
@@ -0,0 +1,31 @@
+---
+title: "gem5 101"
+date: 2018-05-12T21:16:22-04:00
+draft: false
+weight: 20
+---
+
+
+This is a six part course which will help you pick up the basics of gem5, and
+illustrate some common uses. This course is based around the assignments from a
+particular offering of architecture courses, CS 752 and CS 757, taught at the
+University of Wisconsin-Madison.
+
+
+##### Credits
+A lot of people have been involved over the years in developing the assignments for these courses. If we have missed out on anyone, please add them here.
+ * Multifacet research group at University of Wisconsin-Madison 
+ * Profs Mark Hill, David Wood 
+ * Jason Lowe-Power 
+ * Nilay Vaish 
+ * Lena Olson 
+ * Swapnil Haria 
+ * Jayneel Gandhi 
+
+{{% notice note %}}
+Any questions or queries regarding this tutorial should be
+directed towards the gem5-users mailing list, and not the individual
+contacts listed in the assignment.
+{{% /notice %}}
+
+
diff --git a/_pages/documentation/gem5-101/adding_an_instruction/_index.md b/_pages/documentation/gem5-101/adding_an_instruction/_index.md
new file mode 100644
index 0000000..342c237
--- /dev/null
+++ b/_pages/documentation/gem5-101/adding_an_instruction/_index.md
@@ -0,0 +1,16 @@
+---
+title: "Adding an instruction"
+date: 2018-05-12T23:00:45-04:00
+draft: false
+weight: 20
+---
+
+For part II, we had used gem5 capabilities straight out of the box. Now,
+we will witness the flexibility and usefulness of gem5 by extending the
+simulator functionality. We walk you through the implementation of an
+x86 instruction (FSUBR), which is currently missing from gem5. This will
+introduce you to gem5's language for describing instruction sets, and
+illustrate how instructions are decoded and broken down into micro-ops
+which are ultimately executed by the processor.
+
+
diff --git a/_pages/documentation/gem5-101/branch_prediction/_index.md b/_pages/documentation/gem5-101/branch_prediction/_index.md
new file mode 100644
index 0000000..7e58c76
--- /dev/null
+++ b/_pages/documentation/gem5-101/branch_prediction/_index.md
@@ -0,0 +1,15 @@
+---
+title: "Branch prediction"
+date: 2018-05-12T23:01:19-04:00
+draft: false
+weight: 40
+---
+
+From the ISA, we now move on to the processor micro-architecture. Part
+III introduces the various different cpu models implemented in gem5, and
+analyzes the performance of a pipelined implementation. Specifically,
+you will learn how the latency and bandwidth of different pipeline
+stages affect overall performance. Also, a sample usage of gem5
+pseudo-instructions is also included at no additional cost.
+
+
diff --git a/_pages/documentation/gem5-101/caches/_index.md b/_pages/documentation/gem5-101/caches/_index.md
new file mode 100644
index 0000000..07a2ec4
--- /dev/null
+++ b/_pages/documentation/gem5-101/caches/_index.md
@@ -0,0 +1,14 @@
+---
+title: "Caches"
+date: 2018-05-12T23:01:31-04:00
+draft: false
+weight: 50
+---
+
+After looking at the processor core, we now turn our attention to the
+cache hierarchy. We continue our focus on experimentation, and consider
+tradeoffs in cache design such as replacement policies and
+set-associativity. Furthermore, we also learn more about the gem5
+simulator, and create our first simObject\!
+
+
diff --git a/_pages/documentation/gem5-101/cpu_models/_index.md b/_pages/documentation/gem5-101/cpu_models/_index.md
new file mode 100644
index 0000000..77eff47
--- /dev/null
+++ b/_pages/documentation/gem5-101/cpu_models/_index.md
@@ -0,0 +1,15 @@
+---
+title: "CPU models"
+date: 2018-05-12T23:01:03-04:00
+draft: false
+weight: 30
+---
+
+From the ISA, we now move on to the processor micro-architecture. Part
+III introduces the various different cpu models implemented in gem5, and
+analyzes the performance of a pipelined implementation. Specifically,
+you will learn how the latency and bandwidth of different pipeline
+stages affect overall performance. Also, a sample usage of gem5
+pseudo-instructions is also included at no additional cost.
+
+
diff --git a/_pages/documentation/gem5-101/hello_world/_index.md b/_pages/documentation/gem5-101/hello_world/_index.md
new file mode 100644
index 0000000..8c80d65
--- /dev/null
+++ b/_pages/documentation/gem5-101/hello_world/_index.md
@@ -0,0 +1,15 @@
+---
+title: "Hello world"
+date: 2018-05-12T23:00:17-04:00
+draft: false
+weight: 10
+---
+
+In part I, you will first learn to download and build gem5 correctly,
+create a simple configuration script for a simple system, write a simple
+C program and run a gem5 simulation. You will then introduce a two-level
+cache hierarchy in your system (fun stuff). Finally, you get to view the
+effect of changing system parameters such as memory types, processor
+frequency and complexity on the performance of your simple program.
+
+
diff --git a/_pages/documentation/gem5-101/multi-core/_index.md b/_pages/documentation/gem5-101/multi-core/_index.md
new file mode 100644
index 0000000..fc62a42
--- /dev/null
+++ b/_pages/documentation/gem5-101/multi-core/_index.md
@@ -0,0 +1,16 @@
+---
+title: "Multi Core"
+date: 2018-05-12T23:01:57-04:00
+draft: false
+weight: 60
+---
+
+For this last part, we go both multi-core and full system at the same
+time\! We analyze the performance of a simple application on giving it
+more computational resources (cores). We also boot a full-fledged
+unmodified operating system (Linux) on the target system simulated by
+gem5. Most importantly, we teach you how to create your own, simpler
+version of the dreaded fs.py configuration script, one that you can feel
+comfortable modifying.
+
+