Γεια σας!
Καθώς διάβαζα τις διαφάνειες για να προετοιμαστώ για την αυριανή εξέταση μου γεννήθηκαν κάποιες απορίες. Θα μπορούσατε να με βοηθήσετε να λύσω τις απορίες μου αυτές;
1α. Στις διαφάνειες "Lec8-coherence-13" στη σελίδα 39, που αναφέρει για το πρωτόκολλο MESI, γιατί πρέπει να γίνει Flush στις μεταβάσεις Ε->S, Ε->Ι, S->S, S->I; Δεν υποτίθεται ότι στις καταστάσεις Ε και S η κύρια μνήμη είναι ήδη ενημερωμένη με τα δεδομένα της συγκεκριμένης cache; Άρα δεν υπάρχει λόγος να γράψουμε τα ίδια δεδομένα πάλι... Επίσης, τι διαφορά έχει το Flush' με το Flush;1β. Στις ίδιες διαφάνειες, στη σελίδα 44, που αναφέρει για το πρωτόκολλο, όταν βρισκόμαστε στην κατάσταση SM και έρθει σήμα BusRd (οπότε γίνεται Flush) για ποιο λόγο παραμένουμε στην ίδια κατάσταση; Δεν θα ήταν πιο σωστό να μεταβούμε στην κατάσταση SC μιας και πλέον τα δεδομένα της κύριας μνήμης είναι ενημερωμένα (και άρα τα δεδομένα της cache δεν είναι "modified" πια);
2. Στις διαφάνειες "Lec9-memory_consistency-13" στη σελίδα 29, στο πινακάκι που δείχνει τις τιμές της κύριας μνήμης και των 2 caches, η τιμή 400 θα έπρεπε να γραφτεί στην μνήμη στην τελευταία γραμμή αντί για την προτελευταία, έτσι δεν είναι;
Ευχαριστώ εκ των προτέρων,Ματίκας Γεώργιος