WinMIPS64
WinMIPS64 is an instruction
set simulator, and is designed as a replacement for the popular Microsoft
Windows utility WinDLX. The classic text
Computer Architecture - a Quantitative Approach, by
Hennessy & Patterson, 4th edition
from its 3rd edition has switched from the 32-bit DLX architecture,
to the 64-bit MIPS architecture. Hence the need for a new
teaching tool. WinDLX had a very nice
friendly user interface, including a full graphical simulation of the 5-stage
pipeline. Therefore it was decided to create a similar tool for the MIPS64 with
a very similar interface.
If you
know how to use WinDLX then the look-and-feel
of WinMIPS64 will be very familiar. However there are a few changes.
- Forwarding is indicated
by colouring the forwarded register. The colour indicates the stage in the
pipeline that it is being forwarded from.
- A delay slot can be
implemented if desired. With V1.30 a simple branch-target-buffer can also
be simulated. A << in the code window beside a jump or branch
instruction indicates that it is predicted as being taken.
- The full instruction set
is not currently implemented. In particular there is no support for single
precision floating-point, or "paired single" floating-point.
- Registers and memory can
be changed by left-double-clicking on the target. Right-double-clicking on
memory displays it in double-precision decimal floating point format.
- Break-points are set and
cleared by simply left-double-clicking on the code window.
The
software is available for download in a .ZIP archive. This includes the Windows
'98/2000/NT/whatever executable, a simple stand-alone DOS assembler, and
several example programs. It may be used freely without restriction. If you
find any bugs, or would like to see an additional feature, please let me know
at mike@compapp.dcu.ie.
Download
from WinMIPS64. Documentation in Microsoft Word format is
also available. Here are a couple of lab exercises ex2.doc and ex3.doc
Full
Visual C++ source code is available on request - but tell me who you are and
why you want it.
Update
History:
V1.12
- displays the currently
loaded file on status line (press F10).
- remembers last folder
used for input.
V1.13
- Bug fix - registers
modified by double-clicking stay modified.
- Integer dmul and ddiv
instructions disabled (they make many tutorial problems too easy!)
V1.14
- Support for network
installations
- Various minor bug -fixes
V1.15
- System far less tolerant
of silly syntax errors
- Open file name appears on
title bar.
V1.20
- Some fonts fixed
- Possibility of WAR
hazards for FP instructions recognized
V1.21
- F5 removed
- Bug in Cycles window
fixed
V1.30
- Branch Target Buffer
option added
- Minor bugs eliminated
- More example programs
V1.31
- Long lines generate an
error
- Larger data area allowed
V1.32
- Standard MIPS
pseudo-names for registers now allowed
- .. so $zero for r0, $t0 for
r8 etc. Also $6 for r6.
- # is now acceptable as
well as ; to indicate a comment
V1.40
- New Dumb Terminal I/O
capability – New Terminal Window
- New example program testio.s – demos output capability
- Graphics output
capability
V1.50
- 10 new instructions!
- Integer dmul and ddiv
instructions restored
V1.51
·
Some bug fixes
V1.52
·
Errors on pass 2 now highlighted in red.
·
Viewing FP memory no longer changes it
Mike
Scott, April 2008