Supported Architectures

From gem5
Revision as of 08:28, 13 April 2017 by Ahansson (talk | contribs)
Jump to: navigation, search

gem5 is a flexible architecture simulator that supports a number of ISAs and operating systems for both full-system simulation (booting an entire operating system) and syscall emulation (running one or more applications by emulating syscalls). An overview of the architecture support is given in the table below.

ISA Maintainer Level of ISA support Full-system OS support Test coverage Tool chain availability Linux kernel availability
ALPHA None High Linux Medium Low Low
ARM Andreas Sandberg High Linux, BSD, Android High High High
MIPS None Low None Low Medium Medium
POWER None Low None Low Medium Medium
RISC-V Alec Roelke Medium None Low Low Low
SPARC None Low None Low Low Low
X86 Tony Gutierrez Medium Linux, BSD Medium High High


Syscall Emulation

Modifying gem5 to support additional ISAs in syscall emulation mode is far easier than for full-system simulation. As such all new architectures to-date have used syscall emulation as a stepping stone to full-system simulation.

  • ALPHA -- Linux
  • SPARC -- Linux, Solaris
  • MIPS -- Linux
  • ARM -- Linux
  • x86 -- Linux
  • Power -- Linux
  • RISC-V -- Linux


Note: Newer versions of Solaris do not support static linking so Solaris syscall emulation isn't used. Implementation of a dynamic linker in gem5 (or gem5 executing ld.so) is possible, but it hasn't been implemented.

Full-System Simulation

  • ALPHA -- Linux, FreeBSD
  • ARM -- Bare metal, FreeBSD and Linux support with both detailed, minor (in-order) and simple CPU models for AArch32 or AArch64 (32-bit or 64-bit) ARM.
  • SPARC -- Solaris
  • MIPS -- Linux and bare metal support started, lots of work needed
  • x86/64 -- In progress, actively being worked on