-----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