blob: b0da1c440bded56fba9ada5816fe503e490a5935 [file] [log] [blame] [view]
---
layout: documentation
title: gem5 documentation
doc: gem5 documentation
parent: gem5_documentation
permalink: /documentation/
author: Jason Lowe-Power
---
# gem5 Documentation
## Learning gem5
[Learning gem5](learning_gem5/introduction/) gives a prose-heavy introduction to using gem5 for computer architecture research written by Jason Lowe-Power.
This is a great resource for junior researchers who plan on using gem5 heavily for a research project.
It covers details of how gem5 works starting with [how to create configuration scripts](learning_gem5/part1/simple_config).
It then goes on to describe [how to modify and extend](learning_gem5/part2/environment) gem5 for your research including [creating `SimObjects`](learning_gem5/part2/helloobject), [using gem5's event-driven simulation infrastructure](learning_gem5/part2/events), and [adding memory system objects](learning_gem5/part2/memoryobject).
In [Learning gem5 Part 3](learning_gem5/part3/MSIintro) the [Ruby cache coherence model](/documentation/general_docs/ruby) is discussed in detail including a full implementation of an MSI cache coherence protocol.
More Learning gem5 parts are coming soon including:
* CPU models and ISAs
* Debugging gem5
* **Your idea here!**
Note: this has been migrated from learning.gem5.org and there are minor problems due to this migration (e.g., missing links, bad formatting).
Please contact Jason (jason@lowepower.com) or create a PR if you find any errors!
## gem5 101
[gem5 101](learning_gem5/gem5_101) is a set of assignments mostly from Wisconsin's graduate computer architecture classes (CS 752, CS 757, and CS 758) which will help you learn to use gem5 for research.
## gem5 API documentation
You can find the doxygen-based documentation here: <http://doxygen.gem5.org/release/current/index.html>
## Other general gem5 documentation
See the navigation on the left side of the page!