[Advcomparch] Απορία

Konstantinos Nikas knikas at cslab.ece.ntua.gr
Fri Apr 4 12:10:38 EEST 2014


Καλησπέρα,

1) Έχουμε αναλύσει πολλές φορές αυτό το θέμα (και κατά πάσα πιθανότητα
υπάρχει ήδη κάποια απάντηση στα αρχεία της λίστας). Το flush γίνεται
μέσα στο pipeline. Δεν υπάρχει η δυνατότητα να πει ο επεξεργαστής στη
cache "σταμάτα μη μου το φέρεις τελικά αυτό που σου ζήτησα". Έχετε δει
πλέον τα πρωτόκολλα συνάφειας, άρα μπορείτε να εκτιμήσετε την
πολυπλοκότητα μιας τέτοιας κίνησης.

Προφανώς αυτό δημιουργεί ένα θέμα όταν εκτελεστεί στο ΕΧ ένα store που
βρίσκεται σε mispredicted path. Για αυτό το λόγο, όπως έχουμε πει στο
μάθημα τα stores μπαίνουν σε ένα write buffer και μεταφέρονται στην
cache όταν η εντολή store κάνει commit. Καταχρηστικά, για ευκολία στην
άσκηση θεωρούμε ότι το store "εκτελείται" και αυτό στο στάδιο EX. Δεν
μπορεί να είναι τυχαίο όμως ότι σε όλες τις ασκήσεις και τα θέματα δεν
έχετε ποτέ συναντήσει store σε mispredicted path...

2) Είναι καθαρά θέμα υλοποίησης και αρχιτεκτονικής. Σε μια
αρχιτεκτονική όπως ο MIPS που οι εντολές απέχουν πάντα 4 bytes, είναι
"χαζό" (μη αποδοτικό) να χρησιμοποιείς τα 2 LSB, τα οποία είναι πάντα
0. Σε άλλες αρχιτεκτονικές όμως μπορεί να μην είναι δυνατό να τα
αγνοείς.

Τώρα, στα θέματα που αναφέρεσαι, νομίζω ότι μόνο σε μια περίπτωση δεν
τα είχαμε αγνοήσει (και αυτό είχε συμβεί λόγω συγκεκριμένου λάθους
εκφώνησης/διευκρίνισης κτλ).

Κ.

2014-04-03 21:44 GMT+03:00 Elgo Kostas <kostakiskakos at hotmail.com>:
> Καλησπέρα! Θα ήθελα ρωτήσω κι εγώ κάτι!
>
> 1) Στον tomasulo όταν έχω λάθος πρόβλεψη για μια εντολή διακλάδωσης
> ακολουθούν κάποιες εντολές μέχρι να γίνει γνωστό το αποτέλεσμα της
> διακλάδωσης οι οποίες στη συνέχεια γίνονται flush. Έστω ότι στις εντολές
> αυτές υπάρχει μια load ή store. H κατάσταση στην cache επηρεάζεται μόνο αν
> προλάβει να ολοκληρωθεί το στάδιο EX της εντολής load/store; Τι γίνεται με
> την cache αν το EX "κοπεί" στη μέση;
>
> 2) Βλέπω στα θέματα αλλού αγνοούμε τα 2 τελευταία bits του PC για τη
> δεικτοδότηση των predictors και αλλού όχι. Τι από τα δύο είναι σωστό;
>
> Ευχαριστώ
>
> _______________________________________________
> Advcomparch mailing list
> Advcomparch at lists.cslab.ece.ntua.gr
> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
>



-- 
Dr. Konstantinos Nikas
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens

Tel: +30-210-7724159
e-mail: knikas at cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas


More information about the Advcomparch mailing list