Difference between revisions of "Supported Architectures"

From gem5
Jump to: navigation, search
(Full-System Simulation)
Line 1: Line 1:
M5 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). A complete list of supported combinations is listed below.  
+
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). A complete list of supported combinations is listed below.  
  
  
 
== Syscall Emulation ==
 
== Syscall Emulation ==
Modifying M5 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.  
+
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
 
*'''ALPHA''' -- Linux
Line 14: Line 14:
  
  
''Note:'' Newer versions of Solaris do not support static linking so Solaris syscall emulation isn't used. Implementation of a dynamic linker in M5 (or M5 executing ld.so) is possible, but it hasn't been implemented.
+
''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 ==
 
== Full-System Simulation ==

Revision as of 17:04, 6 December 2016

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). A complete list of supported combinations is listed below.


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