New Release of SPIM (version 5.0)

larus@cs.wisc.edu (James Larus)
Wed, 23 Sep 1992 14:35:58 GMT

          From comp.compilers

Related articles
New Release of SPIM (version 5.0) larus@cs.wisc.edu (1992-09-23)
| List of all articles for this month |

Newsgroups: comp.arch,comp.compilers,comp.sys.mips,comp.edu
From: larus@cs.wisc.edu (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
description below).


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
Ousterhout's MIPSIM.


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
68010-based system.


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.


/Jim


James Larus
Computer Sciences Department
1210 West Dayton Street
University of Wisconsin
Madison, WI 53706


larus@cs.wisc.edu
(608) 262-9519


*** 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.
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.