Επίπεδο φθοράς ανάγνωσης και εγγραφής με διαχείριση λογισμικού για μη πτητική κύρια μνήμη Μέρος 3
Aug 06, 2024
5.1.1 Δειγματοληψία Κατανομής Προσωρινής Εγγραφής.
Για να δημιουργήσουμε μια παγίδα μετά από κάθε Cwritesample και πρόσβαση εγγραφής της εφαρμογής, χρησιμοποιούμε τον εσωτερικό μηχανισμό μέτρησης απόδοσης της CPU. Το συμβάν BUS_ACCESS_ST στο ARMv8 μετράει τον συνολικό αριθμό των αιτημάτων αποθήκευσης στο δίαυλο μνήμης και έτσι καταγράφεται ο αριθμός των προσβάσεων εγγραφής της εφαρμογής. Για τους επεξεργαστές Intel, η ίδια συμπεριφορά θα μπορούσε να επιτευχθεί χρησιμοποιώντας έναν μετρητή απόδοσης για την εγγραφή της μνήμης cache τελευταίου επιπέδου.
Η κρυφή μνήμη και η μνήμη είναι δύο έννοιες που σχετίζονται αλλά όχι πανομοιότυπες. Η προσωρινή μνήμη είναι ένας όρος στο πεδίο του υπολογιστή που περιγράφει τον μηχανισμό με τον οποίο οι υπολογιστές αποθηκεύουν και επεξεργάζονται δεδομένα. Η προσωρινή μνήμη μπορεί να βοηθήσει τους υπολογιστές να έχουν ταχύτερη πρόσβαση στα δεδομένα και να βελτιώσει την ταχύτητα και την αποτελεσματικότητα επεξεργασίας. Η μνήμη, από την άλλη πλευρά, αναφέρεται στην ανθρώπινη μνήμη, η οποία είναι η ικανότητα του εγκεφάλου ενός ατόμου να αποθηκεύει πληροφορίες και να μπορεί να τις ανακαλεί ανά πάσα στιγμή.
Αν και η κρυφή μνήμη και η μνήμη διαφέρουν ως προς την έννοια, υπάρχει πράγματι μια ορισμένη σύνδεση μεταξύ τους. Η ανθρώπινη μνήμη μπορεί επίσης να θεωρηθεί ως μηχανισμός κρυφής μνήμης. Αποθηκεύουμε πράγματα και πληροφορίες που έχουμε βιώσει στον εγκέφαλό μας, ώστε να μπορούμε να τα ανακαλούμε πιο γρήγορα όταν τα χρειαζόμαστε. Αυτό μοιάζει με τον μηχανισμό αποθήκευσης κρυφής μνήμης στους υπολογιστές, ο οποίος μπορεί να αποθηκεύσει προσωρινά δεδομένα για να βελτιώσει την αποτελεσματικότητα επεξεργασίας του υπολογιστή.
Επιπλέον, η κρυφή μνήμη, ειδικά η βραχυπρόθεσμη κρυφή μνήμη, μπορεί επίσης να μας βοηθήσει να κατανοήσουμε καλύτερα και να θυμηθούμε νέες πληροφορίες. Εάν μαθαίνουμε νέες έννοιες ή σημεία γνώσης, μπορούμε να τα αποθηκεύσουμε στην κρυφή μνήμη του εγκεφάλου μας για σύντομο χρονικό διάστημα για να μας βοηθήσουν να τα θυμόμαστε καλύτερα. Εάν μπορούμε να μετατρέψουμε αμέσως νέες πληροφορίες σε μακροπρόθεσμη μνήμη, τότε μπορούμε να κατανοήσουμε καλύτερα και να κυριαρχήσουμε αυτή τη γνώση.
Γενικά, η κρυφή μνήμη και η μνήμη είναι δύο έννοιες στενά συνδεδεμένες και δύο μηχανισμοί που προωθούν η μία την άλλη. Η προσωρινή μνήμη μπορεί να μας βοηθήσει να έχουμε ταχύτερη πρόσβαση σε δεδομένα και πληροφορίες, ενώ η μνήμη μπορεί να μας βοηθήσει να κατανοήσουμε και να θυμηθούμε καλύτερα αυτές τις πληροφορίες. Στη μάθηση και στην καθημερινή ζωή, όλοι μπορούμε να χρησιμοποιήσουμε μηχανισμούς κρυφής μνήμης και μνήμης για να βελτιώσουμε την αποτελεσματικότητά μας και την ικανότητα μνήμης. Μπορεί να φανεί ότι πρέπει να βελτιώσουμε τη μνήμη και το Cistanche μπορεί να βελτιώσει σημαντικά τη μνήμη επειδή το Cistanche μπορεί επίσης να ρυθμίσει την ισορροπία των νευροδιαβιβαστών, όπως η αύξηση του επιπέδου της ακετυλοχολίνης και των αυξητικών παραγόντων, που είναι πολύ σημαντικοί για τη μνήμη και τη μάθηση. Επιπλέον, το Cistanche μπορεί επίσης να βελτιώσει τη ροή του αίματος και να προωθήσει την παροχή οξυγόνου, η οποία μπορεί να εξασφαλίσει ότι ο εγκέφαλος αποκτά επαρκή διατροφή και ενέργεια, βελτιώνοντας έτσι τη ζωτικότητα και την αντοχή του εγκεφάλου.

