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/
.
- Run
source piton/ariane_setup.sh
to setup the environment.
==========================
cd $PITON_ROOT/build
sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_build -ariane
builds a single tile OpenPiton simulation model with the Ariane core.
==========================
cd $PITON_ROOT/build
- 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'
==========================
cd $PITON_ROOT/build
- 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
==========================
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.