This repository contains two computer architecture assignments focused on advanced processor simulation and multimedia SIMD emulation:
- Tomasulo Algorithm Simulation using DLXview
- Emulation of MIPS MSA (Multimedia SIMD Architecture) using Docker, QEMU, and Inline Assembly
This assignment explores dynamic instruction scheduling using the Tomasulo algorithm on a DLX-like processor simulator.
- The goal is to determine the minimum number of reservation stations and buffers needed so that the instruction pipeline never stalls.
- A small looped program is analyzed using the DLXview tool.
- Students must configure DLXview with specific latencies and simulate execution to identify the optimal configuration.
- A small feedforward neural network with two perceptron neurons and five inputs is implemented in DLX assembly.
- The network includes weighted sums, bias addition, and threshold activation.
- The final implementation is submitted as two DLX files.
This assignment focuses on emulating MIPS64 SIMD instructions using inline assembly and the MIPS MSA instruction set.
- Students use Docker to run a Linux environment on Windows.
- The MIPS64 cross-compiler and QEMU emulator are installed inside the Docker container.
- Two C programs are provided (
ex13.candex14.c) that operate on image and vector data. - Each program is implemented in:
- A scalar version
- A SIMD version using MIPS MSA instructions
- Learn to use inline assembly with the MIPS MSA instruction set.
- Understand how SIMD instructions can replace scalar loops.
- Validate correctness by comparing outputs of scalar and SIMD versions.
- Complete the missing SIMD implementation in one of the exercises.
- Completed source files for all program versions.
- Execution output files for validation.
- A brief report (PDF) with screenshots and a summary of findings.
- Dynamic scheduling and reservation station analysis
- Processor simulation with DLXview
- SIMD programming and instruction-level parallelism
- Docker-based cross-compilation
- Inline assembly with MIPS64 and QEMU emulation