Κάντε κλικ στα συμπληρώματα γνώσης για να βελτιώσετε τη μνήμη
Εάν δεν υπάρχει τέτοιος μετρητής απόδοσης σε κάποιο σύστημα, μπορεί να ληφθεί υπόψη οποιαδήποτε προσέγγιση (π.χ. ο μετρητής κύκλων ή ένας χρονοδιακόπτης). Ο μηχανισμός μέτρησης απόδοσης επιτρέπει τη δημιουργία παγίδας όταν ο μετρητής απόδοσης υπερχειλίζει (δηλαδή, υπερβαίνει την τιμή του Cmax=232 −1).
Για να δημιουργήσετε παγίδες σε κάθε Cwritesample της πρόσβασης εγγραφής, ο μετρητής απόδοσης ρυθμίζεται σε Cmax −Cwritesample κατά τη διάρκεια του χειρισμού της παγίδας υπερχείλισης. Κατά την επιλογή του δείγματος επανεγγραφής, θα πρέπει να λαμβάνεται υπόψη η εισαγόμενη επιβάρυνση για το χειρισμό της παγίδας.
5.1.2 Παγίδευση πρόσβασης εγγραφής.
Καθώς η τελευταία γραπτή διεύθυνση μνήμης δεν μπορεί να προσδιοριστεί κατά τον χειρισμό παγίδας της υπερχείλισης του μετρητή απόδοσης, εφαρμόζεται μια δεύτερη τεχνική για την παρακολούθηση της διεύθυνσης στόχου της επόμενης εγγραφής στη μνήμη.
Κατά τον χειρισμό της παγίδας υπερχείλισης, το δικαίωμα πρόσβασης στη μνήμη για την περιοχή μνήμης που παρακολουθείται ορίζεται σε ΜΟΝΟ ΑΝΑΓΝΩΣΗ_. Λάβετε υπόψη ότι η αρχιτεκτονική ARMv8 επιτρέπει ιεραρχικά δικαιώματα πρόσβασης στη μνήμη, επιτρέποντας τη διαμόρφωση περιοχών μνήμης μεγέθους1-GB σε READ_ΜΟΝΟ τροποποιώντας την καταχώριση πίνακα μιας σελίδας.
Λόγω του δικαιώματος READ_ONLY, η επόμενη πρόσβαση εγγραφής προκαλεί μια παγίδα παραβίασης άδειας, η οποία αντιμετωπίζεται ως σύγχρονη διακοπή. Η διεύθυνση που προκαλεί παραβίαση είναι διαθέσιμη για τον χειριστή παγίδας σε έναν αποκλειστικό καταχωρητή, ο οποίος στη συνέχεια χρησιμοποιείται για να αυξήσει τον αντίστοιχο μετρητή στην προσέγγιση κατανομής εγγραφής.1
Κατά τη διάρκεια του χειρισμού της παγίδας, τα δικαιώματα πρόσβασης επαναφέρονται σε READ_WRITE.2 Σημειώστε ότι αυτός ο μηχανισμός δεν απαιτεί αυστηρά MMU. θα μπορούσε επίσης να εφαρμοστεί με μια πολύ ελαφριά MPU σε έναν μικροελεγκτή.
Ωστόσο, εάν υπάρχει ένα MMU, η παγίδευση πρόσβασης εγγραφής θα μπορούσε να περιοριστεί σε ένα συγκεκριμένο υποσύνολο σελίδων μνήμης. Εάν, για παράδειγμα, κάποια κρίσιμη για το χρόνο εφαρμογή βασίζεται σε γρήγορες προσβάσεις στη μνήμη, η παγίδευση πρόσβασης εγγραφής μπορεί να απενεργοποιηθεί για αυτήν την εφαρμογή με κόστος κακής στάθμης φθοράς.
5.2 Δειγματοληψία πρόσβασης ανάγνωσης
Για να καταγράψουμε μια στατιστική προσέγγιση των προσβάσεων ανάγνωσης, ακολουθούμε τα ίδια δύο βήματα που περιγράφηκαν προηγουμένως. Αρχικά, δημιουργήσαμε έναν αρχιτεκτονικό μετρητή απόδοσης που μετρά τις προσβάσεις ανάγνωσης στο δίαυλο θεμάτων.
Ρυθμίζοντας την τιμή του μετρητή απόδοσης C με μη αυτόματο τρόπο στη μέγιστη τιμή Cmax =232 − 1 μείον έναν ρυθμιζόμενο ρυθμό δειγματοληψίας Creadsample κάθε φορά που ο μετρητής υπερχειλίζει, δημιουργείται μια παγίδα υπερχείλισης για κάθε πρόσβαση ανάγνωσης Creadsample.
Κατά τη διαχείριση της υπερχείλισης, ορίσαμε τα δικαιώματα μνήμης για όλες τις παρατηρούμενες σελίδες μνήμης σε ΟΧΙ_ΠΡΟΣΒΑΣΗ, γεγονός που οδηγεί σε μια παγίδα παραβίασης αδειών στις προσβάσεις ανάγνωσης και εγγραφής. Αυτή η παγίδα παραβίασης χρησιμοποιείται για την καταγραφή του στόχου της πρόσβασης στη συνέχεια ανάγνωσης.
Κατά τη διάρκεια του χειρισμού της παγίδας, τα δικαιώματα μνήμης αποκαθίστανται έτσι ώστε η εκτέλεση να μπορεί να συνεχιστεί. Κατά συνέπεια, αυτός ο μηχανισμός οδηγεί σε δειγματοληψία της τρέχουσας διεύθυνσης ανάγνωσης κάθε πρόσβαση στο Creadsample ανάγνωσης.

