Arm Research Enablement Kit
System Modeling using gem5




System-on-chip (SoC) computing systems are complex, and prototyping such systems is extremely expensive. Simulation is a cost-effective way to evaluate new ideas. Modern simulators, like gem5 are capable of modeling various system components, such as different CPU models, interconnection topologies, memory subsystems, etc. gem5 also models the interactions among system components.

This Research Enablement Kit will guide you through Arm-based system modeling using the gem5 simulator and a 64-bit processor model based on Armv8-A.


Why use this Research Enablement Kit?

gem5 is a well-known sophisticated simulator used for computer system research at both architecture and micro-architecture levels. It is capable of modeling several ISAs, and does so with enough details such that booting unmodified Linux distributions is possible.

This Research Enablement Kit introduces the first Armv8-A based CPU timing model in gem5 that has been released by Arm. It shows you how to simulate this model and run benchmarks on top of it.




Suitable for:

Computer system researchers looking to:

  • develop Arm-based system modeling experience using gem5
  • use a modern Armv8-A based processor model in their research

You will need:

  • Linux: Intermediate knowledge
  • Computer architecture: Intermediate knowledge
  • C++: Working knowledge
  • Python: Working knowledge

Topics covered:

  • Introduction to gem5
  • Arm system modelling in gem5 in different modes
  • A High-Performance In-order (HPI) Arm-based CPU model
  • Benchmarking the HPI model


From your Linux machine, click ‘Get clone script’. This will download a ‘’ script. Running this script ‘bash’ will create two directories:

  1. gem5: the latest gem5 source code, cloned from its main repository at:
  2. arm-gem5-rsk: the scripts, documents and files required to run the examples and benchmarks, cloned from the Arm gem5 RSK repository at: