Κρυφή Μνήμη – (Cache Memory)

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Πήγαινε κάτω

Κρυφή Μνήμη – (Cache Memory)

Δημοσίευση  Admin Την / Το Παρ 7 Φεβ - 11:27

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


for i := 0 to 10 do
A [i] := 0;
Αν κοιτάξεις το εκτελεστικό μέρος ενός τυπικού προγράμματος , θα ανακαλύψεις ότι το πρόγραμμα τυπικά εκτελεί λιγότερες από τις μισές δηλώσεις. Γενικά, ένα τυπικό πρόγραμμα ίσως να χρησιμοποιεί μόνο 10-20% από την μνήμη που του έχει κατανεμηθεί. Σε οποιοδήποτε δοσμένο χρόνο, ένα πρόγραμμα του 1 ΜΒ προσπελαύνει 4 ως 8 ΚΒ δεδομένων και κώδικα. Έτσι αν έχεις πληρώσει ένα τεράστιο χρηματικό ποσό για να έχεις μηδενική κατάσταση αναμονής RAM , δεν θα ήταν και πολύ καλή ιδέα. Δεν θα ήταν πολύ καλύτερο να αγόραζες μικρή ποσότητα γρήγορης RAM και δυναμικά να αναπροσδιόριζες τις διευθύνσεις καθώς το πρόγραμμα εκτελείται;

Αυτό κάνει η cache memory. Μπαίνει ανάμεσα στην CPU και την κύρια μνήμη. Είναι μια μικρή ποσότητα γρήγορης (μηδενικών καταστάσεων αναμονής) μνήμης. Τα bytes που εμφανίζονται μέσα σε μια cache δεν έχουν καθορισμένες διευθύνσεις . Μπορεί να αναπροσδιορίσει την διεύθυνση ενός αντικειμένου δεδομένων. Αυτό επιτρέπει στο σύστημα να κρατάει πρόσφατες προσπελάσιμες τιμές μέσα στην cache.

Ένα cache hit συμβαίνει όταν η CPU προσπελαύνει την μνήμη και βρίσκει δεδομένα στην cache. Ένα cache miss πραγματοποιείται όταν η CPU προσπελαύνει την μνήμη και τα δεδομένα δεν υπάρχουν στην cache. Τότε η CPU θα πρέπει να διαβάσει τα δεδομένα από την κύρια μνήμη (main memory) , προκαλώντας μείωση της απόδοσης. Για να εκμεταλλευτεί επιτυχώς την τοπικότητα της αναφοράς η CPU αντιγράφει δεδομένα στην cache κάθε φορά που προσπελαύνει μια διεύθυνση η οποία δεν είναι παρούσα στην cache . Όπως γίνεται συνήθως , το σύστημα θα προσπελάσει την ίδια θέση σύντομα και έτσι θα εξασφαλίσει καταστάσεις αναμονής έχοντας δεδομένα στην cache.

Όπως περιγράφτηκε , η cache memory χειρίζεται την χρονική πλευρά της προσπέλασης μνήμης , αλλά όχι και την τοπική πλεύρα.

Admin
Admin

Αριθμός μηνυμάτων : 823
Ημερομηνία εγγραφής : 08/11/2009

Επισκόπηση του προφίλ των χρηστών http://cooking.bestforumlive.com

Επιστροφή στην κορυφή Πήγαινε κάτω

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Επιστροφή στην κορυφή


 
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης