This document provides instructions for setting up the environment, building, and running tests for Wierton's Out-of-Order (OoO) Processor.
Ensure you have the following software installed on your system:
- Java 8: Verify your installation using
javac -version.# Example Java environment configuration (optional, if not already set) export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
- SBT: Version 1.3.13 is required (this should be configured in
project/build.properties). - GNU Make: A standard build automation tool.
- Verilator: The default uncore simulator.
- MIPS Cross-Compiler Toolchain: Needed for compiling workloads.
sudo apt update sudo apt install gcc-mips-linux-gnu
To build the Wierton's OoO Processor, navigate to the root directory of this project and run:
makeThis section outlines the steps to execute the cputests suite.
The test workloads are sourced from the nexus-am repository.
# Navigate to the parent directory of this project
cd ..
# Clone the nexus-am repository (if you haven't already)
git clone git@github.com:nju-mips/nexus-am.git
# Return to this project's directory
cd wierton-ooo-processor # Or your project's directory name(Assuming wierton-ooo-processor is the name of the current project directory. Please adjust if your project directory has a different name.)
A golden reference model (NEMU) is used for comparison.
# Navigate to the parent directory of this project
cd ..
# Clone the NEMU MIPS32 repository (master branch, if you haven't already)
git clone git@github.com:nju-mips/nemu-mips32.git -b master
cd nemu-mips32
# Configure NEMU for woopdiff
make woopdiff_defconfig
# Compile NEMU (use -j followed by the number of CPU cores for faster compilation)
make -j$(nproc) # Or make -j4
# Return to this project's directory
cd ../wierton-ooo-processor # Or your project's directory nameRun the cputests using the provided Makefile target.
make run-cputestsFollow these steps to run the microbench and dhrystone benchmarks.
This step is similar to the cputests setup but configures NEMU with AM's IOE support (which might require SDL).
# Navigate to the parent directory of this project
cd ..
# Clone the NEMU MIPS32 repository (master branch, if you haven't already)
# If you cloned it in the previous section, you might only need to reconfigure and rebuild.
# Ensure you are in the nemu-mips32 directory.
# If not already cloned:
git clone git@github.com:nju-mips/nemu-mips32.git -b master
cd nemu-mips32 # If not already in this directory
# Configure NEMU for noop (includes AM's IOE support)
make noop_defconfig
# Compile NEMU
make -j$(nproc) # Or make -j4
# Return to this project's directory
cd ../wierton-ooo-processor # Or your project's directory nameRun the microbench suite using its Makefile target.
make run-microbenchRun the dhrystone benchmark using its Makefile target.
make run-dhrystone