Difference between revisions of "Supported Architectures"

From gem5
Jump to: navigation, search
 
(8 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
! Maintainer
 
! Maintainer
 
! Level of ISA support
 
! Level of ISA support
! OS support
+
! Full-system OS support
 
! Test coverage
 
! Test coverage
 
! Tool chain availability
 
! Tool chain availability
Line 11: Line 11:
 
|-
 
|-
 
| ALPHA
 
| ALPHA
| None
+
| style="background: LightCoral" | None
| High
+
| style="background: LightGreen" | High
| Linux
+
| style="background: Khaki" | Linux
| Medium
+
| style="background: Khaki" | Medium
| Low
+
| style="background: LightCoral" | Low
| Low
+
| style="background: LightCoral" | Low
 
|-
 
|-
 
| ARM
 
| ARM
| Andreas Sandberg
+
| style="background: LightGreen" | Andreas Sandberg
| High
+
| style="background: LightGreen" | High
| Linux, BSD, Android
+
| style="background: LightGreen" | Linux, BSD, Android
| High
+
| style="background: LightGreen" | High
| High
+
| style="background: LightGreen" | High
| High
+
| style="background: LightGreen" | High
 
|-
 
|-
 
| MIPS
 
| MIPS
| None
+
| style="background: LightCoral" | None
| Low
+
| style="background: LightCoral" | Low
| None
+
| style="background: LightCoral" | None
| Low
+
| style="background: LightCoral" | Low
| Medium
+
| style="background: Khaki" | Medium
| Medium
+
| style="background: Khaki" | Medium
 
|-
 
|-
 
| POWER
 
| POWER
| None
+
| style="background: LightCoral" | None
| Low
+
| style="background: LightCoral" | Low
| None
+
| style="background: LightCoral" | None
| Low
+
| style="background: LightCoral" | Low
| Medium
+
| style="background: Khaki" | Medium
| Medium
+
| style="background: Khaki" | Medium
 
|-
 
|-
 
| RISC-V
 
| RISC-V
| Alec Roelke
+
| style="background: LightGreen" | Alec Roelke
| Medium
+
| style="background: Khaki" | Medium
| None
+
| style="background: LightCoral" | None
| Low
+
| style="background: LightCoral" | Low
| Low
+
| style="background: Khaki" | Medium
| Low
+
| style="background: Khaki" | Medium
 
|-
 
|-
 
| SPARC
 
| SPARC
| None
+
| style="background: LightGreen" | Gabe Black
| Low
+
| style="background: LightCoral" | Low
| None
+
| style="background: LightCoral" | None
| Low
+
| style="background: LightCoral" | Low
| Low
+
| style="background: LightCoral" | Low
| Low
+
| style="background: LightCoral" | Low
 
|-
 
|-
 
| X86
 
| X86
| Tony Gutierrez
+
| style="background: LightGreen" | Gabe Black
| Medium
+
| style="background: Khaki" | Medium
| Linux, BSD
+
| style="background: Khaki" | Linux, BSD
| Medium
+
| style="background: Khaki" | Medium
| High
+
| style="background: LightGreen" | High
| High
+
| style="background: LightGreen" | 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
 

Latest revision as of 16:46, 18 April 2017

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 Medium Medium
SPARC Gabe Black Low None Low Low Low
X86 Gabe Black Medium Linux, BSD Medium High High