Authors: | Jason Lowe-Power |
---|
- 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.
- It may be a good idea to add example exercises at the end of each chapter. These could be things that are good for a classroom or just good things to try out.
- Adding a more "realistic" example in Part I would make the book a little more interesting. Giving readers an idea of what's possible early would set the stage better.
An outline:
- Part I: Getting started
- Done-ish
- Developing with gem5
- Creating a new SimObject
- Debugging support in gem5
- Simple event-driven model
- Adding parameters to SimObjects
- Creating a new MemObject with master/slave ports
- A more complex SimObject: Simple Uniprocessor cache
- A simple CPU model (Code mostly done, but prose not written)
- Contributing back to gem5 (not done)
- Style guidelines
- Mercurial queues
- Reviewboard
- Running tests (not done)
- Using Ruby cache coherence model
- Overview of Ruby
- Ruby's cache coherence protocols
- Understanding the protocol trace
- Ruby's network topologies
- Writing a new protocol
- Debugging a protocol
- Extending the SLICC language
- Full system simulation
- Introduction
- Simple FS config file
- Building a kernel for gem5 (on my website, but not here)
- Building a disk image for gem5 (ditto)
- ARM simulation (to do)
- More on X86 simulation (to do)
- Advanced gem5 usage (to do)
- Checkpoint creation and restoring
- ISA language
- Using m5ops
- Using traces
- An overview of common SimObjects (to do)
- 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
- External projects and gem5
- Power models
- GPU models
- External simulation infrastructure
.. todo:: Add information about address ranges and interleaved address ranges.
.. todolist::