Καλησπέρα,
γενικά στην υλοποίηση της LRU (αλλά και των υπόλοιπων πολιτικών αντικατάστασης) πρέπει να δίνεται προτεραιότητα στα invalid blocks. Δηλαδή, όταν ψάχνουμε να διώξουμε κάποιο block για να φέρουμε ένα καινούριο πρώτα κοιτάμε αν υπάρχει κάποιο άδειο (invalid) και αν δε βρούμε ψάχνουμε το LRU (ή όποιο ορίζει η πολιτική).
Στο συγκεκριμένο θέμα που αναφέρεις, επειδή δεν είχε εξηγηθεί και δημιουργήθηκε μπέρδεμα, θεωρήθηκε τελικά ότι η πολιτική δεν ψάχνει τα invalid αλλά κοιτά μόνο τα LRU. Προφανώς, εσείς μπορείτει να κοιτάτε πρώτα για invalid.
Κ.
2013/7/1 Dimitris tartoufo1973@gmail.com:
Έχω την εξής απορία για την περίπτωση του MESI cache coherence protocol με associative cache. Όταν ένα μπλοκ γίνεται Invalid, η LRU προτεραιότητά του αλλάζει ή όχι. Δηλαδή ένα invalid block είναι το πρώτο υποψήφιο προς αντικατάσταση σε κάποιο conflict;
Παράδειγμα: Θέματα εξετάσεων Ιουλίου 2012, Θέμα 4ο:
Στην αίτηση του P0 για s[0].x το block της cache του P1 που περιέχει s[0].x....s[1].x γίνεται invalid. Το ίδιο set περιέχει επιπλέον το b[0]...b[3] Παρακάτω στην αίτηση του P1 για a[1] ποιο block θα αντικατασταθεί; (αν το invalid block είναι το πρώτο υποψήφιο θα αντικατασταθεί αυτό). Πιο κάτω ο P1 κάνει αίτηση για το b[1]. Έχουμε hit ή miss; (αν αντικαταστάθηκε όντως το invalid block θα έχουμε hit).
Ευχαριστώ.
Advcomparch mailing list Advcomparch@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@cslab.ece.ntua.gr http://www.cslab.ece.ntua.gr/~knikas
advcomparch@lists.cslab.ece.ntua.gr