Welcome to the gem5 documentation. We've worked hard to add and organize everything in a more reasonable format, however we still haven't got to everything. All the documentation is a wiki, so we encourage you to add and edit sections as you find omissions and bugs.
For an overview, we have posted slides and most importantly video of a tutorial at HiPEAC Computer Systems Week. See Tutorials.
Old Documentation: We have some old documentation and have been trying to move everything to the new format, but we haven't quite succeeded yet. If you don't find the answer you're looking for here, you might want to check the old documentation.
- Introduction - A quick introduction to gem5.
- Source Code - Information about the source code itself.
- Dependencies - Things you'll need that aren't part of gem5 itself.
- Build System - How to run or modify gem5's build system.
- Full System and Benchmark Files - Disk images for operating system and benchmark applications, and how to install them.
- Running gem5 - Starting a simulation from the command line.
- Output Files - Output obtained from simulation
- Checkpoints, Fast Forwarding - How to create Checkpoints, restore the checkpointed state, fast forward simulation.
- Regression Tests - Running the regression tests.
- SimObjects - What SimObjects are and how they work.
- Configuration / Simulation Scripts - Explains how to configure the simulator and run simulations
- Visualization -- Tools to help visualize what is going on in a system
- Compiling - How to compile workloads to run within gem5.
- Multi-programmed - Multiprogrammed workloads in SE mode.
- Multi-threaded - Multithreaded workloads in SE mode.
- Benchmark suites
- Disk images - Setting up a disk image.
- Linux kernel - Preparing a Linux kernel for use in gem5.
- m5ops - How to talk to the simulator from within a simulated workload.
- Functional Testers
- Debugging - features designed specifically to help you figure out what's going on.
- Coding Style
- Tools and Contributing
- Source Code Documentation
- Commit Access
- Managing Change in Your Local Repository
- General Memory System - Shared infrastructure between the Classic and Ruby models
- Classic Memory System - Description of our easily configurable, bus-based memory system
- Ruby - Description of our detailed and flexible memory system. Lots of information here.