[Advcomparch] Απορία για την εκτέλεση των SD

Nick Korasidis el08047 at mail.ntua.gr
Sun May 26 16:21:12 EEST 2013


Καλησπέρα,

Έχω τρεις απορίες σχετικές με την εκτέλεση των load/store εντολών:

1) Επιτρέπεται σε εντολή SD να μπει στο στάδιο EX ακόμα κι αν δεν έχει 
διαθέσιμη την τιμή που θα γράψει;

2) Αν το παραπάνω δεν επιτρέπεται, προκύπτει το εξής πρόβλημα: Σύμφωνα 
με τη διαφάνεια 26 του σετ "Lec6-speculation-13.pdf", τα LD γίνονται 
stall μέχρι τα SD που προηγούνται να υπολογίσουν τη διεύθυνσή τους. 
Σύμφωνα με την εκφώνηση της άσκησης, ο υπολογισμός της διεύθυνσης μιας 
εντολής LD/SD γίνεται στο στάδιο EX. Επομένως, στην άσκηση τα LD πρέπει 
να γίνονται stall μέχρι τα προηγούμενα SD να έχουν διαθέσιμα όλα τα 
ορίσματά, τόσο της διεύθυνσης όσο και της εγγραφόμενης τιμής. Λόγω της 
μεγάλης καθυστέρησης της DIVD, αυτή η παραδοχή δημιουργεί μεγάλη 
απόκλιση στον αλγόριθμο. Είναι σωστή;

3) Θεωρούμε ότι η cache είναι write-allocate. Από όσα προηγήθηκαν στη 
λίστα καταλαβαίνω ότι μια εντολή SD που θέλει να γράψει στη μνήμη φέρνει 
στην cache τα απαραίτητα block στο στάδιο EX και γράφει σε αυτή στο 
στάδιο CMT. Πώς ξέρουμε ότι στο διάστημα που μεσολαβεί από το EX έως το 
CMT το block που θέλουμε είναι ακόμη στην cache και δεν έχει γίνει evict?

Ευχαριστώ.

Νικόλας Κορασίδης


More information about the Advcomparch mailing list