Oracle Branch Predictor

70 views
Skip to first unread message

aaku...@ncsu.edu

unread,
Apr 12, 2019, 1:19:25 PM4/12/19
to ESESC
Hello,

I had questions regarding the Oracle BP in ESESC. The code snippet is:

PredType BPOracle::predict(DInst *dinst, bool doUpdate, bool doStats) {
    if(!dinst->isTaken())
      return CorrectPrediction; // NT
 
    return btb.predict(dinst, doUpdate, doStats);
 }

For an oracle BP the direction should always be what dinst->isTaken says correct? If this condition (!dinst->isTaken())  is false, then why do we wait for prediction from the BTB and not directly do a T? 

Thank you,
Aishwarya

Jose Renau

unread,
Apr 12, 2019, 4:49:20 PM4/12/19
to es...@googlegroups.com, ESESC

the BPOracle is just for the Taken/No-Taken predictor. If both BPOracle and BTB are oracle, you get perfect predction all the time.

Jose Renau
Professor, Computer Science & Engineering
--
You received this message because you are subscribed to the Google Groups "ESESC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to esesc+un...@googlegroups.com.
To post to this group, send email to es...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Sent from Mailspring
Reply all
Reply to author
Forward
0 new messages