Κεφάλαιο 5 | Ενότητα 2 | Ερωτήσεις επισκόπησης | Προηγούμενο | Επόμενο| Λεξικό όρων

Λειτουργίες της κρυφής μνήμης

Όλες οι λειτουργίες της κρυφής μνήμης εκτελούνται από το υλικό του υπολογιστή. Η κρυφή μνήμη ενεργοποιείται όταν ο επεξεργαστής εκτελεί μια εντολή που απαιτεί πρόσβαση στην κύρια μνήμη. Οι λειτουργίες που εκτελούνται αναλυτικά είναι :

Αίτηση του επεξεργαστή για ανάγνωση από μια θέση κύριας μνήμης

Όταν ο επεξεργαστής εκτελέσει μια εντολή που απαιτεί ανάγνωση από μια διεύθυνση της κύριας μνήμης τότε η αίτηση αυτή κατευθύνεται στην κρυφή μνήμη με σκοπό να διαπιστωθεί αν το περιεχόμενο της ζητούμενης διεύθυνσης έχει ήδη μεταφερθεί και υπάρχει σε κάποιο μπλοκ της κρυφής μνήμης. Τότε αρχίζει η λειτουργία εντοπισμού η οποία ελέγχει αν σε κάποιο μπλοκ της κρυφής μνήμης έχει μεταφερθεί και περιέχεται η ζητούμενη διεύθυνση. Υπάρχουν δύο περιπτώσεις:

Αίτηση του επεξεργαστή για εγγραφή σε μια θέση κύριας μνήμης

Όταν ο επεξεργαστής εκτελεί μια εντολή που απαιτεί εγγραφή σε μια θέση της κύριας μνήμης τότε ακολουθείται μια διαδικασία αντίστοιχη με την διαδικασία της ανάγνωσης. Δηλαδή η αίτηση κατευθύνεται στην κρυφή μνήμη και αρχίζει η λειτουργία εντοπισμού η οποία ελέγχει αν το περιεχόμενο της ζητούμενης διεύθυνσης έχει ήδη μεταφερθεί και υπάρχει σε κάποιο μπλοκ της κρυφής μνήμης. Αν υπάρξει επιτυχία της κρυφής μνήμης γίνεται απευθείας η εγγραφή στη θέση αυτή (λειτουργία εγγραφής). Αν υπάρξει αποτυχία της κρυφής μνήμης τότε αρχίζει η λειτουργία τοποθέτησης η οποία θα μεταφέρει το μπλοκ της κύριας μνήμης που περιέχει τα δεδομένα της ζητούμενης διεύθυνσης καθώς και των γειτονικών διευθύνσεων, σε αντίστοιχο μπλοκ της κρυφής μνήμης, που προσδιορίζεται από κάποιο αλγόριθμο αντιστοίχησης. Είναι πιθανό το μπλοκ αυτό να πρέπει να αντικαταστήσει κάποιο άλλο μπλοκ που βρίσκεται ήδη στην κρυφή μνήμη (λειτουργία αντικατάστασης). Στη συνέχεια πραγματοποιείται η λειτουργία εγγραφής.

Σύμφωνα με τα ανωτέρω οι λειτουργίες της κρυφής μνήμης είναι:

  1. Η λειτουργία του εντοπισμού.
  2. Η λειτουργία της τοποθέτησης
  3. Η λειτουργία της αντικατάστασης
  4. Η λειτουργία της ανάγνωσης
  5. Η λειτουργία της εγγραφής

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3

α) Να συγκρίνετε τις λειτουργίες τις κρυφής μνήμης και τις λειτουργίες της κύριας μνήμης. Ποιες διαφορές παρατηρείτε;
β) Να περιγράψετε τις διαφορετικές λειτουργίες που πιθανόν εκτελούνται από την κύρια ή την κρυφή μνήμη. Να συγκρίνετε την απάντησή σας με την υποενότητα «Λειτουργίες της κρυφής μνήμης».
γ) Μπορείτε να εξηγήσετε το λόγο για τον οποίο υπάρχουν αυτές οι διαφορές;

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 3


Η αντιστοίχηση ενός μπλοκ της κύριας μνήμης στην κρυφή μνήμη

Tο μέγεθος της κρυφής μνήμης είναι εκατοντάδες φορές μικρότερο από αυτό της κύριας. Οι γνωστοί επεξεργαστές των προσωπικών υπολογιστών Pentium, για παράδειγμα διαθέτουν συνήθως κρυφή μνήμη μεγέθους 512 ΚB ενώ το μέγιστο μέγεθος της κύριας μνήμης που μπορούν να δεχθούν είναι πάνω από 2 GB. Η αύξηση του μεγέθους της κρυφής μνήμης έχει άμεση επίπτωση στο κόστος υλοποίησης της, για παράδειγμα οι επεξεργαστές Pentium διατίθενται σε ειδικές εκδόσεις με κρυφή μνήμη 2 ΜB αλλά σε υψηλότερη τιμή.

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

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

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

  • Κρυφή μνήμη Άμεσης αντιστοίχησης (direct mapped)

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

