gnodipac886 / Core-i9000

A Superscalar Out-of-Order RISC-V CPU for ECE 411 at UIUC.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Core-i9000

Table of Contents
  1. About The Project
  2. Advanced Features
  3. Run Times
  4. Acknowledgements

About The Project

This project is the final project for ECE 411 at UIUC. As a result of all the advanced features, we received a total score of 146/120.

For more information, please refer to our final report and our final presentation.

We decided to implement an 32 bit out-of-order RISC-V processor based on the Tomasulo algorithm learned in lecture. The goal was to have a fully functional processor that supports the RV32i ISA. After implementing the base CPU from scratch, we also included various advanced features such as dynamic branch prediction, superscalar processing, prefetching, as well as a N-way L1 cache and a unified L2 cache.

In order to help us verify the processor and obtain metrics in order to expose bottlenecks, we developed our own software processor model that is capable of running assembly code autonomously. Not only could the software model independently run programs, we also programmed it such that it can report metrics such as the number of instructions per cycle and branch prediction accuracy. By using this feature in the software model, we were able to learn what was limiting our CPU and pick the proper advanced feature to implement that can best improve performance.

The reason we decided to implement an out-of-order processor is because we wanted to challenge ourselves and attempt to put the concepts we learned into practice. By building the processor, we can also explore different optimization techniques that may particularly benefit the out-of-order architecture.

CPU Design

Advanced Features

  • Tomasulo
  • Superscalar
  • Local Branch Prediction
  • Parameterized (N-Way) Cache
  • L2 Cache
  • Software Verification Model
  • Hardware Prefetcher
  • M-extension (Updated Nov 2021)

Run Times

With all the advanced features combined, we achieved the following times:

Competition Code Run Time Percentage Above Baseline
Comp1 433,225 ns 39.89%
Comp2 136,695 ns 96.98%
Comp3 419,305 ns 88.48%

Acknowledgements

About

A Superscalar Out-of-Order RISC-V CPU for ECE 411 at UIUC.


Languages

Language:Assembly 34.1%Language:SystemVerilog 22.7%Language:Verilog 19.2%Language:C 16.4%Language:Stata 6.2%Language:Shell 1.3%Language:Scheme 0.0%