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
    1. Building gem5
    2. A simple gem5 configuration script
    3. A more complex gem5 configuration script
    4. Using the example configuration scripts
    5. Full system simulation
  2. Part II: 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
  3. Part III: 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

Todo list