[Advcomparch] Απορίες για το MESI protocol

Konstantinos Nikas knikas at cslab.ece.ntua.gr
Tue Jul 7 14:34:11 EEST 2015


Καλησπέρα,

δε χρειάζεται να σκέφτεστε πολύπλοκα, οι απαντήσεις είναι συνήθως
απλές. Όταν κάποιος θέλει να κάνει 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 at 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 at central.ntua.gr> έγραψε:
>>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>
>> Καλησπέρα,
>>
>> έχω 2 απορίες για την συμπεριφορά του πρωτοκόλλου MESI που έχουν να κάνουν
>> με τα flushes.
>> Συγκεκριμένα, έστω τα 2 ακόλουθα σενάρια για σύστημα με 2 επεξεργαστές, ο
>> καθένας με τη δικιά του cache, αναφερόμενος πάντα στο ίδιο block.
>>
>> 1) Έστω ότι σε κάποια φάση βρισκόμαστε στην κατάσταση (Modified, Invalid)
>> και ο P2 κάνει read. Ο P1 θα παρατηρήσει το BusRd και θα κάνει flush. Τα
>> δεδομένα που θα κάνει flush "πάνε" μόνο στην κύρια μνήμη ή και στον P2?
>> Δηλαδή ο P2 θα χρειαστεί να περιμένει την μεταφορά από P1 -> cache και
>> έπειτα cache -> P2 ή θεωρούμε πως ένα flush ενημερώνει και τον επεξεργαστή
>> που το ζήτησε;
>>
>> Εάν η απάντηση είναι ότι το flush ενημερώνει μονάχα την κύρια μνήμη και
>> δεν κάνει κάποιο cache-to-cache transfer, προκύπτει η εξής απορία:
>>
>> 2) Έστω ότι είμαστε στην κατάσταση (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 at lists.cslab.ece.ntua.gr
>> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
>
>
>
> _______________________________________________
> Advcomparch mailing list
> Advcomparch at lists.cslab.ece.ntua.gr
> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
>



-- 
Dr. Konstantinos Nikas
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens

Tel: +30-210-7724159
e-mail: knikas at cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas


More information about the Advcomparch mailing list