MARSSx86 (MARSS for short) is a tool for cycle accurate full system simulation of the x86-64 architecture, specifically multicore implementations. Our goal is to create a simple yet efficient full system architectural simulation environment based on existing tools.
The key features of MARSS are:
Multicore simulation environment for the x86-64 ISA, with detailed pipeline model, including the breakdown of instructions into uops
Based on PTLsim with extensive enhancements for improved simulation accuracy and performance: average simulated commit rate of 200K+ instructions/second
QEMU based full system emulation environment with models for chipset and peripheral devices
Detailed models for Coherent Caches and On-Chip Interconnections . The current distribution includes :
Support for Write-Back or Write-Through caches at any level
The implementation of the MESI, MOESI Protocols
Split-Phase On-Chip Bus, Switch Interconnect Model
Simple DRAM Model that simulates bank conflicts and DMA channels
Full System simulation, including the simulation of unmodified operating systems, kernel interrupt handlers and standard libraries
Other features to promote ease of use are:
Runs in user-space only, without any need for root access or the installation of any kernel module
Ability to include pre-compiled libraries with the simulator
Full debugging support using standard debuggers like GDB
You can download the latest released version from Downloads page.
MARSS is being developed at Computer Architecture & Power Aware Systems Research Group (CAPS Research group) at State University of New York at Binghamton (SUNY Binghamton). MARSS has its roots in MPTLsim, an internally-used multicore simulator based on PTLsim. Avadh Patel is the lead developer of MARSS, with support from Furat Afram, Hui Zeng and Kanad Ghose. Questions/comments about MARSS should be directed to: [apatel at cs dot binghamton dot edu] or via email to the MARSS development mailing list.
The development of MARSS has been supported in part by NSF (Award No.0720811).