Πίσω

Παράδειγμα

Έστω κρυφή μνήμη άμεσης αντιστοίχησης με 32 μπλοκ, μεγέθους 2 bytes το καθένα και κύρια μνήμη διευθυνσιοδοτημένη κατά byte, η οποία περιέχει 512 bytes. Εάν ο επεξεργαστής ζητήσει να διαβάσει το περιεχόμενο της διεύθυνσης 128 της κύριας μνήμης, η οποία δεν έχει ήδη μεταφερθεί στην κρυφή μνήμη, τι θα συμβεί;

Aπάντηση

Εφόσον η κύρια μνήμη είναι διευθυνσιοδοτημένη κατά byte ενώ η κρυφή αποτελείται από μπλοκ μεγέθους 2 bytes, δύο διαδοχικές διευθύνσεις της κύριας μνήμης αντιστοιχούν στο ίδιο μπλοκ της κρυφής. Για παράδειγμα, οι διευθύνσεις 0 και 1 της κύριας μνήμης αντιστοιχούν στο μπλοκ 0 της κρυφής στο 1ο και 2ο bytes αντίστοιχα. Επομένως, όταν ο επεξεργαστής ζητήσει να διαβάσει το περιεχόμενο της διεύθυνσης 128 της κύριας μνήμης, η οποία δεν έχει ήδη μεταφερθεί στην κρυφή μνήμη, τότε η διεύθυνση μπλοκ της κρυφής μνήμης στην οποία θα μεταφερθεί υπολογίζεται σύμφωνα με τον τύπο της άμεσης αντιστοίχησης, όπου όμως η διεύθυνση της κύριας μνήμης διαιρείται δια 2, δηλαδή με το μέγεθος του μπλοκ.: (128/2) mod 32 = 64 mod 32 = 0
Εκτός όμως από το περιεχόμενο της διεύθυνσης 128 της κύριας μνήμης μεταφέρεται και το περιεχόμενο της 129, δεδομένου ότι το μέγεθος του μπλοκ είναι 2 bytes και ότι ισχύει : (129/2) mod 32 = 64 mod 32 = 0,όπου το σύμβολο δηλώνει την προς τα κάτω στρογγυλοποίηση του αποτελέσματος της διαίρεσης.
Στο σχήμα που ακολουθεί απεικονίζεται η αντιστοίχηση της διεύθυνσης 128 της κύριας μνήμης σε κρυφή μνήμη άμεσης αντιστοίχησης με 32 μπλοκ των 2 bytes.

Το υπόλοιπο της ακέραιης διαίρεσης της διεύθυνσης δια 2, δηλώνει σε ποιο byte του μπλοκ θα τοποθετηθεί το περιεχόμενό της.