Some thoughts on this document

  • We want this document to be living.
    • We should have the source checked in somewhere (probably in a repo next to gem5).
    • We should force people to make updates when they break things.
    • We should have the source for the examples checked into the gem5 repo, and have tests that run them.

An outline:

  1. Part I: Getting started

    Done-ish

  2. Developing with gem5
    1. Creating a new SimObject
    2. Debugging support in gem5
    3. Creating a new MemObject with master/slave ports
    4. Contributing back to gem5
    5. Running tests
  3. Advanced gem5 usage
    1. Full-system simulation
    2. Checkpoint creation and restoring
    3. ISA language
    4. Using m5ops
    5. Using traces
  4. Using Ruby cache coherence model
    1. Overview of Ruby
    2. Ruby’s cache coherence protocols
    3. Ruby’s network topologies
    4. Writing a new protocol
    5. Debugging a protocol
    6. Extending the SLICC language
  5. External projects and gem5
    1. Power models
    2. GPU models
    3. External simulation infrastructure

Todo list

Todo

Explain params etc. Overall, the tag store is not a great example for this, but we’ll leave it for now.

(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/tutorial/part2/simobject.rst, line 97.)

Todo

Add a pointer to the gem5 docker image. In fact, we may want to have a docker image for each section.

(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/tutorial/part1/building.rst, line 12.)

Todo

We should add links to SimObjects like BaseCache that point to the doxygen on gem5’s site.

(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/tutorial/part1/cache_config.rst, line 31.)