Thanks for the quick response! What I do is I comment out the block of code in bpred_impl.hh that checks for if (!isCondCtrl()) and let unconditional branches be looked up in the local predictor. Once this code is commented, I run several simulations each with a different BP size: 32, 256, 1024, 2048, 4096 entries In the BP (the rest of the setup is the same as the original model) and what I observed is a monotonic increase in the number of mispredictions. I have spend several days debugging the code and as far as I can see, things are setup fine... So, I'm guessing this is a bug that quite under the hood.
Let me add that I have run several spec benchmarks and they all exhibit the same behavior. I'm using the version of gem5 from summer 2012. Also, I believe this behavior is wrong because as the size of the predictor increases aliasing probability drops and he number of mispredictions ought to drop (unless a corner case happens....) On Thursday, January 16, 2014, Anthony Gutierrez <[email protected]> wrote: > I'm not quite sure exactly what it is you're doing, but if I am following > correctly it doesn't seem like a bug. If you are allowing unconditional > branches to pollute the predictor's history tables with an "always taken" > prediction for that particular PC, then the behavior describing could be > reasonable. > > > Anthony Gutierrez > http://web.eecs.umich.edu/~atgutier > > > On Thu, Jan 16, 2014 at 9:01 PM, Milad Mohammadi > <[email protected]<javascript:_e({}, 'cvml', '[email protected]');> > > wrote: > >> Hi, >> >> The gem5 local branch predictor exhibits a larger number of mispredictions >> as you increase the size of the predictor. This happens when I allow >> "unconditional" branches to be looked up in the predictor. >> >> Please advise what is the reason behind this bug. >> The correct behavior is regardless what type of instructions are looked up >> in the BP as the BP size increases, the accuracy drops. >> >> Thanks! >> Milad >> _______________________________________________ >> gem5-dev mailing list >> [email protected] <javascript:_e({}, 'cvml', '[email protected]');> >> http://m5sim.org/mailman/listinfo/gem5-dev >> > >
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
