Υπάρχει διαφορά μεταξύ TLB και Cache;


Απάντηση 1:

Πρώτο πράγμα. CPU Cache είναι μια γρήγορη μνήμη που χρησιμοποιείται για τη βελτίωση της καθυστέρησης της ανάκτησης πληροφοριών από την κύρια μνήμη (RAM) σε καταχωρητές της CPU. Έτσι η προσωρινή μνήμη CPU βρίσκεται ανάμεσα στην Κύρια μνήμη και την CPU. Και αυτή η προσωρινή μνήμη αποθηκεύει προσωρινά τις πληροφορίες έτσι ώστε η επόμενη πρόσβαση στις ίδιες πληροφορίες να είναι ταχύτερη. Μια προσωρινή μνήμη CPU που χρησιμοποιείται για την αποθήκευση εκτελέσιμων εντολών, ονομάζεται Instruction Cache (I-Cache). Μια προσωρινή μνήμη CPU που χρησιμοποιείται για την αποθήκευση δεδομένων, ονομάζεται Data Cache (D-Cache). Επομένως, η I-Cache και η D-Cache επιταχύνουν την ανάκτηση του χρόνου για οδηγίες και δεδομένα αντίστοιχα. Ένας σύγχρονος επεξεργαστής περιέχει τόσο I-Cache όσο και D-Cache. Για πληρότητα, ας συζητήσουμε επίσης για την ιεραρχία D-cache. Η D-Cache είναι συνήθως οργανωμένη σε μια ιεραρχία, δηλ. Η προσωρινή μνήμη δεδομένων επιπέδου 1, η προσωρινή μνήμη δεδομένων επιπέδου 2 κλπ. Θα πρέπει να σημειωθεί ότι η L1 D-Cache είναι ταχύτερη / μικρότερη / δαπανηρή σε σύγκριση με την L2 D-Cache. Αλλά η βασική ιδέα της "CPU cache" είναι να επιταχύνει την παραλαβή των δεδομένων από την Κύρια μνήμη στην CPU.

Το Buffer Lookaside Translation (TLB) απαιτείται μόνο αν η Εικονική μνήμη χρησιμοποιείται από έναν επεξεργαστή. Με λίγα λόγια, το TLB επιταχύνει τη μετάφραση της εικονικής διεύθυνσης σε φυσική διεύθυνση αποθηκεύοντας τον πίνακα σελίδων σε μια ταχύτερη μνήμη. Στην πραγματικότητα, το TLB βρίσκεται επίσης μεταξύ της CPU και της κύριας μνήμης. Ακριβώς μιλώντας, το TLB χρησιμοποιείται από το MMU όταν η φυσική διεύθυνση πρέπει να μεταφραστεί σε εικονική διεύθυνση. Διατηρώντας αυτή τη χαρτογράφηση των εικονικών-φυσικών διευθύνσεων σε μια γρήγορη μνήμη, η πρόσβαση στον πίνακα σελίδων βελτιώνεται. Πρέπει να σημειωθεί ότι ο πίνακας σελίδων (ο οποίος είναι ο ίδιος αποθηκευμένος στη μνήμη RAM) παρακολουθεί το πού αποθηκεύονται εικονικές σελίδες στη φυσική μνήμη. Με αυτή την έννοια, το TLB μπορεί επίσης να θεωρηθεί ως προσωρινή μνήμη του πίνακα σελίδων.

Όμως, το πεδίο λειτουργίας του TLB και της προσωρινής μνήμης CPU είναι διαφορετικό. Το TLB είναι σχετικά με την «επιτάχυνση της μετάφρασης διευθύνσεων για την εικονική μνήμη», ώστε να μην είναι απαραίτητη η πρόσβαση σε πίνακα σελίδων για κάθε διεύθυνση. Η προσωρινή μνήμη CPU αφορά την «επιτάχυνση της λανθάνουσας πρόσβασης στην κύρια μνήμη», έτσι ώστε η RAM να μην έχει πρόσβαση πάντα από τη CPU. Η λειτουργία TLB έρχεται τη στιγμή της μετάφρασης διευθύνσεων από το MMU ενώ η λειτουργία cache της CPU έρχεται τη στιγμή της πρόσβασης μνήμης από την CPU. Στην πραγματικότητα, κάθε σύγχρονος επεξεργαστής αναπτύσσει όλες τις I-Cache, L1 & L2 D-Cache και TLB.


Απάντηση 2:

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