Gem5

The gem5 simulator is an open-source system-level and processor simulator. It is utilized in academic research and in industry by companies such as ARM Research, AMD Research, Google, Micron, Metempsy, HP, and Samsung. Arm has developed further software called Streamline for developers working with gem5 which aims to present "a graphical view of system execution".

History
The gem5 simulator was born out of the merger of m5 (CPU simulation framework) and GEMS (memory timing simulator).

Features
gem5 is an event-driven simulator with multiple execution modes.


 * full-system emulation (simulating the whole OS) and syscall emulation (just user-space is emulated)
 * multiple ISAs (Alpha, ARM, SPARC, MIPS, POWER, RISC-V, and x86 ISAs)
 * timing model for the full cache hierarchy with support for custom coherence protocols
 * simplistic CPU, in-order CPU, out-of-order CPU
 * serialize/deserialization from checkpoints