|New Release of SPIM (version 5.0) firstname.lastname@example.org (1992-09-23)|
|From:||email@example.com (James Larus)|
|Organization:||University of Wisconsin, Madison -- Computer Sciences Dept.|
|Date:||Wed, 23 Sep 1992 14:35:58 GMT|
|Keywords:||architecture, performance, FTP|
I have just released a new version (version 5.0) of SPIM/XSPIM, which is a
detailed simulator of the MIPS R2000/R3000 processors (see detailed
This is a major release. Everyone using SPIM should use this version as
soon as possible. Along with the usual assortment of bug fixes and
improvements, this release includes the following significant changes:
1. SPIM/XSPIM is no longer covered by the GNU copyleft. It is now
distributed under narrower terms that only prevent you from selling or
distributing SPIM/XSPIM with a product.
2. The binary mode SPIM/XSPIM (which runs MIPS executables) is greatly
improved thanks to Emin Gun Sirer, Andrew Appel, Scott Rosenberg, and Anne
Rogers of Princeton and will now run many or most MIPS binaries.
3. SPIM/XSPIM now includes an optional cycle-level simulator that does a
detailed, cycle-by-cycle simulation of the MIPS pipeline. Thanks to Scott
Rosenberg and Anne Rogers for this code.
4. A number of significant bugs that affect the correctness of the
simulation have been fixed. These alone are a good argument to move to
the new version.
5. SPIM/XSPIM now has a simple memory mapped I/O facility inspired by John
6. The source for SPIM/XSPIM now has a new home. You can ftp SPIM/XSPIM
from ftp.cs.wisc.edu in the file pub/spim/spim.tar.Z SPIM/XSPIM is no
longer kept on my home machine.
The SPIM S20 is a software simulator that runs assembly language programs
for the MIPS R2000/R3000 RISC computers. SPIM can read and immediately
run files containing assembly language statements. It can also read and
run MIPS a.out files (when compiled on a MIPS system). SPIM is a
self-contained system for running these programs and contains a debugger
and interface to the operating system.
I wrote SPIM as the target machine for an undergraduate compiler course.
SPIM is very portable (I have run it on a DECStation 3100/5100, Sun 3, Sun
4, PC/RT, HP Bobcat, and Sequent***), so the students could generate code
for a simple, clean, orthogonal computer; no matter which god-awful
machine they used. It was a very successful in this role.
SPIM is fairly slow. It runs about 1000 dhrystones/second, which is
roughly 1/25th the speed of a DECStation 3100, or about the speed of a
SPIM implements almost the entire MIPS assembler-extended instruction set
(I've omitted some the complex floating point comparisons and details of
the memory system page tables). SPIM comes with complete source code and
documentation of all instructions (including several that aren't in Kane's
book, but are produced by MIPS compilers). It also include a large
torture test to verify a port to a new machine.
SPIM has a simple, terminal-style and a flashy, X-windows interface.
SPIM also includes an optional extension by Anne Rogers and Scott
Rosenberg of Princeton that performs a cycle-by-cycle MIPS simulation that
exposes the hardware pipeline.
SPIM is copyrighted by me and can be freely used for non-commericial
purposes. You can copy a compressed tar file from ftp.cs.wisc.edu in the
file: ~ftp/pub/spim/spim.tar.Z. If you want to be informed of future
updates, send me your electronic address.
Computer Sciences Department
1210 West Dayton Street
University of Wisconsin
Madison, WI 53706
*** SPIM also runs on a VAX, however it does not handle floating point
properly because compilers for the VAX do not treat single floats properly.
Return to the
Search the comp.compilers archives again.