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
- Style guidelines
- Mercurial queues
- Reviewboard
Running tests
- Full system simulation
- Introduction
- Simple FS config file
- Building a kernel for gem5
- Building a disk image for gem5
- ARM simulation
- More on X86 simulation
- Advanced gem5 usage
- Checkpoint creation and restoring
- ISA language
- Using m5ops
- Using traces
- An overview of common SimObjects
- CPUs
- CPU models
- Dynamically switching CPUs
- Classic memory system
- Random note: All controllers that issue coherent requests are required to have a cache attached to them. For instance, you have to have a cache on the IOBus or else there are weird errors.
System
- 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
Add information about address ranges and interleaved address ranges.
Todo list¶
Todo
Finish the previous paragraph about how it is a good idea to understand what your tools are actually doing.
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/intro.rst, line 22.)
Todo
should add a list of terms. Things like “simulated system” vs “host system”, etc.
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/intro.rst, line 26.)
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/learning_gem5/part1/building.rst, line 12.)
Todo
We should add links to SimObjects like Cache 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/learning_gem5/part1/cache_config.rst, line 31.)
Todo
Should probably talk here about SE vs. FS mode.
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/part1/simple_config.rst, line 46.)
Todo
make a section on the SConscript build system which discuss all of the functions.
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/part2/helloobject.rst, line 145.)
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/learning_gem5/part2/simobject-old.rst, line 99.)
Todo
Make sure there is a link to the gem5 source here
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/part3/fs_config.rst, line 24.)
Todo
Update all SimObjects to point to the gem5 source code.
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/part3/fs_config.rst, line 40.)
Todo
This bad addr thing could be made more clear.
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/part3/fs_config.rst, line 89.)
Todo
Other differences between SE and FS mode...
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/part3/intro.rst, line 33.)
Todo
Add information about address ranges and interleaved address ranges.
(The original entry is located in /afs/cs.wisc.edu/p/multifacet/users/powerjg/gem5-tutorial/learning_gem5/thoughts.rst, line 57.)