agusnt / Berti-Artifact

An artifact for Berti: an Accurate and Timely Local-Delta Data Prefetcher
GNU General Public License v3.0
22 stars 13 forks source link

Why use two source codes of ChampSim? #2

Open Yujie-Cui opened 1 year ago

Yujie-Cui commented 1 year ago

Hello. I see that there are two source codes of ChampSim(Berti Other_PF) in the directory, why not use one? Why run Berti in the first copy and the other prefetchers in the second?

Is it because Berti's source code added some extra support? Does it make the emulator no longer support other prefetchers? So why can Berti+Bingo be evaluated in Other_PF?

Thanks

agusnt commented 1 year ago

Hello,

Since this version of ChampSim drop prefetch requests that miss in STLB, I need a function call after a prefetch is translated to be tracked by the latency table.

https://github.com/agusnt/Berti-Artifact/blob/5db245732198ee7cf67f91c5ce32b5a017ba3a4e/ChampSim/Berti/src/cache.cc#L2691-L2694

This function is not required by any other L1D prefetcher. So to make it easier to have two different versions of ChampSim. Another two option to implement this behaviour is adding a define that only compile that function for Berti or add an empty function in all L1D prefetchers. I want to do it when I have some free time, but I recommend to do it if you are going to work in with this artifact.

_So why can Berti+Bingo be evaluated in OtherPF?

This can be a bug in the scripts, Berti+Bingo should be evaluated in Berti folder.