<div dir="ltr">Καλησπέρα,<div><br></div><div>1α)Καταρχάς flush δε σημαίνει ότι ενημερώνω την κύρια μνήμη, αλλά ότι γράφω τα περιεχόμενα του block στο bus. Όπως εξήγησα και στο μάθημα έχει να κάνει με την υλοποίηση του MESI και το αν επιτρέπονται τα cache-to-cache transfers ή όχι. Αν δηλαδή όταν μια cache ζητήσει να διαβάσει/γράψει ένα block, τα δεδομένα θα έρθουν από την κύρια μνήμη ή μπορεί να τα δώσει και μια άλλη cache που έχει το block (σε Ε ή S). Αντίστοιχα, η διαφορά του flush με το flush' εντοπίζεται πάλι στην υλοποίηση και έχει να κάνει με το πότε ενημερώνεται η κύρια μνήμη.<br>
<div class="gmail_extra"><br>1b) Όχι. Δεν προκύπτει από κάπου ότι ενημερώνεται η κύρια μνήμη. Για αυτό το λόγο υπάρχει και η SM κατάσταση, ώστε όταν η cache που έχει αυτό το block το κάνει evict να πάει να το γράψει και στην κύρια μνήμη. Κοινώς η κύρια μνήμη εδώ ενημερώνεται μόνο μέσω evicts.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">2) Σε write-back caches ναι, σε write-through θα ήταν όπως είναι στη διαφάνεια. Έχεις δίκιο απλά είχε χρησιμοποιηθεί το σχήμα από τις αντίστοιχες διαφάνειες του coherence όπου υποθέταμε write-through caches.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">K.</div><div class="gmail_extra"><br><div class="gmail_quote">2013/7/1 George Matikas <span dir="ltr"><<a href="mailto:g_matikas@hotmail.com" target="_blank">g_matikas@hotmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div dir="ltr">Γεια σας!<div><br></div><div>Καθώς διάβαζα τις διαφάνειες για να προετοιμαστώ για την αυριανή εξέταση μου γεννήθηκαν κάποιες απορίες. Θα μπορούσατε να με βοηθήσετε να λύσω τις απορίες μου αυτές;</div>
<div><br></div><div>1α. Στις διαφάνειες "Lec8-coherence-13" στη σελίδα 39, που αναφέρει για το πρωτόκολλο MESI, γιατί πρέπει να γίνει Flush στις μεταβάσεις Ε->S, Ε->Ι, S->S, S->I; Δεν υποτίθεται ότι στις καταστάσεις Ε και S η κύρια μνήμη είναι ήδη ενημερωμένη με τα δεδομένα της συγκεκριμένης cache; Άρα δεν υπάρχει λόγος να γράψουμε τα ίδια δεδομένα πάλι... Επίσης, τι διαφορά έχει το Flush' με το Flush;</div>
<div>1β. Στις ίδιες διαφάνειες, στη σελίδα 44, που αναφέρει για το πρωτόκολλο, όταν βρισκόμαστε στην κατάσταση SM και έρθει σήμα BusRd (οπότε γίνεται Flush) για ποιο λόγο παραμένουμε στην ίδια κατάσταση; Δεν θα ήταν πιο σωστό να μεταβούμε στην κατάσταση SC μιας και πλέον τα δεδομένα της κύριας μνήμης είναι ενημερωμένα (και άρα τα δεδομένα της cache δεν είναι "modified" πια);</div>
<div><br></div><div>2. Στις διαφάνειες "Lec9-memory_consistency-13" στη σελίδα 29, στο πινακάκι που δείχνει τις τιμές της κύριας μνήμης και των 2 caches, η τιμή 400 θα έπρεπε να γραφτεί στην μνήμη στην τελευταία γραμμή αντί για την προτελευταία, έτσι δεν είναι;</div>
<div><br></div><div>Ευχαριστώ εκ των προτέρων,</div><div>Ματίκας Γεώργιος</div>                                            </div></div>
<br>_______________________________________________<br>
Advcomparch mailing list<br>
<a href="mailto:Advcomparch@lists.cslab.ece.ntua.gr">Advcomparch@lists.cslab.ece.ntua.gr</a><br>
<a href="http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch" target="_blank">http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Dr. Konstantinos Nikas<br>Computing Systems Laboratory<br>School of Electrical and Computer Engineering<br>National Technical University of Athens<br><br>Tel: +30-210-7724159<br>
e-mail: <a href="mailto:knikas@cslab.ece.ntua.gr" target="_blank">knikas@cslab.ece.ntua.gr</a><br><a href="http://www.cslab.ece.ntua.gr/~knikas" target="_blank">http://www.cslab.ece.ntua.gr/~knikas</a>
</div></div></div>