<div dir="ltr"><span style="font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><br></div></blockquote></font></span><div style="font-size:13px"><font color="#000000" style="background-color:rgb(255,255,255)">Α)<br></font><blockquote class="gmail_quote" style="color:rgb(0,0,0);margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Έστω ο ορισμός που δώσατε στο Flush, δηλαδή """παρέχει τα data στον επεξεργαστή που τα ζήτησε""".Να ρωτήσω κάτι και στο MSI, MESI γιατί όταν έχω στο E/M το block και ο άλλος θέλει να γράψει κάτι σε αυτό πρέπει εγώ να του στείλω με Flush αυτό που έχω. Αφού έτσι και αλλιώς σκοπεύει να το τροποποιήσει.<br>Άρα τι νόημα έχει να κάνω Flush, αφού την πληροφορία μου θα την πετάξει, αφού σκοπεύει να κάνει WRITE?<br><br>Τι συμβαίνει σε αυτή την λεπτομέρεια.</div></blockquote><div style="color:rgb(0,0,0)"> </div><font color="#000000" style="background-color:rgb(255,255,255)">Το μόνο που συμβαίνει και μπορώ να φανταστώ εγώ είναι αν χρησιμοποιούσαμε π.χ σε πιο upper level το MESI, πρωτόκολλο π.χ για DataBase Coherence. Τότε κάνοντας flush στο BusWRITE demand κάποιου άλλου, αφήνεις τον άλλο να λάβει το exclusiveness αλλά έχοντας δώσει την πληροφορία σου στο bus, μπορείς την μνήμη [global database] να την ενημερώσεις για τα δικά σου αποτελέσματα. Η μνήμη θα παραμείνει invalid γιατί κάποια ακόμα πιο νέα πληροφορία θα γραφτεί, αλλά θα έχει προχωρήσει τουλάχιστον στο ιστορικό, πράγμα που σε επίπεδο ας πούμε βάσης δεδομένων θα το θέλαμε.<br><br>Β)<br>Ένα συναφές ζήτημα με τις συνολικές απορίες είναι το cache coherence miss σύστημα.<br>Θα μου φαινόταν λογικό να έπρεπε να θεωρώ ότι εμφανίστηκε miss κάθε φορά που θα χρειαστεί να γράψω για κάποιο λόγο στο bus. Κάτι τέτοιο όμως δεν επαληθεύεται στις λύσεις στο θέμα του Ιουλίου του 2012. <br>Π.χ<br>+) όταν γίνονται από exclusive shared πράγματα δεν έχω coherence miss. [πρώτα 6 miss]<br>+)Επίσης αν τύχει κάποιος άλλος να έχει exclusive και εγώ να το παίρνω για πρώτη φορά το block και θέλω να γράψω έχω μόνο compulsory, ενώ σίγουρα κάποιον μόλις τον έκανα invalid [7o με 10ο miss </font><span style="color:rgb(0,0,0)">Μεταξυ P0,P1</span><span style="color:rgb(0,0,0)">]</span></div><div style="font-size:13px"><font color="#000000" style="background-color:rgb(255,255,255)">+) Ενώ στον αντίποδα αν ακριβώς έχει συμβεί για δεύτερη φορά αυτό [19ο με 21ο miss, Μεταξυ P0,P1]<br><br></font><span style="color:rgb(0,0,0)">Αν μπορείτε δώστε μας ένα clarification σε αυτό το ζήτημα</span><font color="#000000" style="background-color:rgb(255,255,255)"><br><br><br></font></div><div class="gmail_extra"><font color="#000000" style="background-color:rgb(255,255,255)"><br></font><div class="gmail_quote"><font color="#000000" style="background-color:rgb(255,255,255)">Στις 2 Ιουλίου 2015 - 12:36 π.μ., ο χρήστης Βασίλειος Χαρισόπουλος <span dir="ltr"><<a href="mailto:el10046@central.ntua.gr" target="_blank">el10046@central.ntua.gr</a>></span> έγραψε:<br></font><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font color="#000000" style="background-color:rgb(255,255,255)">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA256<br>
<br>
Καλησπέρα,<br>
<br>
έχω 2 απορίες για την συμπεριφορά του πρωτοκόλλου MESI που έχουν να κάνουν με τα flushes.<br>
Συγκεκριμένα, έστω τα 2 ακόλουθα σενάρια για σύστημα με 2 επεξεργαστές, ο καθένας με τη δικιά του cache, αναφερόμενος πάντα στο ίδιο block.<br>
<br>
1) Έστω ότι σε κάποια φάση βρισκόμαστε στην κατάσταση (Modified, Invalid) και ο P2 κάνει read. Ο P1 θα παρατηρήσει το BusRd και θα κάνει flush. Τα δεδομένα που θα κάνει flush "πάνε" μόνο στην κύρια μνήμη ή και στον P2? Δηλαδή ο P2 θα χρειαστεί να περιμένει την μεταφορά από P1 -> cache και έπειτα cache -> P2 ή θεωρούμε πως ένα flush ενημερώνει και τον επεξεργαστή που το ζήτησε;<br>
<br>
Εάν η απάντηση είναι ότι το flush ενημερώνει μονάχα την κύρια μνήμη και δεν κάνει κάποιο cache-to-cache transfer, προκύπτει η εξής απορία:<br>
<br>
2) Έστω ότι είμαστε στην κατάσταση (Exclusive, Invalid) και ο P2 κάνει Read. Για ποιο λόγο -όπως φαίνεται στο FSM του MESI- ο P1 να κάνει απλό flush (άρα να ενημερώσει την κύρια μνημη και ο P2 να πρέπει να περιμένει για αυτή την ενημέρωση) και όχι flush' (που αφορά μονάχα cache-to-cache transfers) εφόσον το αντίγραφο που διαθέτει δεν διαφέρει από αυτό της κύριας μνήμης?<br>
<br>
Ευχαριστώ προκαταβολικά.<br>
<br>
<br>
- --<br>
“The method of doubt must be applied to civilization; we must doubt its necessity, its excellence, and its permanence.”<br>
- -Charles Fourier<br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v2<br>
<br>
iQIcBAEBCAAGBQJVlF1gAAoJEIdZW/3eEQLNBc8P/i1bAr19LQ/wWm3erEctSvOA<br>
tO5oCp9EnN/zsZzVY1U6i4jEYfPVzku77DLqtCM9rKF9n2N4QAv4qz7hQzqrR1In<br>
XD2IP+9zwDzAgnQ3OfOY6CFQJLIe9ySuLhUfLlBf1rcfStWkkYu+ER9JCryKyEgA<br>
pCzVHSc3O3njXx6NrPGM8JGgArxMECAvJDrEDp1P/+26JH6CY6CgI+Hnn/ESHPhN<br>
IW+31Y8l/lZFRR5TGof9J5YpHAoU0KFjtIGc6FkBYfvnuZMNGfhPq50it2/T25EU<br>
hUsYO95JrtwzHlMpeu8llcBVap/nDV+b+eHx1FYoeMZSDPItHlvFeZu9ho69OP/J<br>
H/wmHl0f5wWCoDDGPTa8NZIjj7+NjjBJnklVXQUpn64CtqrxihSanqkV9NnWk9Eu<br>
2C9B/573h/wA74HwyM9azO/uZhc+dgnsSsFvGwiL8IRENLWaupiJrUkkRoAJxa2w<br>
2Eyui0GFyc/VVokL+sHYx+xtvi3+frazNDpricJUdHPpsu15XsPu+bQEU/mDSMTZ<br>
+kn4DwTCjQIZwsq+5qg/26SXdfYSepKvv6lpfoJx/tqLx42XcBWuprPMVmN/fKm5<br>
xyfpN6wBzPEtDlfanEILQYw6iqYdWpx5EkTW8t/OUdXcH2zqh7b+OERAxfNn7Ohl<br>
0C/U48hc3JTucddOjjzK<br>
=r9Tj<br>
-----END PGP SIGNATURE-----<br>
_______________________________________________<br>
Advcomparch mailing list<br>
<a href="mailto:Advcomparch@lists.cslab.ece.ntua.gr" target="_blank">Advcomparch@lists.cslab.ece.ntua.gr</a><br>
<a href="http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch" rel="noreferrer" target="_blank">http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch</a><br>
</font></blockquote></div><br></div></div>