Assignment #1: Processor Core Simulation

We will modify the Simplescalar simulator. While old, it is sufficient “simple” to allow us, in the time available, to gain experience on how to explore architectural options.

Here's what you will need:

1. The simplescalar simulator sources.

2. GNU GCC and BINUTILS toolchain which can generate and manipulate binaries for the simulated architecture (PISA a derivative of MIPS).

3. If you wish to run the gcc and the binutils you will have to install the cygwin environment on a windows machine. Make sure to install the 32-bit version. If you already have the 64-bit version installed, no worries, just install the 32-bit cygwin as well. They can happily co-exist.

#1 and #2 above can be found here: Simplescalar sources and compilers. (link corrected)

Do these in the order presented:

1. Can skip if cygwin32 is already installed. Here's how to install cygwin32.

2. How to install the compilers and compile your first program under cygwin.

3. How to compile one of the simplescalar simulators under cygwin.

4. Here's a set of benchmarks you can use. These are traces of execution. They contain a complete checkpoint of the machine's state after 1B of instructions and a record of all return values from system calls for the next 1B instructions. This way you can replay the execution of the program. Simplescalar generates these EIO traces. They are useful in multiple ways: a. You do not need to have the binaries and inputs. 2. You do not have to simulate the first 1B instructions (this supposedly allows us to skip the initialization).

Here's a document describing Simplescalar .

The actual assignment.