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:
- Part I: Getting started
Done-ish
- Developing with gem5
- Creating a new SimObject
- Debugging support in gem5
- Creating a new MemObject with master/slave ports
- Contributing back to gem5
- Running tests
- Advanced gem5 usage
- Full-system simulation
- Checkpoint creation and restoring
- ISA language
- Using m5ops
- Using traces
- Using Ruby cache coherence model
- Overview of Ruby
- Ruby’s cache coherence protocols
- Ruby’s network topologies
- Writing a new protocol
- Debugging a protocol
- Extending the SLICC language
- External projects and gem5
- Power models
- GPU models
- 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.)