Υλικό υπολογιστών

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Επεξεργαστές (CPU)

Πώς χειρίζεται η Cache Miss με υλικό;

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

1. Μις ανίχνευση: Ο ελεγκτής cache ανιχνεύει ότι τα δεδομένα που ζητούνται δεν υπάρχουν στην προσωρινή μνήμη. Αυτό γίνεται συνήθως μέσω σύγκρισης της ζητούμενης διεύθυνσης με τις διευθύνσεις που αποθηκεύονται στις δομές δείκτη και ετικέτας της προσωρινής μνήμης.

2. Προώθηση αίτησης: Ο ελεγκτής cache στέλνει ένα αίτημα στο επόμενο επίπεδο της ιεραρχίας μνήμης (κύρια μνήμη). Αυτό το αίτημα καθορίζει τη διεύθυνση μνήμης των απαιτούμενων δεδομένων.

3. Πρόσβαση μνήμης: Η κύρια μνήμη (ή άλλη αποθήκευση) λαμβάνει το αίτημα και ανακτά το ζητούμενο μπλοκ δεδομένων. Αυτό είναι το πιο αργό μέρος της διαδικασίας, καθώς η πρόσβαση στην κύρια μνήμη είναι σημαντικά πιο αργή από την πρόσβαση στην κρυφή μνήμη. Το μέγεθος του μπλοκ δεδομένων που ανακτάται καθορίζεται από το μέγεθος της γραμμής της προσωρινής μνήμης (ή το μέγεθος του μπλοκ). Αυτή η ανάκτηση περιλαμβάνει τη μετάφραση διευθύνσεων (μετατρέποντας μια εικονική διεύθυνση σε μια φυσική διεύθυνση) εάν χρησιμοποιείται εικονική μνήμη.

4. Μεταφορά δεδομένων: Μόλις το μπλοκ δεδομένων ανακτηθεί από την κύρια μνήμη, μεταφέρεται πίσω στην προσωρινή μνήμη. Αυτή η μεταφορά συμβαίνει συνήθως σε ένα ειδικό λεωφορείο (π.χ. το δίαυλο συστήματος) βελτιστοποιημένο για κίνηση δεδομένων υψηλής ταχύτητας.

5. Τοποθέτηση cache: Το μπλοκ ανακτημένου δεδομένων τοποθετείται στην προσωρινή μνήμη. Η πολιτική αντικατάστασης της προσωρινής μνήμης (π.χ. LRU-λιγότερο πρόσφατα χρησιμοποιείται, FIFO-First-in, First-Out) καθορίζει ποιο υπάρχον μπλοκ στην προσωρινή μνήμη αντικαθίσταται εάν η προσωρινή μνήμη είναι γεμάτη.

6. Πρόσβαση CPU: Αφού τα δεδομένα φορτωθούν με επιτυχία στην προσωρινή μνήμη, η CPU μπορεί να έχει πρόσβαση. Η CPU θα περιμένει κατά τη διάρκεια των βημάτων 3 και 4, γεγονός που αναγκάζει την CPU να σταματήσει και να μειώσει δραματικά την απόδοση.

Διαφορετικοί τύποι αδρανών και χειρισμού:

Ο χειρισμός των μνήμης cache μπορεί να βελτιωθεί περαιτέρω ανάλογα με τον τύπο * του Miss:

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

* Χωρητικότητα Miss: Αυτό συμβαίνει όταν η cache είναι πολύ μικρή για να κρατήσει όλα τα δεδομένα που χρειάζεται η CPU. Οι πιο εξελιγμένες στρατηγικές διαχείρισης της προσωρινής προσωρινής μνήμης (π.χ. μεγαλύτερες κρυφές μνήμες, βελτιωμένες πολιτικές αντικατάστασης) μπορούν να μετριάσουν τις παραλείψεις της χωρητικότητας.

* Conflict Miss: Αυτό συμβαίνει όταν πολλαπλά μπλοκ δεδομένων χαρτογραφούν το ίδιο σύνολο cache (λόγω του τρόπου με τον οποίο οι διευθύνσεις χαρτογραφούνται στην προσωρινή μνήμη), με αποτέλεσμα επαναλαμβανόμενες εξώσεις. Χρησιμοποιώντας τεχνικές όπως το Set-Associative ή πλήρως συσχετιστικές κρυφές μνήμες μπορεί να μειώσει τις απώλειες των συγκρούσεων.

* αλληλεπίδραση χωρητικότητας/σύγκρουσης: Αυτά τα δύο μπορούν να επικαλύπτονται, γεγονός που τους καθιστά δύσκολους να αναλυθούν.

Υποστήριξη υλικού για το Miss Handling:

Το μοντέρνο υλικό χρησιμοποιεί αρκετές τεχνικές για τη βελτιστοποίηση του χειρισμού της μνήμης cache:

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

* Caches write-back: Αντί να γράφετε αμέσως τα δεδομένα πίσω στην κύρια μνήμη σε μια λειτουργία εγγραφής, τα τροποποιημένα δεδομένα των αποθηκευτικών αποθηκών Write-Back στην προσωρινή μνήμη και γράψτε την πίσω στην κύρια μνήμη μόνο όταν εκδιώκεται η γραμμή προσωρινής μνήμης. Αυτό μειώνει την κυκλοφορία μνήμης.

* Caches Multi-Level: Πολλά συστήματα χρησιμοποιούν πολλαπλά επίπεδα κρυφής μνήμες (L1, L2, L3, κλπ.), Με ταχύτερες αλλά μικρότερες κρυφές μνήμες πιο κοντά στην CPU και πιο αργές, αλλά μεγαλύτερες κρυφές κρυφές αποθήκες πιο μακριά. Αυτή η ιεραρχική δομή ελαχιστοποιεί την επίδραση της μνήμης κρυφής μνήμης χρησιμοποιώντας ταχύτερες κρυφές αποθήκες για δεδομένα που έχουν προσπελάσιμη συχνά.

* TLBs που διαχειρίζονται υλικό (μεταφραστικά buffers lookaside): Οι καταχωρήσεις σελίδας προσωρινής μνήμης TLBs για την επιτάχυνση της μετάφρασης εικονικής προς φυσικής διεύθυνσης, μειώνοντας το γενικό κόστος που σχετίζεται με τις προσβάσεις μνήμης.

Συνοπτικά, το Handing Cache Misses είναι μια πολύπλοκη διαδικασία που περιλαμβάνει συντονισμό υλικού μεταξύ του CPU, του ελεγκτή cache και της κύριας μνήμης. Η αποτελεσματική διαχείριση των μνήμης κρυφής μνήμης είναι ζωτικής σημασίας για τη συνολική απόδοση του συστήματος. Μεγάλο μέρος της βελτίωσης της απόδοσης της CPU κατά τη διάρκεια των ετών οφείλεται στις εξελίξεις στην τεχνολογία της προσωρινής μνήμης και στις στρατηγικές χειρισμού της κυρίας.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα