Καλησπέρα,
Είναι όντως αυτό ένα μειονέκτημα του local history predictor, ή είναι λάθος η υλοποίηση και θα πρέπει να κρατάμε στη θέση x και το πλήρες pc ώστε να μηδενίσουμε το περιεχόμενο της x μόλις αυτή κληθεί από διαφορετικό pc;
αυτό που περιγράφεις είναι ακριβώς το πρόβλημα του aliasing, το οποίο το αντιμετωπίζουν όλα τα συστήματα που προσπαθούν να χωρέσουν πολλή πληροφορία σε μικρό χώρο, όπως και ο local history predictor. Όσον αφορά την άσκηση, η υλοποίηση σας θα πρέπει να είναι "ρεαλιστική", δηλ. όσο πιο κοντά στην πραγματικότητα γίνεται.
Η παράμετρος target που εμφανίζεται για τον κώδικα που μας δόθηκε στις predict και update συναρτήσεις είναι ο προορισμός του branch σε περίπτωση που αυτό είναι taken;
Ναι
Για τους predictors που θα συνθέσουμε, αρκεί να φτιάξουμε ένα .h αρχείο, να το συμπεριλάβουμε ως include στο branch_predictor.cc, να το βάλουμε στο φάκελο του .cc (αυτόν που αναφέρει και η εκφώνηση) και να κάνουμε ένα συνολικό make στο sniper;
Θα πρέπει εκτός από include, να προσθέσετε και τις κατάλληλες κλήσεις για την αρχικοποίηση τους στο branch_predictor.cc. Νομίζω ότι αν δείτε τι έχουμε κάνει για τον nbit predictor, η διαδικασία είναι σαφής.
Κ.
advcomparch@lists.cslab.ece.ntua.gr