Καλησπέρα,
δε χρειάζεται να σκέφτεστε πολύπλοκα, οι απαντήσεις είναι συνήθως απλές. Όταν κάποιος θέλει να κάνει write, προφανώς και απαιτείται να λάβει τα up-to-date δεδομένα, καθώς το coherence protocol δουλεύει σε επίπεδο cache block, ενώ οι εγγραφές από τον επεξεργαστή γίνονται σε επίπεδο word, half word ή byte.
Όσον αφορά τα misses, βλέπεις με λάθος τρόπο τη διαδικασία. Την ερώτηση "είναι miss ή όχι" την κάνει ο επεξεργαστής που ζητάει τo block και την απάντηση τη δίνει η δική του cache με βάση το αν το block υπάρχει μέσα της στο κατάλληλο state. Αν λοιπόν το block δεν υπάρχει ή υπάρχει αλλά όχι στο κατάλληλο state, τότε έχουμε miss και η ίδια cache διαπιστώνει και τον τύπο του miss (απαντώντας ουσιαστικά στην ερώτηση "γιατί δεν έχω τα δεδομένα που πρέπει;").
Κ.
2015-07-07 0:54 GMT+03:00 Εμμανουήλ Βλατάκης-Γκαραγκούνης tetraktida42@gmail.com:
Α)
Έστω ο ορισμός που δώσατε στο Flush, δηλαδή """παρέχει τα data στον επεξεργαστή που τα ζήτησε""".Να ρωτήσω κάτι και στο MSI, MESI γιατί όταν έχω στο E/M το block και ο άλλος θέλει να γράψει κάτι σε αυτό πρέπει εγώ να του στείλω με Flush αυτό που έχω. Αφού έτσι και αλλιώς σκοπεύει να το τροποποιήσει. Άρα τι νόημα έχει να κάνω Flush, αφού την πληροφορία μου θα την πετάξει, αφού σκοπεύει να κάνει WRITE?
Τι συμβαίνει σε αυτή την λεπτομέρεια.
Το μόνο που συμβαίνει και μπορώ να φανταστώ εγώ είναι αν χρησιμοποιούσαμε π.χ σε πιο upper level το MESI, πρωτόκολλο π.χ για DataBase Coherence. Τότε κάνοντας flush στο BusWRITE demand κάποιου άλλου, αφήνεις τον άλλο να λάβει το exclusiveness αλλά έχοντας δώσει την πληροφορία σου στο bus, μπορείς την μνήμη [global database] να την ενημερώσεις για τα δικά σου αποτελέσματα. Η μνήμη θα παραμείνει invalid γιατί κάποια ακόμα πιο νέα πληροφορία θα γραφτεί, αλλά θα έχει προχωρήσει τουλάχιστον στο ιστορικό, πράγμα που σε επίπεδο ας πούμε βάσης δεδομένων θα το θέλαμε.
Β) Ένα συναφές ζήτημα με τις συνολικές απορίες είναι το cache coherence miss σύστημα. Θα μου φαινόταν λογικό να έπρεπε να θεωρώ ότι εμφανίστηκε miss κάθε φορά που θα χρειαστεί να γράψω για κάποιο λόγο στο bus. Κάτι τέτοιο όμως δεν επαληθεύεται στις λύσεις στο θέμα του Ιουλίου του 2012. Π.χ +) όταν γίνονται από exclusive shared πράγματα δεν έχω coherence miss. [πρώτα 6 miss] +)Επίσης αν τύχει κάποιος άλλος να έχει exclusive και εγώ να το παίρνω για πρώτη φορά το block και θέλω να γράψω έχω μόνο compulsory, ενώ σίγουρα κάποιον μόλις τον έκανα invalid [7o με 10ο miss Μεταξυ P0,P1] +) Ενώ στον αντίποδα αν ακριβώς έχει συμβεί για δεύτερη φορά αυτό [19ο με 21ο miss, Μεταξυ P0,P1]
Αν μπορείτε δώστε μας ένα clarification σε αυτό το ζήτημα
Στις 2 Ιουλίου 2015 - 12:36 π.μ., ο χρήστης Βασίλειος Χαρισόπουλος el10046@central.ntua.gr έγραψε:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Καλησπέρα,
έχω 2 απορίες για την συμπεριφορά του πρωτοκόλλου MESI που έχουν να κάνουν με τα flushes. Συγκεκριμένα, έστω τα 2 ακόλουθα σενάρια για σύστημα με 2 επεξεργαστές, ο καθένας με τη δικιά του cache, αναφερόμενος πάντα στο ίδιο block.
- Έστω ότι σε κάποια φάση βρισκόμαστε στην κατάσταση (Modified, Invalid)
και ο P2 κάνει read. Ο P1 θα παρατηρήσει το BusRd και θα κάνει flush. Τα δεδομένα που θα κάνει flush "πάνε" μόνο στην κύρια μνήμη ή και στον P2? Δηλαδή ο P2 θα χρειαστεί να περιμένει την μεταφορά από P1 -> cache και έπειτα cache -> P2 ή θεωρούμε πως ένα flush ενημερώνει και τον επεξεργαστή που το ζήτησε;
Εάν η απάντηση είναι ότι το flush ενημερώνει μονάχα την κύρια μνήμη και δεν κάνει κάποιο cache-to-cache transfer, προκύπτει η εξής απορία:
- Έστω ότι είμαστε στην κατάσταση (Exclusive, Invalid) και ο P2 κάνει
Read. Για ποιο λόγο -όπως φαίνεται στο FSM του MESI- ο P1 να κάνει απλό flush (άρα να ενημερώσει την κύρια μνημη και ο P2 να πρέπει να περιμένει για αυτή την ενημέρωση) και όχι flush' (που αφορά μονάχα cache-to-cache transfers) εφόσον το αντίγραφο που διαθέτει δεν διαφέρει από αυτό της κύριας μνήμης?
Ευχαριστώ προκαταβολικά.
“The method of doubt must be applied to civilization; we must doubt its necessity, its excellence, and its permanence.”
- -Charles Fourier
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2
iQIcBAEBCAAGBQJVlF1gAAoJEIdZW/3eEQLNBc8P/i1bAr19LQ/wWm3erEctSvOA tO5oCp9EnN/zsZzVY1U6i4jEYfPVzku77DLqtCM9rKF9n2N4QAv4qz7hQzqrR1In XD2IP+9zwDzAgnQ3OfOY6CFQJLIe9ySuLhUfLlBf1rcfStWkkYu+ER9JCryKyEgA pCzVHSc3O3njXx6NrPGM8JGgArxMECAvJDrEDp1P/+26JH6CY6CgI+Hnn/ESHPhN IW+31Y8l/lZFRR5TGof9J5YpHAoU0KFjtIGc6FkBYfvnuZMNGfhPq50it2/T25EU hUsYO95JrtwzHlMpeu8llcBVap/nDV+b+eHx1FYoeMZSDPItHlvFeZu9ho69OP/J H/wmHl0f5wWCoDDGPTa8NZIjj7+NjjBJnklVXQUpn64CtqrxihSanqkV9NnWk9Eu 2C9B/573h/wA74HwyM9azO/uZhc+dgnsSsFvGwiL8IRENLWaupiJrUkkRoAJxa2w 2Eyui0GFyc/VVokL+sHYx+xtvi3+frazNDpricJUdHPpsu15XsPu+bQEU/mDSMTZ +kn4DwTCjQIZwsq+5qg/26SXdfYSepKvv6lpfoJx/tqLx42XcBWuprPMVmN/fKm5 xyfpN6wBzPEtDlfanEILQYw6iqYdWpx5EkTW8t/OUdXcH2zqh7b+OERAxfNn7Ohl 0C/U48hc3JTucddOjjzK =r9Tj -----END PGP SIGNATURE----- _______________________________________________ Advcomparch mailing list Advcomparch@lists.cslab.ece.ntua.gr http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
Advcomparch mailing list Advcomparch@lists.cslab.ece.ntua.gr http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
advcomparch@lists.cslab.ece.ntua.gr