The Wisconsin Multifacet Project is pleased to present the open-source release of our General Execution-driven Multiprocessor Simulator (GEMS). GEMS is a set of modules for Virtutech Simics that enables detailed simulation of multiprocessor systems, including Chip-Multiprocessors (CMPs).

GEMS is no longer under active development. The effort has shifted to the gem5 simulator system, a fully open-source software.


  • [06/05/2011] The gem5 simulator system is available for download.
  • [1/18/2011] External patches for Simics 3.0, 3.2, 4.0, 4.2, and 4.4 compatability available. Read the RELEASE NOTES
  • [8/24/2008] GEMS Release 2.1.1 available for download. Read the RELEASE NOTES
  • [2/28/2008] GEMS Release 2.1 available for download. Read the RELEASE NOTES
  • [1/30/2008] EETimes.com article about Sun's GEMS-based simulator for expermenting with code for Rock Link to article
  • [10/5/2007] GEMS Release 2.0 available for download. Read the RELEASE NOTES
  • [6/28/2006] GEMS Release 1.3 available for download.
  • Virtutech Simics is now free of charge for academic use.
  • A patch is available to convert the GEMS memory system module, Ruby, to work with x86 target machines.
  • Over 1,700 users of GEMS! (as of June of 2008)

Key Features

  • Leverages the power of Virtutech Simics to simulate a Sparc multiprocessor system. This enables the simulation of commercial software such as database systems running on the Solaris operating system. By off-loading the correctness requirement to Simics, our "timing-first" simulation can focus on accurate performance modeling rather than correctness details.
  • The GEMS Opal module provides a detailed, out-of-order processor model. Opal is flexible and highly configurable to model different branch predictors, issue-widths, execution resources, and etc.
  • The GEMS Ruby module provides a detailed memory system simulator. It can simulate a wide variety of memory hierarchies and systems ranging from broadcast-based SMP to a hierarchical directory-based Multiple-CMP system.
  • The GEMS SLICC (Specification Language including Cache Coherence) language simplifies and speeds the development of differing memory hierarchies and cache coherence protocols. Systems are specified in a table-driven language which abstracts away much of the manual labor involved with C/C++ coding.

The Multifacet GEMS Development Team,
Page last modified: Wednesday, 04-Jan-2012 19:28:00 CST