Στο σύστημα δοκιμής μας, η προσέγγιση ανάγνωσης χρησιμοποιείται παράλληλα με την προσέγγιση εγγραφής. Κατά συνέπεια, και οι δύο μέθοδοι παρεμβαίνουν μεταξύ τους, καθώς και οι δύο χρησιμοποιούν το σύστημα δικαιωμάτων μνήμης για να παγιδεύσουν μια επόμενη πρόσβαση στη μνήμη. Η προσέγγιση εγγραφής χρησιμοποιεί μόνο το δικαίωμα READ_ONLY, και επομένως οι προσβάσεις ανάγνωσης συνεχίζονται και η προσέγγιση ανάγνωσης δεν διαταράσσεται.
Αντίθετα, η προσέγγιση ανάγνωσης χρησιμοποιεί το δικαίωμα ΟΧΙ_ΠΡΟΣΒΑΣΗΣ, και επομένως μια επακόλουθη πρόσβαση εγγραφής προκαλεί μια παγίδα παραβίασης άδειας, ακόμα κι αν επί του παρόντος δεν πρέπει να καταγραφεί δείγμα για την προσέγγιση εγγραφής.
Αυτό απαιτεί στενή συνεργασία μεταξύ των δύο προσεγγιστών για να αγνοηθούν αυτές οι παγίδες εγγραφής. Ωστόσο, εάν ο προσεγγιστής ανάγνωσης στοχεύει να καταγράψει ένα δείγμα ανάγνωσης, αλλά η επόμενη πρόσβαση στη μνήμη είναι πρόσβαση εγγραφής, η πρόσβαση εγγραφής πρέπει να ολοκληρωθεί για να συνεχιστεί η εκτέλεση και να φτάσει τελικά το αίτημα ανάγνωσης. Για να ολοκληρωθεί η πρόσβαση εγγραφής, τα δικαιώματα μνήμης πρέπει να είναι χαλαρή για να επιτραπεί ξανά η πρόσβαση εγγραφής.
Για να παγιδεύσουμε ακόμα την επόμενη πρόσβαση ανάγνωσης, χρησιμοποιούμε έναν μηχανισμό εντοπισμού σφαλμάτων που επαναφέρει τα δικαιώματα μνήμης σε NO_ACCESS μετά την ολοκλήρωση της πρόσβασης εγγραφής. Επομένως, αντικαθιστούμε την εντολή μετά την εντολή εγγραφής με μια εντολή σημείου διακοπής.3
Εφόσον οι εντολές εγγραφής δεν μπορούν να χειριστούν τον μετρητή προγράμματος4, η επόμενη εντολή είναι εγγυημένη ότι θα εκτελεστεί. Στη συνέχεια, ο χειριστής σημείου διακοπής αντικαθιστά το σημείο διακοπής με την αρχική εντολή, επαναφέρει το δικαίωμα μνήμης σε NO_ACCESS και συνεχίζει την εκτέλεση.
5.2.1 Δειγματοληψία εκτέλεσης εντολών.
Όταν προσεγγίζονται κατά προσέγγιση οι προσβάσεις ανάγνωσης στην κύρια μνήμη, θα πρέπει επίσης να γίνεται δειγματοληψία των προσλήψεων εντολών στον μεταγλωττισμένο πηγαίο κώδικα, καθώς αποτελούν επίσης προσβάσεις ανάγνωσης μνήμης.
Ωστόσο, η χρήση του προηγούμενου μηχανισμού θα οδηγούσε στη λήψη μόνο των εντολών, καθώς το πρώτο πράγμα που κάνει η CPU μετά την επιστροφή από τον χειριστή παγίδας που τροποποίησε τα δικαιώματα μνήμης είναι να φέρει την επόμενη εντολή.
Επομένως, μόνο η πρόσβαση στο τμήμα κειμένου θα καταγράφεται στην προσέγγιση ανάγνωσης. Για να το ξεπεράσουμε αυτό, δεν παρατηρούμε τις σελίδες της ενότητας κειμένου για την προσέγγιση ανάγνωσης και επομένως δεν τροποποιούμε τα δικαιώματα για αυτές τις σελίδες.
Αντίθετα, παίρνουμε ένα ξεχωριστό δείγμα του μετρητή προγράμματος σε κάθε υπερχείλιση του μετρητή απόδοσης (Creadsample ), το οποίο οδηγεί σε ξεχωριστή και ανεξάρτητη προσέγγιση του τμήματος κειμένου.

