[Advcomparch] Υλοποίηση του Local History Predictor

Christos Michas christos_michas at icloud.com
Wed Jul 16 20:18:59 EEST 2014


Καλησπέρα,

Θα ήθελα να ρωτήσω πώς πρέπει να χειρίζεται τις περιπτώσεις aliasing o local history predictor.
Έστω ότι στη θέση x του BHT αντιστοιχούν τα branch με διευθύνσεις pc1 και  pc2. Αρχικά μόνο η pc1 κάνει branch, οπότε η θέση x γεμίζει με το ιστορικό της, και στη συνέχεια ο predictor καλείται να χειριστεί το branch με pc2. Όταν θα πρέπει να καταγράψουμε το πραγματικό αποτέλεσμα του branch, κατάλαβα ότι θα μετατοπίσουμε απλώς το ιστορικό στη θέση x για να καταγράψουμε το αποτέλεσμα. Μία τέτοια υλοποίηση όμως θα σήμαινε ότι το ιστορικό του pc1 θα συνεχίσει να επηρεάζει τις αποφάσεις για το pc2 μέχρι να γίνουν κάμποσες προβλέψεις και να καθαρίσει πλήρως το ιστορικό από τις καταχωρήσεις του pc1. Είναι όντως αυτό ένα μειονέκτημα του local history predictor, ή είναι λάθος η υλοποίηση και θα πρέπει να κρατάμε στη θέση x και το πλήρες pc ώστε να μηδενίσουμε το περιεχόμενο της x μόλις αυτή κληθεί από διαφορετικό pc;

Και δύο πιο ειδικές, διευκρινιστικές ερωτήσεις:
Η παράμετρος target που εμφανίζεται για τον κώδικα που μας δόθηκε στις predict και update συναρτήσεις είναι ο προορισμός του branch σε περίπτωση που αυτό είναι taken;
Για τους predictors που θα συνθέσουμε, αρκεί να φτιάξουμε ένα .h αρχείο, να το συμπεριλάβουμε ως include στο branch_predictor.cc, να το βάλουμε στο φάκελο του .cc (αυτόν που αναφέρει και η εκφώνηση) και να κάνουμε ένα συνολικό make στο sniper;

Ευχαριστώ πολύ,
Μίχας Χρήστος
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cslab.ece.ntua.gr/pipermail/advcomparch/attachments/20140716/0059c9c3/attachment.htm>


More information about the Advcomparch mailing list