The SimpleScalar Architectural Research Tool Set, Version 2.0

Announcement: slides are now available from the SimpleScalar tutorial, which was held at Micro-30 (Sunday, Nov. 30th, 2:00-6:00 pm)

What is the SimpleScalar tool set?

This tool set consists of compiler, assembler, linker, simulation, and visualization tools for the SimpleScalar architecture. With this tool set, the user can simulate real programs on a range of modern processors and systems, using fast execution-driven simulation. We provide simulators ranging from a fast functional simulator to a detailed, out-of-order issue processor that supports non-blocking caches, speculative execution, and state-of-the-art branch prediction. The tool set is partly derived from the GNU software development tools. It provides researchers with an easily extensible, portable, high-performance test bed for systems design.

Who wrote the SimpleScalar tool set?

Much of the compiler tools are simply ports of the GNU software development tools to the SimpleScalar architecture. The ports as well as the simulators were written by Todd Austin (while he was a Ph.D. student at the University of Wisconsin-Madison, working in the Multiscalar Group under Guri Sohi; he is now with Intel Corp.). The tool set is now supported by Doug Burger, who wrote the documentation for both releases 1.0 and 2.0. Contributions have also been made by Manoj Franklin, Scott Breach, and Kevin Skadron.

The development of this code was originally supported by grants from the National Science Foundation (grant CCR-9303030 plus software capitalization supplement) and the Office of Naval Research (grant N00014-93-1-0465). Many sources, all appreciated, currently fund development on several fronts.

On which platforms does it run?

SimpleScalar should port easily to any 32-bit flavor of UNIX, particularly those that support POSIX-compliant syscalls. The tools have been installed (and should cleanly build) on the following systems:

ArchitectureOperating SystemCompiler
x86Free BSD 2.2gcc
x86CygWin32/Windows NTgcc
SPARCSunOS 4.1.3gcc
SPARCSolaris 2gcc
RS6000AIX 4.1.3gcc
RS6000AIX 4.1.3xlc
AlphaDEC Unix 3.2gcc
AlphaDEC Unix 3.2c89

How can I keep informed as to new releases and announcements?

We have set up a SimpleScalar mailing list. To subscribe, send e-mail to, with the message body (not the subject header) containing subscribe simplescalar.

How do I see old mailing list messages?

Steve Raasch at Michigan was kind enough to set up an SS mailing list archive. You should pore through these before sending a question to the list, which goes to hundreds of people. Lots of the same questions gets asked over and over, and the answers to new users' questions are likely to be in the archive!

The archive is available at: What's new in version 2.0?

We have added numerous features and utilities. The code has been cleaned up and is better documented, plus all known bugs have been fixed. The code now includes much more sophisticated arguments and statistics packages (that allow you to use config files to set simulation parameters), plus cleaner statistics reporting. We have provided a source-level debugger called DLite!, which allows you to step through the program being simulated. We have also added a pipeline tracer, which allows you to track pipeline state in the out-of-order simulator. We have removed the simulators' dependence on the BFD utilities, making binutils' installation optional. There are two new simulators, sim-profile and sim-cheetah, that do useful profiling and multiple simultaneous cache configuration simulations, respectively. Finally, we include pre-built binaries, both small test binaries and a complete set of the SPEC95 binaries built for SimpleScalar (both big- and little-endian).

How to obtain the SimpleScalar tool set

The tool set directory may be accessed via normal ftp:

cd sohi/Code/simplescalar

The following files may also be downloaded via the Web, by clicking on their names below:

TR_1342.psThe technical report documenting release 2.0 of the tool suite
simplesim.tarThe simulator code (required)
simpleutils.tarThe binary utilities (recommended)
simpletools.tarThe complier, assembler, libraries (optional)
simplebench.big.tar Precompiled, big-endian SS SPEC95 binaries (optional)
simplebench.little.tar Precompiled, little-endian SS SPEC95 binaries (optional)
INSTALLInstallation instructions for the general release
COPYRIGHTDuplication, distribution, and use restrictions

For documentation about the tool set, please download the technical report listed above.

Last modified: Thu Jan 28 1998 23:29 by Doug Burger