Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

gem5’s components can be rearranged, parameterized, extended or replaced easily to

suit your needs.


It simulates the passing of time as a series of discrete events.
Its intended use is to simulate one or more computer systems in various ways.
It’s more than just a simulator; it’s a simulator platform that lets you use as
many of its premade components as you want to build up your own simulation system.

It can simulate a complete system with devices and an operating system in full
system mode (FS mode), or user space only programs where system services are
provided directly by the simulator in syscall emulation mode (SE mode). There are
varying levels of support for executing Alpha, ARM, MIPS, Power, SPARC, RISC-V, and
64 bit x86 binaries on CPU models including two simple single CPI models, an out of
order model, and an in order pipelined model. A memory system can be flexibly built
out of caches and crossbars or the Ruby simulator which provides even more flexible
memory system modeling.

Currently, you must compile gem5 separately for every ISA that you want to
simulate. Additionally, if using ruby-intro-chapter, you have to have separate
compilations for every cache coherence protocol.

To build gem5, we will use SCons. SCons uses the SConstruct file (gem5/SConstruct)
to set up a number of variables and then uses the SConscript file in every
subdirectory to find and compile all of the gem5 source.

SCons automatically creates a gem5/build directory when first executed. In this


directory you’ll find the files generated by SCons, the compiler, etc. There will
be a separate directory for each set of options (ISA and cache coherence protocol)
that you use to compile gem5.

If you do not need to model the operating system for your research questions, and
you want extra performance, you should use SE mode. However, if you need high
fidelity modeling of the system, or OS interaction like page table walks are
important, then you should use FS mode.

You might also like