Διεύθυνση μπλοκ κρυφής μνήμης = (διεύθυνση μπλοκ κύριας μνήμης ) MOD (αριθμός μπλοκ κρυφής μνήμης)

Υπενθυμίζεται ότι η συνάρτηση ΜΟD υπολογίζει το ακέραιο υπόλοιπο της διαίρεσης δύο αριθμών.

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

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

  • Κρυφή μνήμη Συνολο-συσχετιστική (set-associative)

Σε αυτό τον τύπο κρυφής μνήμης τα μπλοκ της κρυφής μνήμης είναι οργανωμένα σε σύνολα που το κάθε ένα από αυτά περιέχει δύο ή περισσότερα μπλοκ Ένα μπλοκ της κύριας μνήμης αντιστοιχίζεται σε ένα συγκεκριμένο σύνολο της κρυφής μνήμης αλλά στη συνέχεια μπορεί να τοποθετηθεί σε οποιοδήποτε από τα μπλοκ που περιέχει το σύνολο αυτό. Η διεύθυνση του συγκεκριμένου συνόλου της κρυφής μνήμης υπολογίζεται (όπως και στην άμεση αντιστοίχηση) από την διεύθυνση του μπλοκ της κύριας μνήμης σύμφωνα με τον παρακάτω τύπο :

Διεύθυνση συνόλου κρυφής μνήμης = (διεύθυνση μπλοκ κύριας μνήμης) MOD (αριθμός συνόλων κρυφής μνήμης)

Αν υπάρχουν m μπλοκ μέσα σε κάθε σύνολο τότε η κρυφή μνήμη ονομάζεται m-δρόμων συνολο-συσχετιστκή, δηλαδή ο αριθμός των δρόμων δηλώνει τον αριθμό των μπλόκ που περιέχει κάθε σύνολο της κρυφής μνήμης.

Η κρυφή μνήμη άμεσης αντιστοίχησης έχει χαμηλό κόστος υλοποίησης επειδή τα κυκλώματα εντοπισμού που χρησιμοποιεί ελέγχουν την διεύθυνση ενός μόνο μπλοκ της κρυφής μνήμης, αλλά η απόδοσή της είναι χαμηλή επειδή είναι πιθανό τα μπλοκ της κύριας μνήμης που μεταφέρονται στην κρυφή να αντιστοιχηθούν στο ίδιο μπλοκ της κρυφής με αποτέλεσμα να υπάρχουν πολλές αντικαταστάσεις μπλοκ (καθυστερήσεις).
Η πλήρως συσχετιστική μνήμη έχει το υψηλότερο κόστος υλοποίησης επειδή διαθέτει κυκλώματα εντοπισμού τα οποία ελέγχουν ταυτόχρονα την διεύθυνση όλων των μπλοκ της κρυφής μνήμης. Αυτός ο τύπος κρυφής μνήμης έχει και την καλύτερη απόδοση.
Η συνολο-συσχετιστική μνήμη αποτελεί μια ενδιάμεση λύση μεταξύ του χαμηλού κόστους υλοποίησης της μνήμης άμεσης αντιστοίχησης και της απόδοση που παρουσιάζει η πλήρως συσχετιστική μνήμης. Αποτελεί τον πιο συνηθισμένο τύπο κρυφής μνήμης και η υλοποίησή της γίνεται με 2 ή 4 μπλοκ ανα σύνολο (2 και 4 δρόμων συνολο-συσχετιστική)

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4

α) Να απαριθμήστε τους διαφορετικούς τρόπους αντιστοίχησης της ενός μπλοκ της κύριας μνήμης στην κρυφή μνήμη και να περιγράψετε συνοπτικά κάθε έναν από αυτούς. Στην περίπτωση που δυσκολεύεστε να απαντήσετε στην ερώτηση αυτή, κρίνεται σκόπιμο να επαναλάβετε την ανάγνωση της παραγράφου που μόλις διαβάσατε και έχει τίτλο: «Η αντιστοίχηση ενός μπλοκ της κύριας μνήμης στην κρυφή μνήμη».
β) Να συσχετίσετε τους τρόπους αντιστοίχησης μεταξύ τους, όπου θεωρείτε πως είναι εφικτό.

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 4


ΔΡΑΣΤΗΡΙΟΤΗΤΑ 5

