Πίσω

Παράδειγμα

Θεωρούμε ότι έχουμε έναν υπολογιστή που διαθέτει:

Εξετάζουμε τις τεχνικές αντιστοίχησης για το μπλοκ της κύριας μνήμης με διεύθυνση 5.

Aπάντηση
Κρυφή μνήμη Aμεσης αντιστοίχησης

Το μπλοκ της κύριας μνήμης με διεύθυνση 5 (ή 001012 στο δυαδικό), θα αντιστοιχηθεί στο μπλοκ της κρυφής μνήμης με διεύθυνση 5 MOD 8 = 5 (ή 1012).

Στο ίδιο μπλοκ όμως της κρυφής μνήμης μπορούν να αντιστοιχηθούν και τα μπλοκ της κύριας μνήμης με διεύθυνση 13 (ή 011012), 21 (ή 101012), 29 (ή 111012) δεδομένου ότι 13 MOD 8 = 5, 21 MOD 8 = 5 και 29 MOD 8 = 5.

Ένα ερώτημα που δημιουργείται είναι πόσα μπλοκ της κύριας μνήμης μπορούν να αντιστοιχηθούν στο ίδιο μπλοκ της κρυφής μνήμης.

Η απάντηση βρίσκεται στη διαφωνία του αριθμού των μπλοκ της κύρια μνήμης με τον αριθμό των μπλοκ της κρυφής μνήμης. Δηλαδή 32/8 = 4.

Πώς όμως ο υπολογιστής θα υπολογίσει από την διεύθυνση του μπλοκ της κύριας μνήμης την διεύθυνση του μπλοκ της κρυφής που θα πρέπει να γίνει η αντιστοίχηση, δεδομένου ότι η διευθύνσεις είναι στο δυαδικό σύστημα;

Παρατηρούμε ότι η δυαδική διεύθυνση 1012 του μπλοκ της κρυφής μνήμης μπορεί να προσδιοριστεί από τα τρία λιγότερα σημαντικά ψηφία των διευθύνσεων που έχουν τα μπλοκ της κύριας μνήμης ( 001012, 011012, 101012, 111012) τα οποία μπορούν να αντιστοιχηθούν σε αυτό. Δηλαδή στο συγκεκριμένο παράδειγμα τα τρία λιγότερο σημαντικά ψηφία κάθε διεύθυνσης ενός μπλοκ της κύριας μνήμης καθορίζουν τη διεύθυνση του μπλοκ της κρυφής στο οποίο μπορεί να αντιστοιχηθεί. Τα ψηφιά αυτά αποτελούν το πεδίο Δείκτη της διεύθυνσης.

Ένα επιπλέον πρόβλημα είναι ότι επειδή σε κάθε μπλοκ της κρυφής μνήμης μπορούν να αντιστοιχηθούν πολλά μπλοκ της κύριας, η κρυφή μνήμη πρέπει να έχει την ικανότητα να διαπιστώσει ποιο από τα μπλοκ της κύριας έχει αντιστοιχηθεί. Το πρόβλημα λύνεται με την ύπαρξη ενός πεδίου ετικέτας στην διεύθυνση κάθε μπλοκ της κρυφής μνήμης.

Στο συγκεκριμένο παράδειγμα τα δύο περισσότερο σημαντικά ψηφία της διεύθυνσης του μπλοκ της κύριας μνήμης μπορούν να χρησιμοποιηθούν για τον προσδιορισμό του συγκεκριμένου μπλοκ που έχει αντιστοιχηθεί.

Στην περίπτωση που το μέγεθος του μπλοκ της κρυφής μνήμης είναι μεγαλύτερο από ένα byte τότε το πεδίο του δείκτη δεν υπολογίζεται από τα λιγότερο σημαντικά ψηφία της διεύθυνσης. Περισσότερα για τον υπολογισμό του πεδίου δείκτη θα αναφερθούν στην παράγραφο για την τμηματοποίηση της διεύθυνσης.

Κρυφή μνήμη Πλήρως Συσχετιστική (fully associative)

Σε αυτό το είδος κρυφής μνήμης σε κάθε μπλοκ που περιέχει μπορούν να αντιστοιχηθούν όλα τα μπλοκ της κύριας μνήμης.

Συνεπώς το μπλοκ της κύριας μνήμης με διεύθυνση 5 μπορεί να τοποθετηθεί σε οποιοδήποτε μπλοκ της κρυφής μνήμης.

Κρυφή μνήμη Συνολο-συσχετιστική 2- δρόμων

Η συνολο-συσχετιστική κρυφή μνήμη 2 δρόμων είναι οργανωμένη σε σύνολα και το κάθε σύνολο περιέχει δύο μπλοκ. Συνεπώς στην κρυφή μνήμη του παραδείγματός μας υπάρχουν 8/2 = 4 σύνολα .

Το μπλοκ της κύριας μνήμης με διεύθυνση 5 (ή 001012) θα αντιστοιχηθεί στο σύνολο της κρυφής μνήμης με διεύθυνση 5 MOD 4 = 1 (ή 012). Μέσα στο σύνολο αυτό μπορεί να αντιστοιχηθεί σε οποιοδήποτε από τα δύο μπλοκ που διαθέτει το σύνολο.

Στο ίδιο σύνολο όμως της κρυφής μνήμης μπορούν να αντιστοιχηθούν και τα μπλοκ της κύριας μνήμης με διεύθυνση 1 (ή 000012), 9 (ή 010012), 13 (ή 011012), 17 (ή 100012), 21 (ή 101012), 25 (ή 110012) και 29 (ή 111012) δεδομένου ότι η διαίρεση των αριθμών 1, 5, 9, 13, 17, 21, 25, και 29 με το 4 μας δίνουν υπόλοιπο 1.

Παρατηρούμε ότι η δυαδική διεύθυνση 01 του συνόλου της κρυφής μνήμης μπορεί να προσδιοριστεί από τα δύο λιγότερα σημαντικά ψηφία των διευθύνσεων που έχουν τα μπλοκ της κύριας μνήμης (00001, 001012, 010012, 011012, 100012, 101012, 110012, 111012) που μπορούν να αντιστοιχηθούν σε αυτό το σύνολο. Τα δύο αυτά ψηφία αποτελούν το πεδίο του δείκτη. Τα τρία περισσότερο σημαντικά ψηφία κάθε διεύθυνσης μπορούν να χρησιμοποιηθούν για τον προσδιορισμό του συγκεκριμένου μπλοκ που έχει αντιστοιχηθεί και αποτελούν το πεδίο ετικέτας.