1
1
#! /bin/bash
2
2
3
- if [ " $# " -ne 6 ]; then
3
+ if [ " $# " -ne 7 ]; then
4
4
echo " Illegal number of parameters"
5
5
echo " Usage: ./build_champsim.sh [branch_pred] [l1d_pref] [l2c_pref] [llc_pref] [llc_repl] [num_core]"
6
6
exit 1
7
7
fi
8
8
9
9
# ChampSim configuration
10
10
BRANCH=$1 # branch/*.bpred
11
- L1D_PREFETCHER=$2 # prefetcher/*.l1d_pref
12
- L2C_PREFETCHER=$3 # prefetcher/*.l2c_pref
13
- LLC_PREFETCHER=$4 # prefetcher/*.llc_pref
14
- LLC_REPLACEMENT=$5 # replacement/*.llc_repl
15
- NUM_CORE=$6 # tested up to 8-core system
11
+ L1I_PREFETCHER=$2 # prefetcher/*.l1i_pref
12
+ L1D_PREFETCHER=$3 # prefetcher/*.l1d_pref
13
+ L2C_PREFETCHER=$4 # prefetcher/*.l2c_pref
14
+ LLC_PREFETCHER=$5 # prefetcher/*.llc_pref
15
+ LLC_REPLACEMENT=$6 # replacement/*.llc_repl
16
+ NUM_CORE=$7 # tested up to 8-core system
16
17
17
18
# ############# Some useful macros ###############
18
19
BOLD=$( tput bold)
@@ -27,6 +28,13 @@ if [ ! -f ./branch/${BRANCH}.bpred ]; then
27
28
exit 1
28
29
fi
29
30
31
+ if [ ! -f ./prefetcher/${L1I_PREFETCHER} .l1i_pref ]; then
32
+ echo " [ERROR] Cannot find L1I prefetcher"
33
+ echo " [ERROR] Possible L1I prefetchers from prefetcher/*.l1i_pref "
34
+ find prefetcher -name " *.l1i_pref"
35
+ exit 1
36
+ fi
37
+
30
38
if [ ! -f ./prefetcher/${L1D_PREFETCHER} .l1d_pref ]; then
31
39
echo " [ERROR] Cannot find L1D prefetcher"
32
40
echo " [ERROR] Possible L1D prefetchers from prefetcher/*.l1d_pref "
80
88
81
89
# Change prefetchers and replacement policy
82
90
cp branch/${BRANCH} .bpred branch/branch_predictor.cc
91
+ cp prefetcher/${L1I_PREFETCHER} .l1i_pref prefetcher/l1i_prefetcher.cc
83
92
cp prefetcher/${L1D_PREFETCHER} .l1d_pref prefetcher/l1d_prefetcher.cc
84
93
cp prefetcher/${L2C_PREFETCHER} .l2c_pref prefetcher/l2c_prefetcher.cc
85
94
cp prefetcher/${LLC_PREFETCHER} .llc_pref prefetcher/llc_prefetcher.cc
101
110
102
111
echo " ${BOLD} ChampSim is successfully built"
103
112
echo " Branch Predictor: ${BRANCH} "
113
+ echo " L1I Prefetcher: ${L1I_PREFETCHER} "
104
114
echo " L1D Prefetcher: ${L1D_PREFETCHER} "
105
115
echo " L2C Prefetcher: ${L2C_PREFETCHER} "
106
116
echo " LLC Prefetcher: ${LLC_PREFETCHER} "
107
117
echo " LLC Replacement: ${LLC_REPLACEMENT} "
108
118
echo " Cores: ${NUM_CORE} "
109
- BINARY_NAME=" ${BRANCH} -${L1D_PREFETCHER} -${L2C_PREFETCHER} -${LLC_PREFETCHER} -${LLC_REPLACEMENT} -${NUM_CORE} core"
119
+ BINARY_NAME=" ${BRANCH} -${L1I_PREFETCHER} - ${ L1D_PREFETCHER} -${L2C_PREFETCHER} -${LLC_PREFETCHER} -${LLC_REPLACEMENT} -${NUM_CORE} core"
110
120
echo " Binary: bin/${BINARY_NAME} "
111
121
echo " "
112
122
mv bin/champsim bin/${BINARY_NAME}
@@ -118,6 +128,7 @@ sed -i.bak 's/\<NUM_CPUS '${NUM_CORE}'\>/NUM_CPUS 1/g' inc/champsim.h
118
128
# sed -i.bak 's/\<DRAM_CHANNELS_LOG2 1\>/DRAM_CHANNELS_LOG2 0/g' inc/champsim.h
119
129
120
130
cp branch/bimodal.bpred branch/branch_predictor.cc
131
+ cp prefetcher/no.l1i_pref prefetcher/l1i_prefetcher.cc
121
132
cp prefetcher/no.l1d_pref prefetcher/l1d_prefetcher.cc
122
133
cp prefetcher/no.l2c_pref prefetcher/l2c_prefetcher.cc
123
134
cp prefetcher/no.llc_pref prefetcher/llc_prefetcher.cc
0 commit comments