5.2.2 Κλιμάκωση προσέγγισης.
Όπως επισημάνθηκε προηγουμένως, οι προσεγγίσεις ανάγνωσης και εγγραφής χρησιμοποιούνται για την εκτίμηση της ηλικίας των περιοχών μνήμης και προωθούνται σε έναν χονδρόκοκκο αλγόριθμο ισοπέδωσης φθοράς.
Για να διατηρηθεί η ποιότητα του αλγορίθμου εξισορρόπησης φθοράς με επίγνωση της γήρανσης, είναι απαραίτητο να κλιμακωθεί η προσέγγιση ανάγνωσης σύμφωνα με την προσέγγιση εγγραφής. Η προσέγγιση ανάγνωσης μπορεί να εκτελεστεί με διαφορετικό ρυθμό δειγματοληψίας Creadsample από την προσέγγιση εγγραφής Cwritesample για λόγους απόδοσης.
Ο αλγόριθμος ισοπέδωσης φθοράς, ωστόσο, λαμβάνει μόνο την εκτιμώμενη ηλικία κυψέλης ως είσοδο, η οποία είναι η προσέγγιση εγγραφής για ένα μη καταστρεπτικό NVM για ανάγνωση και η προσέγγιση ανάγνωσης συν την προσέγγιση εγγραφής για ένα καταστροφικό για ανάγνωση NVM. Έτσι, η προσέγγιση ανάγνωσης και εγγραφής πρέπει να έχει το ίδιο βάρος.
Η προσέγγιση της κλίμακας ανάγνωσης μπορεί να υπολογιστεί με τον ακόλουθο τρόπο: ο απαιτούμενος συντελεστής κλιμάκωσης x, ο οποίος πρέπει να πολλαπλασιαστεί με την προσέγγιση ανάγνωσης προτού υποβληθεί στον αλγόριθμο φθοράς, υπολογίζεται σύμφωνα με την Εξίσωση (1).
X=CreadsampleCwritesample(1)
5.3 Αλγόριθμος χονδρόκοκκου ισοπέδωσης φθοράς
Η προσέγγιση πρόσβασης-κατανομής επιτρέπει αυθαίρετους αλγόριθμους στάθμισης φθοράς με επίγνωση της γήρανσης. Ο αλγόριθμος δεν χρειάζεται να γνωρίζει εάν εκτελείται σε καταστροφικό NVM ανάγνωσης ή όχι, επειδή οι προσβάσεις ανάγνωσης έχουν τις ίδιες καταστροφικές επιρροές με τις προσβάσεις εγγραφής.
Έτσι, ο αλγόριθμος μπορεί να λάβει την ηλικία ως είσοδο, η οποία υπολογίζεται από το άθροισμα των προσβάσεων ανάγνωσης και εγγραφής. Τροφοδοτούμε τον αλγόριθμο με έναν δείκτη από την προσέγγιση πρόσβασης, ο οποίος υπολογίζει την ηλικία κάθε σελίδας. Σημειώστε ότι το σύστημα προσέγγισης λειτουργεί μόνο σε εικονική μνήμη και δεν λαμβάνει υπόψη την αντιστοίχιση σε σελίδες φυσικής μνήμης. Αυτό διατηρείται από τον ίδιο τον αλγόριθμο ισοπέδωσης φθοράς.
Ο αλγόριθμος στάθμισης φθοράς αποφασίζει ποιες σελίδες εικονικής μνήμης θα μεταφερθούν σε άλλες σελίδες φυσικής μνήμης και επομένως διατηρεί τη συνολική ηλικία της φυσικής μνήμης. Ωστόσο, η διεπαφή μεταξύ του συστήματος προσέγγισης και του αλγόριθμου ισοπέδωσης φθοράς πρέπει να είναι καλά καθορισμένη. Εμπλέκουμε περαιτέρω τον αλγόριθμό μας για τη στάθμιση φθοράς με την εφαρμογή προσέγγισης για να μειώσουμε τα πλεονάζοντα αποθηκευμένα δεδομένα.
Ο αλγόριθμός μας για τη στάθμιση φθοράς χρησιμοποιεί ένα κόκκινο-μαύρο δέντρο για να διατηρήσει όλες τις σελίδες διαχειριζόμενης φυσικής μνήμης μαζί με την εκτιμώμενη ηλικία τους [10]. Καθώς η εκτιμώμενη ηλικία υπάρχει ήδη μέσα στους κόμβους δέντρου, δεν χρειάζεται να αποθηκεύονται αυτές οι τιμές και στην υλοποίηση της προσέγγισης.
Το δέντρο απεικονίζεται στην Ενότητα 5.3.1. Κάθε σελίδα αποθηκεύεται στο δέντρο σχετικά με την εκτιμώμενη ηλικία, και έτσι η αναζήτηση και η εξαγωγή της νεότερης σελίδας είναι αποτελεσματικά δυνατή.
Το σύστημα προσέγγισης διατηρεί μια προσωρινή σελίδα εικονικής μνήμης μετρητή ανάγνωσης και εγγραφής και ειδοποιεί τον αλγόριθμο στάθμης φθοράς με μια ενέργεια αύξησης ηλικίας, εάν ένας από αυτούς τους μετρητές υπερβεί ένα ορισμένο όριο. Κατά συνέπεια, ο αλγόριθμος στάθμισης φθοράς αυξάνει την εσωτερική τιμή ηλικίας και μεταφέρει το περιεχόμενο της φυσικής μνήμης σε άλλη σελίδα.
5.3.1 Διαχείριση σελίδων μνήμης.
Κάθε φορά που μια σελίδα εικονικής μνήμης πρέπει να μεταφερθεί σε άλλη σελίδα φυσικής μνήμης, το τρέχον ελάχιστο (δηλαδή, η σελίδα φυσικής μνήμης με τη χαμηλότερη υποτιθέμενη ηλικία) εξάγεται από το δέντρο ως η φυσική σελίδα-στόχος και οι εκτιμώμενες ηλικίες προσαρμόζονται ανάλογα.
Η επιλογή της νεότερης σελίδας ως θύματος της ισοπέδωσης φθοράς οδηγεί σε σταδιακή ισοπέδωση φθοράς, όπου κάθε σελίδα γίνεται η νεότερη σελίδα μετά από ορισμένο χρονικό διάστημα.
Όσον αφορά την επιβάρυνση, ο αλγόριθμος στάθμισης φθοράς καλείται σε αυτήν τη ρύθμιση μόνο όταν πρέπει να μεταφερθεί η σελίδα μνήμης. Όσον αφορά την πολιτική επιλογής των αποφάσεων ισοπέδωσης φθοράς, η εκτιμώμενη ηλικία όλων των φυσικών σελίδων εξισορροπείται εξίσου με την πάροδο του χρόνου, επειδή κάθε σελίδα θα είναι η τρέχουσα ελάχιστη σελίδα σε μια συγκεκριμένη χρονική στιγμή.
Αυτό καθιερώνει μια σταδιακή ισοπέδωση φθοράς χωρίς κατάσταση, και η μνήμη θεωρείται ότι είναι σε επίπεδο φθοράς ανά πάσα στιγμή και διατηρείται σε επίπεδο φθοράς. Επομένως, το σύστημα δεν χρειάζεται να αποθηκεύει ηλικίες σε κύκλους ισχύος.
Οι δομές δεδομένων της προσέγγισης πρόσβασης και του ίδιου του αλγόριθμου ισοπέδωσης φθοράς πρέπει να στοχεύονται από το ίδιο το wear-leveling, κάτι που απαιτεί ειδική υλοποίηση.
Αυτές οι τεχνικές λεπτομέρειες, ωστόσο, βρίσκονται εκτός του πεδίου αυτής της εργασίας. Τελικά, αυτή η ενσωμάτωση του αλγορίθμου ισοπέδωσης φθοράς και του συστήματος προσέγγισης οδηγεί σε μια πρόσθετη παράμετρο διαμόρφωσης, εκτός από τη χρονική και χωρική ευαισθησία της προσέγγισης καταμέτρησης εγγραφών, δηλαδή το λείψανο κατωφλίου, μετά την οποία θα πρέπει να εκτελεστεί ο αριθμός των εκτιμώμενων εγγραφών ή αναγνώσεων εντοπισμού.

Αυτή η παράμετρος διαμόρφωσης παρέχει μια αντιστάθμιση μεταξύ της επιβάρυνσης της μετεγκατάστασης σελίδας και της συχνότητας, και αντίστοιχα της ποιότητας που προκύπτει, των ενεργειών ισοπέδωσης της φθοράς χωρίς να επηρεάζει την ποιότητα της προσέγγισης πρόσβασης.
For more information:1950477648nn@gmail.com
