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:
Architecture | Operating System | Compiler |
x86 | Free BSD 2.2 | gcc |
x86 | CygWin32/Windows NT | gcc |
x86 | Linux1.3 | gcc |
x86 | Solaris2 | gcc |
SPARC | SunOS 4.1.3 | gcc |
SPARC | Solaris 2 | gcc |
RS6000 | AIX 4.1.3 | gcc |
RS6000 | AIX 4.1.3 | xlc |
PA-RISC | HPUX | gcc |
Alpha | DEC Unix 3.2 | gcc |
Alpha | DEC Unix 3.2 | c89 |
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 majordomo@cs.wisc.edu, 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: http://ord.eecs.umich.edu. 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:
ftp ftp.cs.wisc.edu
cd sohi/Code/simplescalar
The following files may also be downloaded via the Web, by clicking on their names below:
File | Contents |
TR_1342.ps | The technical report documenting release 2.0 of the tool suite |
simplesim.tar | The simulator code (required) |
simpleutils.tar | The binary utilities (recommended) |
simpletools.tar | The complier, assembler, libraries (optional) |
simplebench.big.tar | Precompiled, big-endian SS SPEC95 binaries (optional) |
simplebench.little.tar | Precompiled, little-endian SS SPEC95 binaries (optional) |
INSTALL | Installation instructions for the general release |
COPYRIGHT | Duplication, distribution, and use restrictions |
For documentation about the tool set, please download the technical report listed above.