Έστω μία κρυφή μνήμη με 8 μπλοκ και μια κύρια μνήμη που έχει 32 μπλοκ. Η συνολο-συσχετιστική οργάνωση έχει 4 σύνολα με 2 μπλοκ ανά σύνολο. Να προσδιορίσετε τη διεύθυνση του μπλοκ της κρυφής μνήμης που προσδιορίζει το μπλοκ 12 της κύριας μνήμης, χρησιμοποιώντας και τους τρεις τρόπους αντιστοίχησης. Θεωρήστε ότι δεν υπάρχει τίποτα στη κρυφή μνήμη (είναι άδεια). Στη συνέχεια να απεικονίσετε τις πιθανές τοποθετήσεις των μπλοκ ανάλογα με το είδος της απεικόνισης για την κρυφή μνήμη και να συγκρίνετε την απάντησή σας με το σχήμα 4.2.3.

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 5



Σχήμα 4.2.3 - Υποθέτουμε αρχικά ότι η κρυφή μνήμη είναι άδεια. Οι τρεις τύποι οργάνωσης της κρυφής μνήμης φαίνονται από αριστερά προς τα δεξιά. Η συνολο-συσχετιστική συνδυάζει κάποια από τα χαρακτηριστικά της άμεσης αντιστοίχησης και της πλήρως συσχετιστικής. Η συνολο-συσχετιστική οργάνωση έχει 4 σύνολα με δύο μπλοκ ανά σύνολο (2-δρόμων συνολο-συσχετιστική).

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

Παράδειγμα 1oΠαράδειγμα

Παράδειγμα 2oΠαράδειγμα

Η διεύθυνση των μπλοκ στην κρυφή μνήμη

Κάθε μπλοκ της κρυφής μνήμης διαθέτει μια διεύθυνση. Ένα τμήμα της διεύθυνσης αυτής χρησιμοποιείται για την διευθυνσιοδότηση (αρίθμηση) των μπλοκ που διαθέτει η κρυφή μνήμη. Το τμήμα αυτό της διεύθυνσης ενός μπλοκ ονομάζεται πεδίο δείκτη. Στην περίπτωση που τα μπλοκ είναι οργανωμένα σε σύνολα (συνολο-συσχετιστική κρυφή μνήμη) το πεδίο δείκτη παρέχει την αρίθμηση των συνόλων. Το μέγεθός του πεδίου δείκτη εξαρτάται από το πλήθος των μπλοκ ή των συνόλων που διαθέτει η κρυφή μνήμη.

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

Το πεδίο ετικέτας χρησιμοποιείται κατά τη λειτουργία του εντοπισμού (συγκρίνεται) και ενημερώνεται κατά τη λειτουργία της τοποθέτηση με την ετικέτα του νέου μπλοκ που τοποθετείται στη θέση αυτή.

Στην κρυφή μνήμη όμως μπορούν να υπάρχουν μπλοκ από προηγούμενα προγράμματα που έχει τελειώσει η εκτέλεσή τους και να έχουν την ίδια ετικέτα με αυτή που αναζητείται. Συνεπώς η κρυφή μνήμη πρέπει να έχει την ικανότητα να διαπιστώσει αν τα μπλοκ που περιέχονται ήδη σε αυτή ανήκουν στο πρόγραμμα που εκτελείται ή σε παλαιότερα προγράμματα. Το πρόβλημα αυτό λύνεται με την ύπαρξη ενός ψηφίου εγκυρότητας (valid bit).

Το ψηφίο εγκυρότητας (Valid bit) ελέγχεται κατά τη λειτουργία του εντοπισμού και όταν έχει τεθεί (έχει τιμή 1) τότε το μπλοκ αυτό ανήκει στo τρέχον πρόγραμμα διαφορετικά (όταν έχει τιμή 0) το μπλοκ ανήκει σε παλαιότερο πρόγραμμα. Το ψηφίο αυτό τίθεται κατά τη λειτουργία της τοποθέτησης. Κατά την εκκίνηση ενός νέου προγράμματος το πεδίο εγκυρότητας όλων των μπλοκ της κρυφής μνήμης μηδενίζεται.

Συνεπώς κάθε μπλοκ της κρυφής μνήμης έχει την παρακάτω γενική δομή

Τα τρία πρώτα πεδία αποτελούν το πεδίο της διεύθυνσης του μπλοκ

Παράδειγμα 3oΠαράδειγμα

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 6

Έστω κύρια μνήμη μεγέθους 64 KB και είναι διευθυνσιοδοτημένη κατά byte. Η κρυφή μνήμη είναι μεγέθους 1ΚB και το κάθε μπλοκ έχει μέγεθος 1byte. Να προσδιορίσετε τον αριθμό των διευθύνσεων της κύριας μνήμης που αντιστοιχούν στο ίδιο μπλοκ/σύνολο της κρυφής μνήμης, ανάλογα με την οργάνωση της κρυφής μνήμης (να εξετάσετε τις περιπτώσεις i, ii, iii και iv), όπου:

  1. κρυφή μνήμη άμεσης αντιστοίχησης,
  2. σύνολο-συσχετιστική κρυφή μνήμη 2 δρόμων,
  3. σύνολο-συσχετιστική κρυφή μνήμη 4 δρόμων και
  4. πλήρως συσχετιστική κρυφή μνήμη.

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 6