Download the tarball: ece412-sim-3c.tar.gz.
Unpack the tarball by running the command:
This will create a source directory named "ece412", and a build directory named "build-ece412" with the precompiled binaries in it.
Set up the build-ece412 directory:
This will create the build directory tree and a set of symlinks so that you can compile the simulator and library.
Make the simulator:
Run make in the build-ece412/build directory:
This builds the runtime library, and installs it in the directory build-ece412/tools-install.
Compile and run a program:
(lzw is a version of the unix compress program. It creates a buffer of random text, then compresses and decompresses the text). While it is running it prints out the random text and then some statistics.
Make changes to the simulator. The simulator code is in the directory ece412/tools/sim. To rebuild the simulator go to the directory build-ece412/tools/sim and type make.
This version of the simulator comes with a working version of the gcc benchmark. To get gcc to work I needed to change the encoding for jump instructions. Thus the decode stage has changed somewhat, and the binutils all had to be modified and recompiled.
This version of the pipeline simulator includes R10000 style renaming, a reorder buffer, speculative out-of-order execution and optional dual- or single-issue. The branch predictor and instruction counting bugs have also been fixed. (To turn off out-of-order execution you can now use the -inorder flag, to turn on dual-issue you can use the -superpipeline flag.
The other new feature is an improved tracing function, (-trace -debug 0x2000), for both the arch-model and pipelined-model, that makes it easier to find the source of errors. This tracing function prints out both the instruction pcs of retiring instructions and the data that is being commited to the architectural register file. Thus it is easier to find the first instruction that writes the wrong result.