Yu-An-Shih / openpiton

ECE575 final project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Integrating Victim Cache into OpenPiton to Reduce Conflict Misses

This is a course project of the ECE 575 Computer Architecture course in Princeton University. We integrated a victim cache into the OpenPiton research framework. This repository is forked from https://github.com/PrincetonUniversity/openpiton.git.

The master branch is the baseline without victim cache, and the victim_cache branch contains our integrated victim cache design. Most changes can be found in piton/design/chip/tile/l15/rtl/, including the added victim cache and modified L1.5 cache control logic. The c test files are in piton/verif/diag/c/riscv/ariane/.

Environment Setup

  • Run source piton/ariane_setup.sh to setup the environment.

==========================

Building a simulation model

  1. cd $PITON_ROOT/build
  2. sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_build -ariane builds a single tile OpenPiton simulation model with the Ariane core.

==========================

Running the self-generated tests

  1. cd $PITON_ROOT/build
  2. Run sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_run -ariane <self-generated test> -gcc_args '-O0' for our self-generated simple demonstrative test cases.

Example: sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_run -ariane vc_load_conflict.c -gcc_args '-O0'

==========================

Running the self-generated tests

  1. cd $PITON_ROOT/build
  2. Run sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_run -ariane <benchmark> for the original and later added benchmarks.

Example: sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_run -ariane hello_world.c

==========================

Configuring the victim cache

To test the victim cache with different sizes, go to piton/design/include/l15.h.pyv and modify vc_numentries on line 149. Rebuild simulation models and run tests.

If you encounter any issue, please contact yashih@princeton.edu or hongjiewang@princeton.edu.

About

ECE575 final project


Languages

Language:Assembly 96.2%Language:Verilog 1.6%Language:SystemVerilog 0.8%Language:C 0.3%Language:Batchfile 0.3%Language:SCSS 0.2%Language:Perl 0.2%Language:Tcl 0.1%Language:Python 0.1%Language:Shell 0.1%Language:M4 0.0%Language:Roff 0.0%Language:C++ 0.0%Language:VHDL 0.0%Language:Stata 0.0%Language:Makefile 0.0%Language:HTML 0.0%Language:Yacc 0.0%Language:Smarty 0.0%Language:Slim 0.0%Language:CMake 0.0%Language:Lex 0.0%Language:Monkey C 0.0%Language:JavaScript 0.0%Language:Ruby 0.0%