Homework 0

Many general-purpose architecture simulators exist (simplescalar, gems, Simics, Multi-2sim, Sniper, PTLsim, ZSim, SIMFLEX, MARSS), but Gem5 is somewhat special in that it is in active development with a large community, can run many ISAs and microarchitectures, has operating-system support, and has a “textbook” to help newcomers – so, lets use it!

This “assignment” is to go through the introduction and “getting started” chapters of the online book

The most important parts of the “getting started” chapter are:

If you want to learn more right away, feel free to also check out the gem5 bootcamp livestream course, which is a very recent tutorial on gem5 hosted by some of its key developers. The intro videos are broadly useful for context, and the later videos can be useful depending on on what project you are interested in pursuing.

Advice

One important piece of advice as we begin to use simulators – its absolutely critical to not treat them as a black box. Simulators make many many assumptions that are either not true, do not make any sense, or are specific to a particular implementation. If you don’t make yourself aware of these assumptions, then its impossible to draw meaningful conclusions. This will be difficult when using a new (and awfully complex) simulator like gem5, but is part of the learning process.

Is gem5 not useful because it contains modeling, specification and abstraction errors – no of course not! An important mantra for the jaded architect:

All models are wrong, and some are useful