Difference between revisions of "Supported Architectures"
Line 1: | Line 1: | ||
− | 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). | + | 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. |
+ | |||
+ | {| class="wikitable" | ||
+ | ! ISA | ||
+ | ! Maintainer | ||
+ | ! Level of ISA support | ||
+ | ! 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 | ||
+ | |} | ||
Revision as of 04:27, 13 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 | 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