Καλησπέρα,
όπως έχουμε εξηγήσει και στο μάθημα (και φαίνεται και στην αναλυτική περιγραφή του αλγορίθμου στο βιβλίο σας), η εγγραφή στη μνήμη για τα stores πραγματοποιείται στο στάδιο Commit. Διαφορετικά θα υπήρχει περίπτωση το σύστημα να μην έχει συνεπές architectural state.
Επομένως, κατά τη διάρκεια του ΕΧ (όσον αφορά τις ασκήσεις) ουσιαστικά το ST λειτουργεί σαν LD, πραγματοποιεί δηλαδή την πρόσβαση στη cache για να βεβαιωθεί ότι υπάρχει το block χωρίς να κάνει εγγραφή δεδομένων.
Κ.
2017-07-11 0:19 GMT+03:00 tom6death6angel6 . tom96meli@gmail.com:
Καλησπέρα! Είδα σε προηγούμενο ποστ στη λίστα (συγκεκριμένα εδώ: http://lists.cslab.ece.ntua.gr/pipermail/advcomparch/2014-September/001109.h...) ότι αν κατά τη διάρκεια του ΕΧ ενός load γίνει flush του pipeline λόγω branch misprediction, η cache θα εξυπηρετήσει κανονικά το αίτημα και θα φέρει το ζητούμενο block, ανεξαρτήτως του pipeline flush. Αν όμως είχαμε ένα store αντί για load, με την ίδια λογική, το store θα έγραφε στην cache garbage τιμές (που μπορεί να οδηγούσαν σε λάθος εκτέλεση του προγράμματος), παρόλο το misprediction; Ζητώ συγγνώμη προκαταβολικά αν αυτό έχει απαντηθεί ήδη κάπου στη λίστα, αλλά δεν βρήκα κάτι αντίστοιχο.
Advcomparch mailing list Advcomparch@lists.cslab.ece.ntua.gr http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
advcomparch@lists.cslab.ece.ntua.gr