GR20180200044U - Μεταφραση διευθυνσεων μνημης - Google Patents

Μεταφραση διευθυνσεων μνημης Download PDF

Info

Publication number
GR20180200044U
GR20180200044U GR20180200044U GR20180200044U GR20180200044U GR 20180200044 U GR20180200044 U GR 20180200044U GR 20180200044 U GR20180200044 U GR 20180200044U GR 20180200044 U GR20180200044 U GR 20180200044U GR 20180200044 U GR20180200044 U GR 20180200044U
Authority
GR
Greece
Prior art keywords
translation
translation data
memory address
address
data
Prior art date
Application number
GR20180200044U
Other languages
English (en)
Inventor
Andreas Lars Sandberg
Νικος Νικολερης
Prakash S.Ramrakhyani
Original Assignee
Arm Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arm Limited filed Critical Arm Limited
Priority to GR20180200044U priority Critical patent/GR20180200044U/el
Publication of GR20180200044U publication Critical patent/GR20180200044U/el

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Abstract

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

Description

ΠΕΡΙΓΡΑΦΗ
ΜΕΤΑΦΡΑΣΗ ΔΙΕΥΘΥΝΣΕΩΝ ΜΝΗΜΗΣ
ΥΠΟΒΑΘΡΟ
Η παρούσα δημοσιοποίηση σχετίζεται με τη μετάφραση διευθύνσεων μνήμης.
Οι συσκευές μετάφρασης διευθύνσεων μνήμης, όπως οι μονάδες διαχείρισης (management units ή MMU), παρακολουθούν τη μετάφραση εικονικών διευθύνσεων μνήμης σε φυσικές διευθύνσεις μνήμης.
Μια συσκευή επεξεργασίας δεδομένων συνήθως παρέχει σε κάθε πρόγραμμα που εκτελείται πρόσβαση σε ένα χώρο εικονικών διευθύνσεων ο οποίος καθορίζεται από εικονικές διευθύνσεις μνήμης. Κάθε πρόγραμμα βλέπει το δικό του χώρο εικονικών διευθύνσεων ο οποίος περιέχει εντολές και δεδομένα για χρήση από αυτό το πρόγραμμα. Ανάμεσα σε άλλα καθιερωμένα πλεονεκτήματα, η χρήση εικονικής διευθυνσιοδότησης επιτρέπει στο λειτουργικό σύστημα να ελέγχει την πρόσβαση στη μνήμη εμποδίζοντας την πρόσβαση από ένα πρόγραμμα ή τη φθορά πληροφοριών που χρησιμοποιούνται από ένα άλλο πρόγραμμα.
Όταν απαιτείται μια πρόσβαση σε μια εικονική διεύθυνση μνήμης, είναι απαραίτητη πρώτα η μετάφραση της εικονικής διεύθυνσης μνήμης σε μια φυσική διεύθυνση μνήμης ώστε να είναι δυνατή η απόκτηση των απαιτούμενων πληροφοριών από τη φυσική μνήμη ή η εγγραφή του σε αυτή ή σε μια φυσική κρυφή μνήμη.
Μια κρυφή μνήμη, η οποία κάποιες φορές είναι γνωστή ως translation lookaside buffer (TLB), μπορεί να χρησιμοποιείται στα πλαίσια της διαδικασίας μετάφρασης διευθύνσεων. Η TLB αποθηκεύει πρόσφατα ή συνήθως χρησιμοποιούμενες μεταφράσεις μεταξύ των εικονικών και των φυσικών διευθύνσεων μνήμης. Επομένως, ως ένα πρώτο βήμα σε μια διαδικασία μετάφρασης διευθύνσεων, η TLB λαμβάνεται υπόψη για την ανίχνευση κατά πόσο η TLB περιέχει ήδη την απαιτούμενη μετάφραση διευθύνσεων. Εάν όχι, τότε μπορεί να χρησιμοποιείται μια πιο περίπλοκη διαδικασία μετάφρασης, για παράδειγμα μια που λαμβάνει υπόψη τους επονομαζόμενους πίνακες σελίδων που συγκρατούν πληροφορίες μετάφρασης σελίδων, η οποία συνήθως έχει ως αποτέλεσμα τη συμπλήρωση της TLB με την απαιτούμενη μετάφραση.
Σε ορισμένες περιπτώσεις χρησιμοποιούνται MMU πολλαπλών σταδίων. Σε αυτή τη διάταξη, χρησιμοποιούνται στην πράξη δύο επίπεδα μετάφρασης. Μια εικονική διεύθυνση (virtual address ή VA), η οποία απαιτείται από ένα πρόγραμμα που εκτελείται ή άλλη μονάδα συστήματος όπως μια μονάδα επεξεργασίας γραφικών (graphics processing unit ή GPU), μεταφράζεται σε μια ενδιάμεση φυσική διεύθυνση (intermediate physical address ή I ΡΑ) από ένα πρώτο στάδιο MMU. Η ΙΡΑ μεταφράζεται σε μια φυσική διεύθυνση (physical address ή ΡΑ) από ένα δεύτερο στάδιο MMU. Ένας λόγος για τη χρήση των μεταφράσεων πολλαπλών σταδίων είναι για την ασφάλεια διαχείρισης των πληροφοριών όταν πολλά λειτουργικά συστήματα (operating system ή OS) μπορεί να χρησιμοποιούνται σε αντίστοιχες “εικονικές μηχανές” που εκτελούνται στον ίδιο επεξεργαστή. Ένα συγκεκριμένο OS εκτίθεται στη μετάφραση της VA σε ΙΡΑ, ενώ μόνο ένας επόπτης (λογισμικό το οποίο επιτηρεί την εκτέλεση των εικονικών μηχανών) έχει επίβλεψη της μετάφρασης σταδίου 2 (ΙΡΑ σε ΡΑ).
ΠΕΡΙΛΗΨΗ
Σε ένα παράδειγμα διάταξης παρέχεται μια συσκευή μετάφρασης διευθύνσεων μνήμης η οποία περιλαμβάνει:
ένα κύκλωμα πρόσβασης σε δεδομένα πίνακα σελίδων για την πρόσβαση σε έναν πίνακα σελίδων για την ανάκτηση των δεδομένων μετάφρασης που ορίζουν μια μετάφραση διεύθυνσης μεταξύ μιας αρχικής διεύθυνσης μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμη και μιας αντίστοιχης διεύθυνσης μνήμης εξόδου σε ένα χώρο διευθύνσεων εξόδου,
μια προσωρινή μνήμη δεδομένων μετάφρασης για την αποθήκευση, για ένα υποσύνολο του χώρου εικονικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης, και
ένα κύκλωμα ελέγχου που αποκρίνεται σε μια προς μετάφραση αρχική διεύθυνση μνήμης εισόδου, για την αίτηση της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης και, πριν την ολοκλήρωση της επεξεργασίας του αιτήματος ανάκτησης από την προσωρινή μνήμη δεδομένων μετάφρασης, για την έναρξη της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων.
Σε ένα άλλο παράδειγμα διάταξης παρέχεται μια συσκευή μετάφρασης διευθύνσεων μνήμης η οποία περιλαμβάνει:
μέσα πρόσβασης σε πίνακα σελίδων για την πρόσβαση σε δεδομένα πίνακα σελίδων για την ανάκτηση δεδομένων μετάφρασης που ορίζουν μια μετάφραση διεύθυνσης μεταξύ μιας αρχικής διεύθυνσης μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμης και μια αντίστοιχη διεύθυνση μνήμης έξοδος σε ένα χώρο διευθύνσεων εξόδου,
μέσα προσωρινής μνήμης δεδομένων μετάφρασης για την αποθήκευση, για ένα υποσύνολο του χώρου αρχικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης, και
μέσα ελέγχου που αποκρίνονται σε μια προς μετάφραση αρχική διεύθυνση μνήμης εισόδου, για την αίτηση της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης και, πριν την ολοκλήρωση της επεξεργασίας του αιτήματος ανάκτησης από την προσωρινή μνήμη δεδομένων μετάφρασης, για την έναρξη της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων.
Σε ένα άλλο παράδειγμα διάταξης παρέχεται μια μέθοδος η οποία περιλαμβάνει: την πρόσβαση σε δεδομένα πίνακα σελίδων για την ανάκτηση των δεδομένων μετάφρασης τα οποία ορίζουν μια μετάφραση διεύθυνσης μεταξύ μιας αρχικής διεύθυνσης μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμης και μιας αντίστοιχης διεύθυνσης μνήμης εξόδου σε ένα χώρο διευθύνσεων εξόδου,
την αποθήκευση, για ένα υποσύνολο του χώρου αρχικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης σε μια προσωρινή μνήμη δεδομένων μετάφρασης,
σε απόκριση μιας προς μετάφραση αρχικής διεύθυνσης μνήμης εισόδου, την αίτηση της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης, και
πριν την ολοκλήρωση της επεξεργασίας του αιτήματος ανάκτησης από την προσωρινή μνήμη δεδομένων μετάφρασης, την έναρξη της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων.
Περαιτέρω αντίστοιχες απόψεις και χαρακτηριστικά της παρούσας τεχνολογίας ορίζονται στις συνημμένες αξιώσεις.
ΣΥΝΤΟΜΗ ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΣΧΕΔΙΑΓΡΑΜΜΑΤΩΝ
Η παρούσα τεχνική θα περιγράφει περαιτέρω, μόνο μέσω παραδειγμάτων, αναφορικά με τις υλοποιήσεις αυτής όπως απεικονίζεται στα συνοδευτικά σχεδιαγράμματα, στα οποία:
Το Σχήμα 1 απεικονίζει μια συσκευή σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 2 απεικονίζει μια συσκευή σύμφωνα με ορισμένες υλοποιήσεις,
Τα Σχήματα 3Α και 3Β συλλογικά επιδεικνύουν τον τρόπο κατανομής των διαφόρων αιτημάτων από τη CPU σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 4 απεικονίζει μια λειτουργία συντήρησης σύμφωνα με ορισμένες υλοποιήσεις, Το Σχήμα 5 απεικονίζει μια διαδικασία διαχείρισης επικαλυπτόμενων αιτημάτων, Το Σχήμα 6 απεικονίζει μια διαδικασία λήψης μιας νέας λειτουργίας συντήρησης σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 7 απεικονίζει το συνδυασμό των λειτουργιών συντήρησης σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 8 απεικονίζει τη χρήση μιας ουράς πλήρωσης σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 9 δείχνει, σε μορφή διαγράμματος ροής, τη διαδικασία αναδρομής στην ουρά πλήρωσης, σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 10Α επιδεικνύει μια πρώτη διαδικασία πραγματοποίησης μιας λειτουργίας πλήρωσης και μιας λειτουργίας συντήρησης σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 10Β επιδεικνύει μια δεύτερη διαδικασία πραγματοποίησης μιας λειτουργίας πλήρωσης και μιας λειτουργίας συντήρησης σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 11 δείχνει μια διαδικασία πραγματοποίησης ενός αιτήματος πρόσβασης κατά τη διάρκεια μιας λειτουργίας συντήρησης σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 12 απεικονίζει ένα παράδειγμα συσκευής σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 13 απεικονίζει την ανακατανομή των δρόμων εντός μιας κρυφής μνήμης σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 14 επιδεικνύει πως μια μονή μνήμη μπορεί να εκχωρείται σε πολλαπλούς σκοπούς χρησιμοποιώντας ένα δείκτη, σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 15 απεικονίζει ένα παράδειγμα μεθόδου δυναμικής ανακατανομής δεδομένων και μεταφράσεων διευθύνσεων σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 16 δείχνει πως η χρήση διαφορετικών πολιτικών εκχώρησης τροποποιεί την κατανομή των δρόμων κρυφής μνήμης σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 17Α επιδεικνύει πως προωθείται ένα αίτημα για μια διεύθυνση σε μια TLB, σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 17Β απεικονίζει την παράλληλη έκδοση ενός αιτήματος για μια διεύθυνση, σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 17C επιδεικνύει μια διαδικασία στην οποία η πραγματοποίηση μιας μετάφρασης μιας διεύθυνσης προκαλεί την παροχή της μεταφρασμένης διεύθυνσης και την προσκόμιση των δεδομένων, σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 18 απεικονίζει ένα διάγραμμα ροής που δείχνει μια μέθοδο διαχείρισης εισερχόμενων αιτημάτων σύμφωνα με ορισμένες υλοποιήσεις,
Το Σχήμα 19 απεικονίζει σχηματικά μια συσκευή επεξεργασίας δεδομένων,
Το Σχήμα 20 απεικονίζει σχηματικά ένα κύκλωμα μετάφρασης διευθύνσεων και την αποθήκευση δεδομένων μετάφρασης σε μια μνήμη DRAM,
Τα Σχήματα 21 και 22 είναι σχηματικά διαγράμματα χρονισμού,
Το Σχήμα 23 είναι ένα σχηματικό διάγραμμα ροής που απεικονίζει μια μέθοδο,
Το Σχήμα 24 απεικονίζει σχηματικά ένα κύκλωμα μετάφρασης διευθύνσεων,
Το Σχήμα 25 απεικονίζει σχηματικά μια μνήμη DRAM,
Το Σχήμα 26 απεικονίζει σχηματικά έναν αποθηκευτικό χώρο δεδομένων στη μνήμη DRAM του Σχήματος 25,
Το Σχήμα 27 απεικονίζει σχηματικά ένα ζεύγος κλειδιού-τιμής,
Το Σχήμα 28 απεικονίζει σχηματικά μια γεννήτρια hash,
Το Σχήμα 29 απεικονίζει σχηματικά ένα κύκλωμα εγγραφής, και
Τα Σχήματα 30 και 31 είναι σχηματικά διαγράμματα ροής που απεικονίζουν αντίστοιχες μεθόδους.
ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΥΛΟΠΟΙΗΣΕΩΝ
Η παρούσα περιγραφή σχετίζεται με έναν αριθμό πιθανώς ορθογωνικών τεχνικών, οι οποίες μπορούν να χρησιμοποιούνται μαζί σε οποιονδήποτε συνδυασμό. Το Σχήμα 1 απεικονίζει ένα παράδειγμα συσκευής 100 στο οποίο όλες οι τεχνικές προς εξέταση παρακάτω χρησιμοποιούνται ταυτόχρονα. Η συσκευή περιλαμβάνει ένα πλήθος επεξεργαστών 105a, 105b... , με κάθε ένα να έχει μια αποκλειστική Translation Lookaside Buffer 110a, 110b,... για τη μετάφραση μιας διεύθυνσης εισόδου σε μια διεύθυνση εξόδου σε ένα χώρο εξόδου. Κάθε επεξεργαστής μπορεί να αποστέλλει λειτουργίες συντήρησης, λειτουργίες αναζήτησης και λειτουργίες πλήρωσης σε μια διασύνδεση 125 μέσω μιας ή περισσότερων θυρών εισόδου 135. Κάθε μια από αυτές τις λειτουργίες σχετίζονται με έναν αποθηκευτικό χώρο διευθύνσεων 155 (ο οποίος μπορεί να ενεργεί ως μια προσωρινή μνήμη δεδομένων μετάφρασης) που συσχετίζεται με τη διασύνδεση 125. Οι λειτουργίες αναζήτησης περιλαμβάνουν μια διεύθυνση εισόδου ή μια αρχική διεύθυνση για την οποία πρόκειται να παρέχεται μια διεύθυνση εξόδου σε ένα χώρο εξόδου. Οι λειτουργίες πλήρωσης χρησιμοποιούνται για την παροχή τέτοιων μεταφράσεων. Στο μεταξύ, μια ουρά συντήρησης 145 αποθηκεύει τις λειτουργίες συντήρησης, οι οποίες πραγματοποιούνται ασύγχρονα από το κύκλωμα συντήρησης 150 στον αποθηκευτικό χώρο διευθύνσεων 155 ώστε ο επεξεργαστής 1 10a δε χρειάζεται να περιμένει για την πραγματοποίηση των λειτουργιών συντήρησης. Ο αποθηκευτικός χώρος διευθύνσεων 155 μπορεί να παίρνει τη μορφή ενός κυκλώματος για την πρόσβαση σε μια περαιτέρω TLB, για το οποίο τα δεδομένα μετάφρασης μπορεί ουσιαστικά να αποθηκεύονται στη μνήμη 115 και το οποίο μπορεί επίσης να έχει πρόσβαση στη μνήμη 1 15 για επονομαζόμενους περιπάτους σε πίνακες σελίδων για τη συμπλήρωση του αποθηκευτικού χώρου διευθύνσεων. Η διασύνδεση 125 παρέχει μια σύνδεση με μια κύρια μνήμη 115 μέσω μιας ή περισσότερων θυρών εξόδου 140. Η κύρια μνήμη ελέγχεται μέσω ενός ελεγκτή 120. Τα δεδομένα που διαβάζονται ή εγγράφονται στην κύρια μνήμη 115 μπορούν να αποθηκεύονται σε μια κρυφή μνήμη 160, η οποία συσχετίζεται με τη διασύνδεση 125. Παρέχοντας μια κρυφή μνήμη, οι επεξεργαστές 105a, 105b,... μπορούν να έχουν πρόσβαση στα δεδομένα από τη μνήμη 115 πιο γρήγορα εάν ένα αίτημα πρέπει να αποστέλλεται εκτός της διασύνδεσης 125 και να διαχειρίζεται από τον ελεγκτή μνήμης 120. Ο αποθηκευτικός χώρος από την κρυφή μνήμη 160 μπορεί να ‘κλέβεται’ (προσωρινά ή με άλλο τρόπο να ανακατανέμεται) για χρήση από τον αποθηκευτικό χώρο διευθύνσεων 155 ώστε το μέγεθος του διαθέσιμου αποθηκευτικού χώρου για την αποθήκευση μεταφράσεων διευθύνσεων να μπορεί να αυξάνεται πέρα από τη χωρητικότητα του ίδιου του αποθηκευτικού χώρου διευθύνσεων 155. Η διαχείριση του κλεμμένου αποθηκευτικού χώρου, όπως και η λειτουργία της ουράς συντήρησης 145, του αποθηκευτικού χώρου διευθύνσεων 155 και της κρυφής μνήμης 160 διαχειρίζεται από το κύκλωμα ελέγχου 130. Το κύκλωμα ελέγχου μπορεί να ελέγχει το χρονισμό των περιπάτων στον πίνακα σελίδων και των προσβάσεων στην TLB ώστε για ένα συγκεκριμένο αίτημα μετάφρασης από την TLB 110a, ο περίπατος στον πίνακα σελίδων μπορεί να ξεκινάει πριν την ολοκλήρωση μιας αναζήτησης TLB. Ο ελεγκτής 120 και το κύκλωμα ελέγχου 130 μπορεί να συνεργάζονται ώστε να επιβλέπουν την αποθήκευση από και την ανάκτηση από τη μνήμη 115 των δεδομένων μετάφρασης με τη μορφή ζευγών κλειδιού-τιμής ώστε σε ορισμένα παραδείγματα να είναι δυνατή η αποθήκευση πολλαπλών τέτοιων ζευγών σε μια σειρά στοιχείων μνήμης (με δυνατότητα πρόσβασης από μια προσωρινή μνήμη σειρών (δε δείχνεται) της μνήμης 115) της μνήμης 115. Ας σημειωθεί ότι η κύρια μνήμη 115 και η ίδια η κρυφή μνήμη 160 θα μπορούσαν να υλοποιούνται με τη χρήση μνήμης DRAM.
Ασύγχρονη συντήρηση
Το Σχήμα 2 απεικονίζει ένα παράδειγμα μιας συσκευής 200 σύμφωνα με ορισμένες υλοποιήσεις. Αυτή η συσκευή περιλαμβάνει ένα σύνολο θυρών εισόδου 210, οι οποίες παρέχουν λειτουργίες αναζήτησης και λειτουργίες συντήρησης (αναφέρονται συλλογικά ως ‘αιτήματα’) σε ένα κύκλωμα ελέγχου 240. Οι λειτουργίες αναζήτησης που έχουν τη διεύθυνση εισόδου (αιτήματα αναζήτησης) διαβιβάζονται στο κύκλωμα αναζήτησης 230, το οποίο θα μπορούσε για παράδειγμα να παίρνει τη μορφή μιας Translation Lookaside Buffer (TLB). Σε ορισμένες υλοποιήσεις, η TLB θα μπορούσε να παρέχεται μέσω μνήμης DRAM. Οι λειτουργίες συντήρησης (αιτήματα συντήρησης) διαβιβάζονται σε μια ουρά συντήρησης 220. Μια τέτοια συσκευή 200 μπορεί να χρησιμοποιείται για την παροχή ασύγχρονης συντήρησης σε ένα σύστημα αποθήκευσης και παρέχεται ως παράδειγμα μιας συσκευής 200 που περιλαμβάνει μια θύρα εισόδου 210 για τη λήψη, από έναν αιτούντα, οποιουδήποτε από τα εξής: μια λειτουργία αναζήτησης η οποία περιλαμβάνει μια διεύθυνση εισόδου και μια λειτουργία συντήρησης, ένα κύκλωμα ουράς συντήρησης 220 για την αποθήκευση μιας ουράς συντήρησης με τουλάχιστον μια λειτουργία συντήρησης και ένας αποθηκευτικός χώρος διευθύνσεων 230 για την αποθήκευση μιας μετάφρασης μεταξύ της διεύθυνσης εισόδου και μιας διεύθυνσης εξόδου σε ένα χώρο διευθύνσεων εξόδου, όπου σε απόκριση της λήψης της διεύθυνσης εισόδου, παρέχεται η διεύθυνση εξόδου σε εξάρτηση από την ουρά συντήρησης και σε απόκριση της αποθήκευσης της λειτουργίας συντήρησης, το κύκλωμα ουράς συντήρησης προκαλεί την αποστολή μιας αναγνώρισης στον αιτούντα.
Σε τέτοιες υλοποιήσεις, ο αϊτών μπορεί να πάρει τη μορφή ενός επεξεργαστή όπως μια Κεντρική μονάδα επεξεργασίας (Central Processing Unit ή CPU). Μέσω της θύρας εισόδου 210 της συσκευής 200, ο αϊτών μπορεί να εκδίδει μια λειτουργία αναζήτησης η οποία περιλαμβάνει μια διεύθυνση εισόδου. Ο αϊτών μπορεί επίσης να εκδίδει ένα αίτημα συντήρησης μέσω της θύρας εισόδου 210. Για παράδειγμα, η λειτουργία συντήρησης θα μπορούσε να κατευθύνεται προς τη συντήρηση των εγγραφών στον αποθηκευτικό χώρο διευθύνσεων 230, ο οποίος αποθηκεύει τις μεταφράσεις μεταξύ των διευθύνσεων εισόδου και των διευθύνσεων εξόδου σε ένα χώρο διευθύνσεων εξόδου. Η διεύθυνση εξόδου σε ένα χώρο διευθύνσεων εξόδου θα μπορούσε να πάρει τη μορφή μιας φυσικής διεύθυνσης (physical address ή ΡΑ) ή μιας ενδιάμεσης φυσικής διεύθυνσης (intermediate physical address ή ΙΡΑ). Μια ΙΡΑ μπορεί να χρησιμοποιείται για τη μερική μετάφραση μεταξύ μιας εικονικής διεύθυνσης (virtual address ή VA) και μιας φυσικής διεύθυνσης (ΡΑ), για παράδειγμα.
Δύο περαιτέρω λειτουργίες επιτρέπουν στη συσκευή 200 να πραγματοποιεί ασύγχρονα λειτουργίες συντήρησης. Πρώτα, σε απόκριση της λήψης μιας λειτουργίας συντήρησης, αποθηκεύεται η λειτουργία συντήρησης και το κύκλωμα ουράς συντήρησης 220 προκαλεί την αποστολή μιας αναγνώρισης και πάλι προς τον αιτούντα. Αυτή η αναγνώριση αποστέλλεται αμέσως (π.χ. χωρίς αναμονή για την ολοκλήρωση της λειτουργίας συντήρησης). Συνεπώς, ο αϊτών δεν καθυστερείται ή εμποδίζεται μέχρι την πραγματοποίηση της λειτουργίας συντήρησης. Ωστόσο, εφόσον η λειτουργία συντήρησης δεν πραγματοποιείται αμέσως, είναι απαραίτητη η αναστολή παροχής παλαιών δεδομένων από τον αποθηκευτικό χώρο διευθύνσεων 230. Με άλλα λόγια, η συσκευή 200 πρέπει να συνεχίσει να συμπεριφέρεται σαν να έχει πραγματοποιηθεί η λειτουργία συντήρησης.
Δεύτερον, σε απόκριση της λήψης μιας διεύθυνσης εισόδου (δηλ. μια διεύθυνση προς μετάφραση), η αντίστοιχη διεύθυνση εξόδου παρέχεται σε εξάρτηση από την ουρά που συντηρείται από το κύκλωμα ουράς συντήρησης 220. Και πάλι, αυτό είναι απαραίτητο για να αποτραπεί η επιστροφή δεδομένων τα οποία δε θα επιστρέφονταν εάν είχαν πραγματοποιηθεί οι λειτουργίες συντήρησης σε ουρά. Κάθε μια από αυτές τις διαδικασίες εξετάζεται λεπτομερέστερα αναφορικά με τα Σχήματα 3Α και 3Β, παρακάτω.
Το κύκλωμα του Σχήματος 2 παρέχει επίσης ένα παράδειγμα από τα εξής: ένα κύκλωμα ελέγχου 240 για τη σάρωση της ουράς συντήρησης για τυχόν διένεξη με τη διεύθυνση εισόδου σε απόκριση της λήψης της διεύθυνσης εισόδου, όπου η διεύθυνση εξόδου παρέχεται σε εξάρτηση από την ουρά επιστρέφοντας μια αποτυχία εάν υπάρχει μια διένεξη και παρέχοντας τη διεύθυνση εξόδου με άλλο τρόπο.
Μια διένεξη μπορεί να συμβαίνει όταν η διεύθυνση εισόδου που παρέχεται στη θύρα εισόδου 210 σχετίζεται μια διεύθυνση η οποία θα επηρεαζόταν από μια λειτουργία συντήρησης που συγκροτείται στην ουρά συντήρησης 220. Με άλλα λόγια, εάν οι λειτουργίες συντήρησης που συγκροτούνται στην ουρά συντήρησης 220 είχαν πραγματοποιηθεί, τότε ένα διαφορετικό αποτέλεσμα για τη διεύθυνση εισόδου θα αποθηκευόταν στο κύκλωμα αναζήτησης 230. Ως συνέπεια μιας τέτοιας διένεξης και προκειμένου να αποτραπεί η επιστροφή παλαιών δεδομένων, παρέχεται μια αποτυχία TLB σε απόκριση της διεύθυνσης εισόδου. Αυτό με τη σειρά του θα προκαλέσει την έναρξη ενός περιπάτου στον πίνακα σελίδων, κατά τη διάρκεια του οποίου ανακτάται η σωστή διεύθυνση εξόδου. Εάν δεν υπάρχει κάποια διένεξη, τότε μπορεί να παρέχεται η διεύθυνση εξόδου.
Το Σχήμα 2 δείχνει επίσης ένα παράδειγμα ενός κυκλώματος συντήρησης 250 που προκαλεί την πραγματοποίηση μιας επιλεγμένης λειτουργίας συντήρησης από την ουρά συντήρησης. Υπάρχει ένας αριθμός τρόπων με τους οποίους το κύκλωμα συντήρησης 250 θα μπορούσε να επιλέγει μια λειτουργία συντήρησης και να προκαλεί την πραγματοποίηση μιας επιλεγμένη λειτουργίας συντήρησης από την ουρά που διατηρείται από το κύκλωμα ουράς συντήρησης 220. Σε ορισμένες υλοποιήσεις, το κύκλωμα συντήρησης 250 επιλέγει μια λειτουργία συντήρησης προς πραγματοποίηση όταν το κύκλωμα αναζήτησης 230 είναι με άλλο τρόπο μη δεσμευμένο. Για παράδειγμα, εάν υπάρχει μια χρονική περίοδος κατά την οποία δε λαμβάνεται καμία διεύθυνση εισόδου στις θύρες εισόδου 210, τότε το κύκλωμα συντήρησης 250 θα μπορούσε να εκμεταλλεύεται αυτό το χρόνο αργίας ώστε να προκαλεί την πραγματοποίηση μιας ή περισσότερων από τις λειτουργίες συντήρησης. Σε ορισμένες υλοποιήσεις, το κύκλωμα συντήρησης 250 μπορεί συνεχώς να προκαλεί την επιλογή λειτουργιών συντήρησης από την ουρά συντήρησης 220 και την πραγματοποίησή τους μέχρι να μη μείνει καμία. Σε ορισμένες υλοποιήσεις, οι λειτουργίες συντήρησης προγραμματίζονται για πραγματοποίηση σε περίπτωση παρέλευσης μιας χρονικής περιόδου από την προσθήκη τους στην ουρά συντήρησης 220 ή όταν η ουρά συντήρησης 220 είναι πλήρης. Και άλλες τεχνικές επιλογής από την ουρά θα είναι γνωστές στα έμπειρα άτομα.
Το Σχήμα 2 επίσης απεικονίζει ένα παράδειγμα ενός κυκλώματος συνδυασμού 260 για το συνδυασμό ενός πλήθους εγγραφών στην ουρά συντήρησης με βάση μια ή περισσότερες συνθήκες. Μια τέτοια διαδικασία εξετάζεται λεπτομερέστερα αναφορικά με το Σχήμα 7.
Τα Σχήματα 3Α και 3Β συλλογικά απεικονίζουν τη διαδικασία διαχείρισης μιας εισερχόμενης λειτουργίας αναζήτησης η οποία περιλαμβάνει μια διεύθυνση εισόδου. Όπως προαναφέρθηκε, η αντίστοιχη διεύθυνση εξόδου στο χώρο διευθύνσεων εξόδου (π.χ. ένας χώρος φυσικών διευθύνσεων ή ένας χώρος μερικών/ενδιάμεσων διευθύνσεων) παρέχεται σε εξάρτηση από την ουρά συντήρησης. Τα Σχήματα 3Α και 3Β εξετάζονται ταυτόχρονα.
Η διαδικασία ξεκινάει στο βήμα 300, όπου λαμβάνεται μια λειτουργία αναζήτησης, π.χ. από μια εικονική διεύθυνση σε μια φυσική διεύθυνση. Αυτό συμβαίνει από την αποστολή ενός αιτούντος όπως μιας CPU 310 στο κύκλωμα αναζήτησης 230. Αυτό μπορεί να παίρνει τη μορφή μιας αναζήτησης TLB. Σε ένα βήμα 320 το κύκλωμα αναζήτησης 230 πραγματοποιεί πρόσβαση και αναζήτηση στην ουρά συντήρησης 220. Στη συνέχεια προσδιορίζεται, σε ένα βήμα 330, κατά πόσο υπάρχει μια διένεξη στην ουρά συντήρησης 220 με την αναζήτηση TLB. Εάν το αποτέλεσμα από την ουρά συντήρησης 220 προς το κύκλωμα αναζήτησης 230 υποδεικνύει την ύπαρξη μιας τέτοιας διένεξης, τότε σε ένα βήμα 340, το κύκλωμα αναζήτησης 230 εκδίδει μια αποτυχία TLB. Αυτό προκαλεί έναν περίπατο σελίδων, ο οποίος σε ορισμένες υλοποιήσεις ξεκινάει είτε από τη CPU 310 ή από ένα ειδικό κύκλωμα γνωστό ως περιπατητής πίνακα σελίδων, με σκοπό την ανάκτηση της φυσικής διεύθυνσης. Εάν, ωστόσο, στο βήμα 330, το αποτέλεσμα που εκδόθηκε από την ουρά συντήρησης 220 προς το κύκλωμα αναζήτησης 230 υποδείξει ότι δεν υπάρχει κάποια διένεξη, τότε στο βήμα 350 προσδιορίζεται κατά πόσο υπάρχει μια αντιστοίχιση ετικέτας. Παράλληλα με τον έλεγχο κατά πόσο υπάρχει μια διένεξη, πραγματοποιείται μια αναζήτηση στην TLB 230 στο βήμα 360 και ελέγχονται στη συνέχεια οι ετικέτες των σχετικών εγγραφών στο βήμα 350. Η διαδικασία αντιστοίχισης ετικέτας προσδιορίζει κατά πόσο υπάρχει μια αντίστοιχη διεύθυνση εξόδου με δεδομένη τη διεύθυνση εισόδου στο κύκλωμα αναζήτησης 230. Στην πράξη, αυτό συμβαίνει συνήθως αντιστοιχώντας ένα τμήμα της διεύθυνσης εισόδου (αναφέρεται ως η ετικέτα) με μια εγγραφή στο κύκλωμα αναζήτησης 230. Εάν δε βρεθεί μια τέτοια ετικέτα, τότε η διαδικασία συνεχίζει στο βήμα 340 όπου εκδίδεται μια αποτυχία TLB προς τη CPU 310 ή το κύκλωμα περιπατητή σελίδων.
Εναλλακτικά, εάν βρεθεί μια αντίστοιχη ετικέτα, τότε στο βήμα 370 η αντίστοιχη διεύθυνση εξόδου παρέχεται και πάλι στη CPU 310. Όπως δείχνεται στο Σχήμα 3Α, όταν η CPU 310 εκδίδει μια λειτουργία συντήρησης, αυτή εκδίδεται προς την ουρά συντήρησης 220. Όταν, για παράδειγμα, το κύκλωμα αναζήτησης 230 είναι με άλλο τρόπο αδρανές, η ουρά συντήρησης 220 μπορεί να επιλέγει μια προς πραγματοποίηση λειτουργία συντήρησης. Αυτή στη συνέχεια πραγματοποιείται στο σύνολο των μεταφράσεων που αποθηκεύονται από το κύκλωμα αναζήτησης 230. Ας σημειωθεί ότι αποστέλλεται μια αναγνώριση από την ουρά συντήρησης 220 σε απόκριση της έκδοσης της λειτουργίας συντήρησης από τη CPU 310. Ανάλογα, η CPU 310 δε χρειάζεται να εμποδίζεται ή να καθυστερεί ως συνέπεια της έκδοσης της λειτουργίας συντήρησης και της αναμονής πραγματοποίησης αυτής της λειτουργίας συντήρησης. Αντίθετα, είναι δυνατή η τοποθέτηση της λειτουργίας συντήρησης στην ουρά και στη συνέχεια η πραγματοποίησή της σε κατάλληλο χρόνο. Αυτά τα σχήματα παρέχουν επομένως ένα παράδειγμα μιας μεθόδου που περιλαμβάνει τη λήψη 300, από έναν αιτούντα, οποιουδήποτε από τα εξής: μια λειτουργία αναζήτησης η οποία περιλαμβάνει μια διεύθυνση εισόδου και μια λειτουργία συντήρησης, την αποθήκευση μιας ουράς συντήρησης 220 με τουλάχιστον μια λειτουργία συντήρησης και την αποθήκευση μιας μετάφρασης μεταξύ της διεύθυνσης εισόδου και μιας διεύθυνσης εξόδου σε ένα χώρο διευθύνσεων εξόδου, όπου σε απόκριση της λήψης της διεύθυνσης εισόδου, παρέχεται η διεύθυνση εξόδου σε εξάρτηση από την ουρά συντήρησης 330 και σε απόκριση της αποθήκευσης της λειτουργίας συντήρησης, την πρόκληση αποστολής μιας αναγνώρισης προς τον αιτούντα.
Το Σχήμα 4 απεικονίζει μια λειτουργία συντήρησης σύμφωνα με ορισμένες υλοποιήσεις. Συγκεκριμένα, το Σχήμα 4 απεικονίζει ένα παράδειγμα στο οποίο η λειτουργία συντήρησης πραγματοποιεί πρόσβαση σε ένα πλήθος μεταφράσεων στον αποθηκευτικό χώρο διευθύνσεων 230. Το Σχήμα 4 επίσης απεικονίζει ένα παράδειγμα στο οποίο η λειτουργία συντήρησης διαδοχικά πραγματοποιεί πρόσβαση σε μεταφράσεις στον αποθηκευτικό χώρο διευθύνσεων 230 και ένα παράδειγμα στο οποίο ο αποθηκευτικός χώρος διευθύνσεων προσαρμόζεται ώστε να χαρτογραφείται στη μνήμη και η λειτουργία συντήρησης πραγματοποιεί πρόσβαση σε μεταφράσεις στον αποθηκευτικό χώρο διευθύνσεων 230 χρησιμοποιώντας μη χρονικές προσβάσεις.
Μια μη χρονική πρόσβαση είναι μια πρόσβαση στην οποία μια νέα εγγραφή δεν είναι εγκατεστημένη σε μια κρυφή μνήμη ως συνέπεια αυτής της πρόσβασης. Για παράδειγμα, ως αποτέλεσμα των μη χρονικών προσβάσεων, καμία εγγραφή δεν αποθηκεύεται στην Κρυφή μνήμη τελευταίου επιπέδου (Last Level Cache ή LLC). Μια τέτοια ενέργεια αποτρέπει την προσθήκη περιττών δεδομένων στην κρυφή μνήμη ως συνέπεια μιας λειτουργίας συντήρησης.
Υπάρχει επομένως μια υπόθεση ότι τα δεδομένα δεν πρόκειται να χρησιμοποιηθούν και πάλι στο άμεσο μέλλον κι επομένως δε θα πρέπει να εξαχθούν άλλα χρήσιμα δεδομένα (και δε θα πρέπει να τοποθετηθούν σε κρυφή μνήμη). Σε ορισμένες υλοποιήσεις, αντί της χρήσης μιας μη χρονικής πρόσβασης, χρησιμοποιείται μια κανονική πρόσβαση και κάθε εγγραφή που προκύπτει και προστίθεται στην κρυφή μνήμη αναλαμβάνει μια υψηλή προτεραιότητα αντικατάστασης ώστε η εγγραφή να αντικαθίσταται πιο εύκολα.
Το Σχήμα 4 απεικονίζει ένα παράδειγμα στο οποίο η λειτουργία συντήρησης είναι μια λειτουργία ακύρωσης. Σε ορισμένες υλοποιήσεις, μια λειτουργία ακύρωσης προκαλεί μηδενισμό της σημαίας εγκυρότητας μιας ή περισσότερων εγγραφών στον πίνακα ως ένδειξη ότι η εγγραφή δεν μπορεί πια να χρησιμοποιείται. Ανάλογα, αυτές οι εγγραφές μπορούν να αντικαθίστανται από άλλες εγγραφές όπως απαιτείται. Σε ορισμένες άλλες υλοποιήσεις, η λειτουργία ακύρωσης θα μπορούσε να προκαλέσει την πλήρη διαγραφή των εγγραφών.
Το Σχήμα 4 επίσης απεικονίζει ένα παράδειγμα στο οποίο η λειτουργία ακύρωσης πρόκειται να ακυρώσει μια ή περισσότερες μεταφράσεις στον αποθηκευτικό χώρο διευθύνσεων 230 με βάση ένα ή περισσότερα από τα εξής: μια εικονική διεύθυνση, μια περιοχή εικονικών διευθύνσεων, ένα αναγνωριστικό χώρου διευθύνσεων, ένα αναγνωριστικό εικονικής μηχανής, μια ενδιάμεση φυσική διεύθυνση και μια φυσική διεύθυνση. Η ακύρωση θα μπορούσε επομένως να χρησιμοποιεί μια ή περισσότερες (οποιονδήποτε συνδυασμό) τέτοιες παραμέτρους ώστε να υποδεικνύει τις εγγραφές οι οποίες θα έπρεπε να υποβάλλονται στην ακύρωση. Σε ορισμένες υλοποιήσεις, και άλλες παράμετροι θα μπορούσαν να χρησιμοποιούνται επιπλέον (ή αντίθετα).
Σε αυτό το συγκεκριμένο παράδειγμα, η λειτουργία ακύρωσης πρέπει να ακυρώσει τις εγγραφές στις οποίες το αναγνωριστικό χώρου διευθύνσεων (address space identifier ή ASID) ή το αναγνωριστικό εικονικής μηχανής (virtual machine identifier ή VMID) είναι 1. Αυτό επιτυγχάνεται με τη σάρωση κάθε εγγραφής στον αποθηκευτικό χώρο διευθύνσεων, ελέγχοντας την τιμή των ASID και VMID για οποιαδήποτε εγγραφή είναι ίση με το 1. Σε περίπτωση που βρεθεί μια τέτοια εγγραφή, η σημαία εγκυρότητας για αυτή την εγγραφή μηδενίζεται ώστε να υποδηλώνει ότι η εγγραφή δεν είναι πια έγκυρη. Στο παράδειγμα του Σχήματος 4, αυτό επιτυγχάνεται μηδενίζοντας τη σημαία εγκυρότητας (άκυρο). Θα εκτιμηθεί ότι οι λειτουργίες ακύρωσης μπορούν να πραγματοποιούνται με βάση άλλα πεδία. Ας σημειωθεί ότι το πεδίο δε χρειάζεται να είναι στον ίδιο τον πίνακα αλλά θα μπορούσε να συσχετίζεται με μια εγγραφή στον πίνακα μέσω ενός άλλου πίνακα, καταχωρητή ή σημαίας. Το αναγνωριστικό χώρου διευθύνσεων και το αναγνωριστικό εικονικής μηχανής είναι και τα δύο τεχνικές οι οποίες χρησιμοποιούνται ώστε να διαιρούν τις εγγραφές του πίνακα σε ομάδες. Συγκεκριμένα, ένα αναγνωριστικό εικονικής μηχανής (VMID) μπορεί να χρησιμοποιείται για τον προσδιορισμό των εγγραφών που ανήκουν σε ένα συγκεκριμένο στιγμιότυπο εικονικής μηχανής σε ένα σύστημα που έχει έναν αριθμό εικονικών μηχανών. Παρόμοια, ο χώρος διευθύνσεων μπορεί να τμηματοποιείται σε έναν αριθμό τμημάτων με κάθε τμήμα να έχει το δικό του αναγνωριστικό. Αυτές οι τεχνικές μπορούν ακόμη και να συνδυάζονται ώστε κάθε εικονική μηχανή να μπορεί να διαχωρίζει τη διαθέσιμη μνήμη της σε έναν αριθμό διαφορετικών τμημάτων σε εξάρτηση από αυτή την εικονική μηχανή. Γ ια παράδειγμα, κάθε χώρος διευθύνσεων θα μπορούσε να εκχωρείται σε μια διαφορετική εφαρμογή που εκτελείται σε ένα συγκεκριμένο στιγμιότυπο εικονικής μηχανής. Με αυτό τον τρόπο, κάθε εγγραφή στον αποθηκευτικό χώρο διευθύνσεων 230 μπορεί να συσχετίζεται με ένα συγκεκριμένο σκοπό. Μια λειτουργία ακύρωσης μπορεί επομένως να στοχεύει στις διευθύνσεις που σχετίζονται με ένα συγκεκριμένο σκοπό. Για παράδειγμα, μια λειτουργία ακύρωσης θα μπορούσε να πραγματοποιείται όσον αφορά σε όλες τις διευθύνσεις που σχετίζονται με μια συγκεκριμένη εφαρμογή που εκτελείται σε μια συγκεκριμένη εικονική μηχανή όταν, για παράδειγμα, τερματίζεται αυτή η εφαρμογή. Παρόμοια, μια λειτουργία ακύρωσης θα μπορούσε να στοχεύει με βάση απλά ένα αναγνωριστικό εικονικής μηχανής, εάν αυτή η εικονική μηχανή επρόκειτο να τερματιστεί για παράδειγμα.
Θα εκτιμηθεί από τις παραπάνω παραγράφους ότι η λειτουργία συντήρησης μπορεί να είναι χρονοβόρα. Ανάλογα, χρησιμοποιώντας τη συσκευή 200 που περιγράφεται αναφορικά με τα Σχήματα 2, 3Α και 3Β, είναι δυνατή η ασύγχρονη πραγματοποίηση συντήρησης ώστε ένας αϊτών όπως μια CPU δε χρειάζεται να εμποδίζεται ή να καθυστερείται κατά τη διάρκεια πραγματοποίησης της λειτουργίας συντήρησης. Είναι ιδιαίτερα σημαντικό όταν ο αποθηκευτικός χώρος στον οποίο πραγματοποιούνται οι λειτουργίες συντήρησης είναι ιδιαίτερα μεγάλος. Εφόσον οι λειτουργίες συντήρησης δεν πραγματοποιούνται αμέσως, είναι απαραίτητη η επίλυση των διενέξεων που μπορεί να συμβούν μεταξύ αναζητήσεων και των λειτουργιών συντήρησης σε ουρά. Αυτό μπορεί να επιτυγχάνεται δοκιμάζοντας για τέτοιες διενέξεις, και όπου ανιχνεύεται μια διένεξη, προκαλώντας την ανάκτηση των αρχικών δεδομένων (π.χ. εκδίδοντας μια αποτυχία TLB προκαλώντας την πραγματοποίηση ενός περιπάτου σελίδων). Με αυτό τον τρόπο, είναι δυνατή η τήρηση μιας ουράς λειτουργιών συντήρησης και η πραγματοποίησή τους σε κατάλληλο χρόνο.
Βελτίωση της απόδοσης ασύγχρονης συντήρησης με ταυτόχρονη πραγματοποίηση πολλαπλών λειτουργιών συντήρησης
Το Σχήμα 4 απεικονίζει ένα παράδειγμα στο οποίο η επιλεγμένη λειτουργία συντήρησης περιλαμβάνει τη σάρωση εντός τουλάχιστον ενός τμήματος του αποθηκευτικού χώρου διευθύνσεων 230 και την πραγματοποίηση μιας ενέργειας σε απόκριση της ικανοποίησης μιας συνθήκης, κατά τη διάρκεια της σάρωσης, το κύκλωμα συντήρησης 250 πραγματοποιεί μια περαιτέρω ενέργεια σε απόκριση της ικανοποίησης μιας περαιτέρω συνθήκης, ενώ η περαιτέρω ενέργεια και η περαιτέρω συνθήκη αντιστοιχούν σε μια περαιτέρω λειτουργία συντήρησης προς πραγματοποίηση από την ουρά συντήρησης.
Σε αυτό το συγκεκριμένο παράδειγμα, μπορεί να θεωρηθεί ότι υπάρχει μια πρώτη λειτουργία συντήρησης για ακύρωση όπου ένα ASID είναι 1. Μπορεί να υπάρχει μια δεύτερη λειτουργία συντήρησης για ακύρωση όπου το VMID είναι 1. Αντί της πραγματοποίησης μιας πρώτης σάρωσης σε κάθε μια εγγραφή στο κύκλωμα αναζήτησης 230 για εγγραφές στις οποίες το ASID είναι 1 και στη συνέχεια της πραγματοποίησης μιας δεύτερης σάρωσης σε κάθε μια εγγραφή του κυκλώματος αναζήτησης 230 όπου το VMID είναι 1 , μπορεί να πραγματοποιείται μια μόνο σάρωση στην οποία κάθε εγγραφή ελέγχεται για να προσδιοριστεί κατά πόσο η τιμή της ASID ή VMID είναι 1. Με αυτό τον τρόπο, απαιτείται μόνο μια σάρωση στις εγγραφές του κυκλώματος αναζήτησης 230 και αυτό μπορεί να χρησιμοποιείται για τη μείωση του επιπλέον φορτίου των λειτουργιών συντήρησης. Ανάλογα, πολλαπλές λειτουργίες συντήρησης μπορούν να πραγματοποιούνται πιο αποτελεσματικά. Θα εκτιμηθεί ότι η ενέργεια και η περαιτέρω ενέργεια θα μπορούσαν να είναι ίδιες. Παρόμοια, η συνθήκη και η περαιτέρω συνθήκη θα μπορούσαν επίσης να είναι ίδιες.
Βελτίωση της απόδοσης ασύγχρονης συντήρησης με αναγνώριση της επαναχρησιμοποίησης του ASID ή του VMID
Το Σχήμα 5 απεικονίζει ένα παράδειγμα στο οποίο σε απόκριση συσχέτισης της διεύθυνσης εισόδου με μια εγγραφή στον αποθηκευτικό χώρο διευθύνσεων 230 η οποία επικαλύπτεται με μια λειτουργία συντήρησης στην ουρά συντήρησης, η συσκευή 200 είναι προσαρμοσμένη ώστε να δίνει προτεραιότητα στην επικαλυπτόμενη λειτουργία συντήρησης.
Όταν τελειώνει μια συγκεκριμένη εφαρμογή ή εικονική μηχανή, οι εγγραφές της TLB που έχουν μια τιμή ASID που σχετίζεται με αυτή την εφαρμογή ή μια τιμή VMID που σχετίζεται με αυτή την εικονική μηχανή, πρέπει να ακυρώνονται. Εάν για το ίδιο ASIDA/MID αρχίσουν να λαμβάνονται αιτήματα, αυτό σημαίνει ότι η TLB θα πρέπει να συμπληρωθεί με νέες εγγραφές. Ωστόσο, αυτό δεν μπορεί να συμβεί πριν την πραγματοποίηση της λειτουργίας συντήρησης. Συνεπώς, όταν μια λειτουργία αναζήτησης (π.χ. ένα αίτημα μετάφρασης) επικαλύπτεται με μια τέτοια λειτουργία συντήρησης, μπορεί να είναι επιθυμητή η προώθηση της λειτουργίας συντήρησης.
Το Σχήμα 5 απεικονίζει ένα διάγραμμα ροής το οποίο είναι παρόμοιο με το διάγραμμα ροής που παρουσιάζεται στο Σχήμα 3Β, το οποίο έχει προσαρμοστεί για αυτή τη βελτίωση. Η διαδικασία συνεχίζει όπως περιγράφεται σε σχέση με το Σχήμα 3Β. Ωστόσο, στο βήμα 330, εάν ανιχνευθεί μια διένεξη συντήρησης, τότε στο βήμα 500 προσδιορίζεται κατά πόσο η λειτουργία συντήρησης στην οποία συμβαίνει η διένεξη είναι μια ακύρωση που απευθύνεται σε ένα συγκεκριμένο ASID ή VMID. Εάν όχι, τότε η διαδικασία συνεχίζει στο βήμα 340 όπως πριν όπου εκδίδεται μια αποτυχία TLB. Διαφορετικά, στο βήμα 510 προωθείται η προτεραιότητα των λειτουργιών συντήρησης. Αυτό προκαλεί την ταχύτερη πραγματοποίηση της λειτουργίας συντήρησης. Σε ορισμένες υλοποιήσεις, η προτεραιότητα της λειτουργίας συντήρησης προωθείται σε ένα υψηλότερο επίπεδο ώστε να πραγματοποιείται η επόμενη λειτουργία συντήρησης. Η διαδικασία συνεχίζει στη συνέχεια στο βήμα 340 όπου πραγματοποιείται μια αποτυχία TLB, καταλήγοντας με αυτό τον τρόπο σε έναν περίπατο σελίδων.
Βελτίωση της απόδοσης ασύγχρονης συντήρησης με απόκριση σε μια πλήρη ουρά συντήρησης
Το διάγραμμα ροής του Σχήματος 6 σχετίζεται με παραδείγματα στα οποία σε απόκριση της λήψης της λειτουργίας συντήρησης όταν η ουρά συντήρησης είναι πλήρης, το κύκλωμα συντήρησης προσαρμόζεται ώστε πραγματοποιεί την επιλεγμένη λειτουργία συντήρησης.
Συγκεκριμένα, το Σχήμα 6 σχετίζεται με παραδείγματα στα οποία η επιλογή βασίζεται σε μια λειτουργία συντήρησης στην ουρά συντήρησης η οποία θα διαρκέσει τον ελάχιστο χρόνο για να πραγματοποιηθεί.
Σε ορισμένες περιπτώσεις, μια λειτουργία συντήρησης μπορεί να λαμβάνεται όταν η ουρά με τις λειτουργίες συντήρησης 220 είναι ήδη πλήρης. Σε αυτή την περίπτωση, ο αϊτών θα μπορούσε να εμποδίζεται ή να καθυστερείται μέχρι για παράδειγμα να είναι διαθέσιμος ο χώρος εντός της ουράς 220. Ένας τρόπος αντιμετώπισης αυτού είναι η άμεση πραγματοποίηση από το κύκλωμα συντήρησης 250 μιας από τις λειτουργίες συντήρησης που τηρούνται στην ουρά συντήρησης 220 για παράδειγμα, σε ορισμένες υλοποιήσεις, το κύκλωμα συντήρησης 250 επιλέγει για πραγματοποίηση την ταχύτερη λειτουργία συντήρησης από την ουρά συντήρησης 220 και πραγματοποιεί αμέσως αυτή τη λειτουργία. Για παράδειγμα, όπως δείχνεται στο Σχήμα 6 στο βήμα 600, λαμβάνεται μια λειτουργία συντήρησης. Στο βήμα 610 προσδιορίζεται κατά πόσο η ουρά συντήρησης 220 είναι πλήρης ή όχι. Εάν δεν είναι, τότε η διαδικασία συνεχίζει στο βήμα 670 όπου η νέα λειτουργία συντήρησης προστίθεται στην ουρά. Διαφορετικά, στο βήμα 620, αρχίζει ένας βρόχος εντός του οποίου προσκομίζεται η επόμενη λειτουργία συντήρησης από τις λειτουργίες συντήρησης που τηρούνται στην ουρά συντήρησης 220. Στο βήμα 630 προσδιορίζεται κατά πόσο αυτή η λειτουργία συντήρησης είναι ταχύτερη από την ταχύτερη λειτουργία συντήρησης η οποία έχει προσδιοριστεί μέχρι τώρα. Ως προεπιλογή, εάν δεν έχει εξεταστεί ακόμη κάποια λειτουργία συντήρησης, τότε αυτό θα ισχύει. Σε κάθε περίπτωση, εάν ικανοποιείται αυτή η συνθήκη, τότε στο βήμα 640 η τρέχουσα λειτουργία συντήρησης, η οποία εξετάζεται, ορίζεται ως η τρέχουσα ταχύτερη λειτουργία. Η διαδικασία στη συνέχεια συνεχίζει στο βήμα 650 εάν η τρέχουσα λειτουργία συντήρησης που εξετάζεται δεν είναι ταχύτερη στο βήμα 630 στη συνέχεια η διαδικασία συνεχίζει απευθείας στο βήμα 650. Στο βήμα 650 προσδιορίζεται κατά πόσο υπάρχουν και άλλες λειτουργίες συντήρησης προς εξέταση από την ουρά συντήρησης 220. Εάν υπάρχουν, τότε η διαδικασία επιστρέφει στο βήμα 620 όπου προσκομίζεται η επόμενη λειτουργία συντήρησης. Διαφορετικά, στο βήμα 660, πραγματοποιείται η τρέχουσα ταχύτερη λειτουργία. Η λειτουργία συντήρησης που λήφθηκε πιο πρόσφατα στο βήμα 600 προστίθεται στη συνέχεια στην ουρά συντήρησης 220 στο βήμα 670. Βελτίωση της απόδοσης ασύγχρονης συντήρησης με συνδυασυό των λειτουργιών συντήρησης
Το Σχήμα 7 απεικονίζει ένα παράδειγμα ενός κυκλώματος συνδυασμού 260 για το συνδυασμό ενός πλήθους εγγραφών στην ουρά συντήρησης με βάση μια ή περισσότερες συνθήκες. Για παράδειγμα, σε ορισμένες υλοποιήσεις, το κύκλωμα συνδυασμού 260 συνδυάζει τις γειτονικές διευθύνσεις στον αποθηκευτικό χώρο διευθύνσεων 230. Για παράδειγμα, οι εγγραφές που σχετίζονται με το ίδιο ASID και VMID όπου η διεύθυνση είναι γειτονική. Με αυτό τον τρόπο, είναι δυνατή η συμπύκνωση της ουράς με τις λειτουργίες συντήρησης με αντικατάσταση ενός πλήθους εγγραφών που σχετίζονται με γειτονικές διευθύνσεις με μια μόνο εγγραφή που σχετίζεται με μια περιοχή διευθύνσεων.
Σε ορισμένες υλοποιήσεις, η μια ή οι περισσότερες συνθήκες περιλαμβάνουν: (ϊ) είναι δυνατή η συγχώνευση επικαλυπτόμενων ή γειτονικών περιοχών VA/IPA, (ii) η ακύρωση μέσω VA περιλαμβάνεται σε μια επικαλυπτόμενη ακύρωση μέσω ASID εάν η VA ανήκει στο ASID, (iii) η ακύρωση μέσω ΙΡΑ περιλαμβάνεται σε μια επικαλυπτόμενη ακύρωση μέσω VMID εάν η ΙΡΑ ανήκει στο VMID, και (ίν) η ακύρωση μέσω ASID περιλαμβάνεται σε μια ακύρωση μέσω VMID εάν το ASID ανήκει στο VMID. Αυτές οι συνθήκες βασίζονται στη σχέση ότι μια VA έχει ένα συσχετισμένο ASID, ότι ένα ASID έχει ένα συσχετισμένο VMID και ότι μια ΙΡΑ έχει ένα συσχετισμένο VMID.
Σχετικά με το παράδειγμα του Σχήματος 7, η ουρά αρχικά έχει πέντε λειτουργίες. Οι πρώτες δύο λειτουργίες μπορούν να συγχωνευτούν σε μια μόνο λειτουργία, επειδή σχετίζονται με το ίδιο ASID (1) και το ίδιο VMID (1) και οι διευθύνσεις είναι γειτονικές (η 0x1121 είναι γειτονική της 0x1122). Επομένως η συνθήκη (ί) ισχύει. Αυτές οι λειτουργίες μπορούν επομένως να αντικαθίστανται από μια μόνο λειτουργία ακύρωσης, η οποία κατευθύνεται προς την ακύρωση των διευθύνσεων εντός της περιοχής 0x1121 έως 0x1122 όπου το ASID είναι 1 και το VMID είναι 1. Παρόμοια, οι επόμενες δύο λειτουργίες της αρχικής ουράς λειτουργιών συντήρησης επίσης κατευθύνονται προς το ίδιο ASID (2) και VMID (1) κι επίσης σχετίζονται με γειτονικές διευθύνσεις (η 0x009D είναι γειτονική της 0χ009Ε). Ανάλογα, αυτές μπορούν να συμπυκνώνονται ώστε να δημιουργείται μια μόνο λειτουργία συντήρησης για την ακύρωση της περιοχής 0x009D έως 0χ009Ε για ένα ASID ίσο με 2 και ένα VMID ίσο με 1. Ανάλογα, η συμπυκνωμένη ουρά συντήρησης έχει τρεις εγγραφές. Σε αυτό το παράδειγμα, κάθε μια από τις λειτουργίες συντήρησης σχετίζεται με μια προτεραιότητα. Σε αυτό το παράδειγμα, η προτεραιότητα της νέας εγγραφής ισούται με την υψηλότερη από τις προτεραιότητες των λειτουργιών συντήρησης οι οποίες συνδυάστηκαν. Με αυτό τον τρόπο, μια λειτουργία συντήρησης δε μειώνεται σε προτεραιότητα ως συνέπεια του συνδυασμού της με άλλες λειτουργίες. Σε άλλες υλοποιήσεις, η προτεραιότητα θα μπορούσε να είναι ο μέσος όρος των προτεραιοτήτων όλων των λειτουργιών που απαρτίζουν τη νέα λειτουργία. Θα εκτιμηθεί ότι και άλλες επιλογές είναι διαθέσιμες και θα είναι γνωστές στα έμπειρα άτομα.
Ανάλογα, μπορεί να φανεί ότι η ουρά συντήρησης 220 μπορεί να συμπυκνώνεται, επιτρέποντας με αυτό τον τρόπο την προσθήκη περαιτέρω λειτουργιών συντήρησης στην ουρά συντήρησης 220 χωρίς να απαιτείται καθυστέρηση ή φραγή του αιτούντος. Η διαδικασία συμπύκνωσης δεν προκαλεί την απώλεια κάποιας λειτουργίας συντήρησης. Η διαδικασία συνδυασμού απλά συγχωνεύει τις εγγραφές μεταξύ τους.
Βελτίωση της απόδοσης ασύγχρονης συντήρησης με τη γρήση μιας ουράς πλήρωσης Το Σχήμα 8 απεικονίζει ένα παράδειγμα ενός κυκλώματος ουράς πλήρωσης 800 για την αποθήκευση τουλάχιστον μιας λειτουργίας πλήρωσης για μια νέα μετάφραση στον αποθηκευτικό χώρο διευθύνσεων 230, όπου η θύρα εισόδου 210 προσαρμόζεται ώστε να λαμβάνει τη λειτουργία πλήρωσης, ενώ σε απόκριση η λειτουργία πλήρωσης να έχει τουλάχιστον κάποια επικάλυψη με μια επικαλυπτόμενη λειτουργία συντήρησης στην ουρά συντήρησης, το κύκλωμα ουράς πλήρωσης 800 αποθηκεύει τη λειτουργία πλήρωσης, ενώ εάν η λειτουργία πλήρωσης επικαλύπτει πλήρως τη λειτουργία συντήρησης, η λειτουργία συντήρησης αφαιρείται από την ουρά συντήρησης, διαφορετικά μειώνεται μια προτεραιότητα της επικαλυπτόμενης λειτουργίας συντήρησης.
Όταν μια νέα εγγραφή πρόκειται να προστεθεί στον αποθηκευτικό χώρο διευθύνσεων 230, για παράδειγμα όταν έχει συμβεί ένας περίπατος σε πίνακα σελίδων, μπορεί να υπάρχει μια διένεξη με μια εκκρεμούσα λειτουργία συντήρησης. Ένα παράδειγμα που θα μπορούσε να συμβεί αυτό είναι η περίπτωση στην οποία μια λειτουργία συντήρησης κατευθύνεται να πραγματοποιεί μια ακύρωση σύμφωνα με ένα συγκεκριμένο ASID ακολουθούμενη από μια πλήρωση η οποία θα πραγματοποιεί πλήρωση σε μια συγκεκριμένη χαρτογράφηση. Σε ένα άλλο παράδειγμα, μια ακύρωση σύμφωνα με μια συγκεκριμένη VA και μια πλήρωση για την ίδια VA θα μπορούσαν να εκδίδονται σε παρόμοιους χρόνους. Σε αυτή την περίπτωση, η ακύρωση μπορεί να εγκαταλείπεται και οι εγγραφές μπορούν να συμπληρώνονται απευθείας.
Παρέχοντας μια ουρά πλήρωσης 800 εντός της οποίας είναι δυνατή η αποθήκευση της λειτουργίας πλήρωσης, η λειτουργία πλήρωσης μπορεί να καθυστερείται μέχρι να αντιμετωπίζεται η λειτουργία συντήρησης που προκαλεί διένεξη. Για να προκληθεί η ταχύτερη επίλυση της λειτουργία συντήρησης που προκαλεί διένεξη, είναι δυνατή η αύξηση της προτεραιότητας της λειτουργίας συντήρησης που προκαλεί διένεξη (δηλ. επικάλυψη). Όπως δείχνεται στο Σχήμα 8, όταν λαμβάνεται μια λειτουργία πλήρωσης, αποστέλλεται αρχικά στην ουρά πλήρωσης 800. Σε περίπτωση που το κύκλωμα αναζήτησης 230 παίρνει τη μορφή μιας TLB, η ουρά πλήρωσης 800 θα μπορούσε και αυτή να πάρει τη μορφή μιας μικρότερης TLB. Εδώ, λαμβάνεται υπόψη η ουρά συντήρησης ώστε να προσδιορίζεται κατά πόσο η λειτουργία μπορεί να συνεχίζει απευθείας στο κύκλωμα αναζήτησης 230 ή κατά πόσο η λειτουργία πρέπει να διατηρείται στην ουρά πλήρωσης 800. Η διαδικασία πραγματοποίησης αυτού του προσδιορισμού δείχνεται σε μεγαλύτερη λεπτομέρεια όσον αφορά στο Σχήμα 9. Μόλις ολοκληρωθούν οι λειτουργίες συντήρησης σε διένεξη, κάθε εγγραφή που ήταν σε διένεξη με αυτή τη λειτουργία συντήρησης προωθείται από την ουρά πλήρωσης 800 προς το κύκλωμα αναζήτησης 230. Παρόμοια, οι λειτουργίες συντήρησης που εισέρχονται στην ουρά συντήρησης 220 λαμβάνουν υπόψη την ουρά πλήρωσης 800 ώστε να εξασφαλίζεται ότι οι υφιστάμενες λειτουργίες πλήρωσης θα πραγματοποιούνται από τη λειτουργία συντήρησης. Σε ορισμένες υλοποιήσεις, η λειτουργία συντήρησης μπορεί να μην έχει τη δυνατότητα συνέχειας μέχρι για παράδειγμα να πραγματοποιηθεί η λειτουργία πλήρωσης. Παρόμοια, όταν παρέχεται μια διεύθυνση εισόδου στα πλαίσια μιας λειτουργίας αναζήτησης, αυτό μπορεί να ελέγχεται με την ουρά πλήρωσης 800 όπως και με το κύκλωμα αναζήτησης 230.
Το Σχήμα 9 απεικονίζει ένα παράδειγμα της διαδικασίας διαβούλευσης η οποία συμβαίνει από την ουρά πλήρωσης 800 για παράδειγμα, την ουρά συντήρησης 220. Σε ένα βήμα 900, λαμβάνεται μια λειτουργία πλήρωσης. Σε ένα βήμα 910, λαμβάνεται υπόψη η ουρά συντήρησης 220. Στο βήμα 920, προσδιορίζεται κατά πόσο υπάρχει επικάλυψη μεταξύ κάποιας εγγραφής στην ουρά συντήρησης και της λειτουργίας πλήρωσης. Για παράδειγμα, μπορεί να προσδιορίζεται κατά πόσο κάποια από τις λειτουργίες συντήρησης έχει τη δυνατότητα να επηρεάσει τη λειτουργία πλήρωσης που έχει ληφθεί. Εάν δεν υπάρχει τέτοια επικάλυψη, τότε στο βήμα 930 πραγματοποιείται η λειτουργία πλήρωσης. Αυτό προκαλεί την ενημέρωση μιας ή περισσότερων εγγραφών του κυκλώματος αναζήτησης 230. Η διαδικασία επιστρέφει στη συνέχεια στο βήμα 900. Εναλλακτικά, εάν ανιχνευθεί μια επικάλυψη τότε η λειτουργία πλήρωσης προστίθεται στην ουρά πλήρωσης 800 και η προτεραιότητα της λειτουργίας συντήρησης σε διένεξη αυξάνεται στο βήμα 940. Και πάλι, η διαδικασία επιστρέφει στη συνέχεια στο βήμα 900.
Αυτή η διαδικασία απεικονίζεται στο Σχήμα 10Α στο οποίο η λειτουργία συντήρησης πραγματοποιείται ακολουθούμενη από τη λειτουργία πλήρωσης. Σε αυτό το παράδειγμα, υποτίθεται ότι η λειτουργία συντήρησης δεν έχει ως αποτέλεσμα να επηρεάζεται κάποια από τις εγγραφές στον αποθηκευτικό χώρο διευθύνσεων 230. Ωστόσο, αφού πραγματοποιηθεί η λειτουργία συντήρησης, η λειτουργία πλήρωσης, η οποία πραγματοποιείται επακόλουθα, έχει ως αποτέλεσμα την προσθήκη μιας νέας εγγραφής που δείχνεται με έντονα γράμματα.
Το Σχήμα 10Α επομένως απεικονίζει ένα παράδειγμα σύμφωνα με το οποίο σε απόκριση ολοκλήρωσης της επικαλυπτόμενης λειτουργίας συντήρησης (π.χ. στα πλαίσια των εγγραφών που σαρώνονται), πραγματοποιείται η λειτουργία πλήρωσης στον αποθηκευτικό χώρο διευθύνσεων 230. Ως εναλλακτική, το Σχήμα 10Β απεικονίζει ένα παράδειγμα στο οποίο η λειτουργία πλήρωσης πραγματοποιείται στον αποθηκευτικό χώρο διευθύνσεων 230 κατά την πραγματοποίηση της λειτουργίας συντήρησης. Συγκεκριμένα, η λειτουργία συντήρησης σαρώνει τις εγγραφές του αποθηκευτικού χώρου διευθύνσεων 230. Μετά την πραγματοποίηση της λειτουργίας συντήρησης στη θέση στην οποία η λειτουργία πλήρωσης θα προκαλούσε την εισαγωγή μιας νέας εγγραφής, πραγματοποιείται η λειτουργία πλήρωσης, εισάγοντας με αυτό τον τρόπο τη νέα εγγραφή. Το υπόλοιπο της λειτουργίας συντήρησης μπορεί στη συνέχεια να πραγματοποιείται στις υπόλοιπες εγγραφές. Με αυτό τον τρόπο, η λειτουργία συντήρησης δεν επηρεάζει τη λειτουργία πλήρωσης, εφόσον η λειτουργία πλήρωσης συμβαίνει αφού η λειτουργία συντήρησης επηρεάσει την εγγραφή στην οποία θα συμβεί η λειτουργία πλήρωσης.
Αυτή η προσέγγιση επωφελείται από την αρχή της τοπικότητας όσον αφορά στο γεγονός ότι πραγματοποιούνται ταυτόχρονα πολλές λειτουργίες στον ίδιο χώρο στον αποθηκευτικό χώρο. Αυτό μπορεί να αποτρέψει την ανάγκη επανάληψης της σάρωσης σε κάθε μια από τις εγγραφές του αποθηκευτικού χώρου διευθύνσεων 230 ώστε να εντοπίζεται η εγγραφή στην οποία θα πραγματοποιηθεί η λειτουργία πλήρωσης.
Βελτιώνοντας την απόδοση της ασύγχρονης συντήρησης επιτρέποντας αιτήματα εν μέσω συντήρησης
Το Σχήμα 11 παρέχει ένα παράδειγμα στο οποίο η επιλεγμένη λειτουργία συντήρησης περιλαμβάνει τη σάρωση τουλάχιστον σε ένα τμήμα του αποθηκευτικού χώρου διευθύνσεων 230 και την πραγματοποίηση μιας ενέργειας σε απόκριση της ικανοποίησης μιας συνθήκης, ενώ σε απόκριση της λήψης μιας λειτουργίας πλήρωσης που σχετίζεται με μια διεύθυνση εισόδου, η λειτουργία πλήρωσης πραγματοποιείται όταν η διεύθυνση εισόδου αντιστοιχεί με ένα τμήμα του αποθηκευτικού χώρου διευθύνσεων 230 το οποίο έχει ήδη σαρωθεί όσον αφορά στην επιλεγμένη λειτουργία συντήρησης.
Ανάλογα, κατά τη διάρκεια πραγματοποίησης μιας λειτουργίας συντήρησης μπορεί να είναι δυνατό να επιτραπεί ταυτόχρονα η παροχή μιας διεύθυνσης εξόδου σε απόκριση εισαγωγής μιας διεύθυνσης εισόδου. Συγκεκριμένα, το τμήμα του αποθηκευτικού χώρου διευθύνσεων 230 το οποίο έχει ήδη υποβληθεί στη λειτουργία συντήρησης μπορεί να θεωρείται προσβάσιμο, ενώ το υπόλοιπο τμήμα του αποθηκευτικού χώρου διευθύνσεων 230 θεωρείται μη προσβάσιμο. Με αυτό τον τρόπο, εάν μια διεύθυνση εισόδου σχετίζεται με μια εγγραφή του αποθηκευτικού χώρου διευθύνσεων 230 η οποία έχει ήδη σαρωθεί όσον αφορά στην επιλεγμένη εξελισσόμενη λειτουργία συντήρησης, τότε είναι δυνατή η παροχή της αντίστοιχης διεύθυνσης εξόδου. Εναλλακτικά, εάν η διεύθυνση εισόδου σχετίζεται με ένα τμήμα του αποθηκευτικού χώρου διευθύνσεων 230 το οποίο δεν έχει σαρωθεί όσον αφορά στην επιλεγμένη λειτουργία συντήρησης ή εάν η διεύθυνση εισόδου δε σχετίζεται με οποιαδήποτε από τις εγγραφές στον αποθηκευτικό χώρο διευθύνσεων 230, τότε επιστρέφεται στον αιτούντα μια αποτυχία. Ανάλογα, δεν είναι απαραίτητη η ολοκλήρωση της λειτουργίας συντήρησης για την παροχή των μεταφράσεων. Συνεπώς, αντί της παροχής μιας αποτυχίας, μπορεί να παρέχεται το αποτέλεσμα της μετάφρασης. Παρέχεται ένας απαριθμητής 1000 για τον εντοπισμό του σημείου στον αποθηκευτικό χώρο διευθύνσεων 230 για το οποίο πραγματοποιήθηκε η λειτουργία συντήρησης. Ένας συγκριτής μπορεί να χρησιμοποιείται για να προσδιοριστεί το τμήμα του αποθηκευτικού χώρου διευθύνσεων 230 που θα επηρεαστεί από τη λειτουργία αναζήτησης ή τη λειτουργία πλήρωσης το οποίο έχει ήδη σαρωθεί από τη λειτουργία συντήρησης.
Τα Σχήματα 2 και 11 επομένως παρέχουν επίσης ένα παράδειγμα μιας συσκευής που περιλαμβάνει: ένα κύκλωμα αποθήκευσης 230 για την αποθήκευση ενός πλήθους εγγραφών, όπου το κύκλωμα αποθήκευσης 230 είναι προσαρμοσμένο ώστε να πραγματοποιεί μια αναζήτηση για μια επιλεγμένη εγγραφή σαρώνοντας τουλάχιστον κάποιες από το πλήθος των εγγραφών, ένα κύκλωμα αναφοράς 1000 για την αποθήκευση μιας ένδειξης προς ένα τμήμα του κυκλώματος αποθήκευσης 230 το οποίο απομένει να σαρωθεί στα πλαίσια της αναζήτησης και ένα κύκλωμα επεξεργασίας 240 για την πραγματοποίηση μιας λειτουργίας η οποία θα επηρεάσει μια εγγραφή από το πλήθος εγγραφών σε απόκριση της απουσίας της εν λόγω μιας εγγραφής από το πλήθος εγγραφών από το τμήμα του κυκλώματος αποθήκευσης 230 το οποίο απομένει ακόμη να σαρωθεί στα πλαίσια της αναζήτησης όπως υποδεικνύεται από το κύκλωμα αναφοράς. Σε αυτή την περίπτωση, το τμήμα του κυκλώματος αποθήκευσης 230 το οποίο απομένει ακόμη να σαρωθεί υποδεικνύεται από τον απαριθμητή 1000, ο οποίος ενημερώνεται κατά τη διάρκεια της αναζήτησης. Ας σημειωθεί ότι σε ορισμένες υλοποιήσεις, μόνο ένα υποσύνολο πιθανών εγγραφών αποτελεί τμήμα της διαδικασίας αναζήτησης, ακόμη και από την αρχή. Για παράδειγμα, στην περίπτωση στην οποία το κύκλωμα αποθήκευσης 230 χρησιμοποιεί έναν πίνακα hash, αφού προσδιοριστεί η κατά προσέγγιση θέση της εγγραφής, μόνο ένα υποσύνολο εγγραφών πρέπει να αναζητείται ώστε να βρεθεί η αντίστοιχη εγγραφή. Με αυτό τον τρόπο, είναι δυνατή η εισαγωγή εγγραφών στο κύκλωμα αποθήκευσης ακόμη και κατά την πραγματοποίηση μιας αναζήτησης, για παράδειγμα.
Κλοπή αποθηκευτικού χώρου
Το Σχήμα 12 απεικονίζει μια συσκευή 1200 σύμφωνα με ορισμένες υλοποιήσεις στις οποίες ένα στοιχείο επεξεργαστή 1220 παρέχει διευθύνσεις εισόδου στη θύρα εισόδου 1210. Η διεύθυνσης εισόδου παρέχεται σε μια Translation Lookaside Buffer (TLB) 1230, η οποία αποθηκεύει μια μετάφραση μεταξύ της διεύθυνσης εισόδου και της διεύθυνσης εξόδου σε ένα χώρο εξόδου. Μια θύρα διευθύνσεων εξόδου 1240 επιτρέπει την εξαγωγή της διεύθυνσης εξόδου (ή μια περαιτέρω μετάφραση της διεύθυνσης εξόδου) ώστε να πραγματοποιείται πρόσβαση σε μια μνήμη 1290 σε αυτή τη διεύθυνση. Ταυτόχρονα, το στοιχείο επεξεργαστή 1220 μπορεί να λαμβάνει δεδομένα μέσω μιας θύρας δεδομένων εισόδου 1250. Σε ορισμένες υλοποιήσεις (όπως αυτή που δείχνεται στο Σχήμα 12), η θύρα δεδομένων εισόδου είναι από τη μνήμη 1290 προς τη συσκευή 1200 ώστε όταν πραγματοποιείται πρόσβαση στη μνήμη 1290, τα δεδομένα σε αυτή τη θέση στη μνήμη 1290 παρέχονται και πάλι στη συσκευή. Αυτά τα δεδομένα μπορούν να αποθηκεύονται σε μια κρυφή μνήμη 1260. π.χ. υποστηριζόμενη από μια μνήμη DRAM. Τέλος, υπάρχει μια θύρα δεδομένων εξόδου 1270 από την οποία εξάγονται τα δεδομένα. Σε ορισμένες υλοποιήσεις, όπως αυτή που δείχνεται στο Σχήμα 12, η θύρα εξόδου δεδομένων παρέχεται ώστε να επιτρέπει στη συσκευή 1200 να εξάγει τα δεδομένα και πάλι προς το στοιχείο επεξεργαστή. Το κύκλωμα ελέγχου 1280 χρησιμοποιείται για τον έλεγχο της TLB 1230 και της 1260. Περαιτέρω, μολονότι η κρυφή μνήμη 1260 χρησιμοποιείται για την αποθήκευση δεδομένων, χρησιμοποιείται και για την αποθήκευση ορισμένων μεταφράσεων. Με αυτό τον τρόπο, η TLB 1230 “κλέβει” αποθηκευτικό χώρο από την κρυφή μνήμη 1260 για την αποθήκευση μεταφράσεων, π.χ. όταν η TLB 1230 δεν μπορεί με άλλο τρόπο να αποθηκεύει τη μετάφραση. Ας σημειωθεί ότι δεν υπάρχει κάποια δέσμευση η θύρα δεδομένων εισόδου 1250 και η θύρα δεδομένων εξόδου να διατάσσεται με τον τρόπο που διατάσσεται. Για παράδειγμα, τα δεδομένα θα μπορούσαν να λαμβάνονται από το στοιχείο επεξεργαστή 1220 και να εξάγονται στη μνήμη 1290. Πράγματι, τα δεδομένα θα μπορούσαν να λαμβάνονται και να εξάγονται και προς τις δύο κατευθύνσεις ως επακόλουθο τόσο ανάγνωσης όσο και εγγραφής των δεδομένων στη μνήμη 1290. Περαιτέρω, οι διάφορες θύρες 1210, 1240, 1250, 1270 θα μπορούσαν να συνδυάζονται - είτε συνδυάζοντας τις θύρες εισόδου 1210, 1250 μαζί και τις θύρες εξόδου 1240, 1270 μαζί είτε συνδυάζοντας τις θύρες επεξεργαστή 1210, 1270 μαζί και τις θύρες μνήμης 1240, 1250 μαζί ή ακόμη και συνδυάζοντας και τις τέσσερις θύρες 1210, 1240, 1250, 1270 μαζί.
Συνεπώς, το Σχήμα 12 παρέχει ένα παράδειγμα μιας συσκευής 1200 η οποία περιλαμβάνει μια θύρα διεύθυνσης εισόδου 1210 για τη λήψη μιας διεύθυνσης εισόδου από το κύκλωμα του επεξεργαστή 1220, έναν αποθηκευτικό χώρο διευθύνσεων 1230 για την αποθήκευση μιας μετάφρασης μεταξύ της διεύθυνσης εισόδου και της διεύθυνσης εξόδου σε έναν αποθηκευτικό χώρο διευθύνσεων εξόδου, μια θύρα διευθύνσεων εξόδου 1240 για την εξαγωγή της διεύθυνσης εξόδου, μια θύρα διευθύνσεων εισόδου 1250 για τη λήψη δεδομένων, ένας αποθηκευτικός χώρος δεδομένων 1260 για την αποθήκευση των δεδομένων σε μια θέση από το πλήθος των θέσεων, μια θύρα δεδομένων εξόδου 1270 για την εξαγωγή των δεδομένων που είναι αποθηκευμένα σε έναν αποθηκευτικό χώρο δεδομένων 1260 και ένα κύκλωμα ελέγχου 1280 το οποίο προκαλεί την αποθήκευση από τον αποθηκευτικό χώρο δεδομένων 1260 της μετάφρασης μεταξύ της διεύθυνσης εισόδου και της διεύθυνσης εξόδου, όπου το κύκλωμα ελέγχου είναι προσαρμοσμένο ώστε να εκδίδει ένα σήμα προκαλεί έναν περίπατο σελίδων σε απόκριση της απουσίας της διεύθυνσης εισόδου από τον αποθηκευτικό χώρο διευθύνσεων και τον αποθηκευτικό χώρο δεδομένων.
Με αυτό τον τρόπο, μολονότι η ποσότητα του χώρου που είναι διαθέσιμη για μεταφράσεις μπορεί να αυξάνεται, το μέγεθος του ίδιου του αποθηκευτικού χώρου διευθύνσεων 1230 παραμένει αμετάβλητο. Συνεπώς, ο χρόνος που απαιτείται για την αναζήτηση μιας μετάφρασης στον αποθηκευτικό χώρο διευθύνσεων 1230 δε χρειάζεται να αλλάξει σημαντικά. Συγκεκριμένα, εάν είναι γνωστό ότι η μετάφραση είναι αποθηκευμένη στην TLB 1230 τότε απαιτείται μικρός ή μηδενικός επιπλέον χρόνος πρόσβασης. Αυτό θα μπορούσε να επιτυγχάνεται χρησιμοποιώντας, για παράδειγμα, ένας προγνώστης, ο οποίος χρησιμοποιείται για να εικάζει σχετικά με τη θέση εύρεσης της μετάφρασης. Εάν η θέση είναι άγνωστη τότε η πρόσβαση στην TLB 1230 και στην κρυφή μνήμη 1260 θα μπορούσε να παραλληλίζεται ώστε να αναζητείται ταυτόχρονα μια μετάφραση τόσο στον αποθηκευτικό χώρο διευθύνσεων 1230 όσο και στον αποθηκευτικό χώρο δεδομένων 1260. Και πάλι, αυτό μπορεί να περιορίζει σε μεγάλο βαθμό κάθε αυξημένο χρόνο αναζήτησης που απαιτείται.
Παρόμοια, το μέγεθος του κυκλώματος δε χρειάζεται να αυξηθεί σημαντικά ως αποτέλεσμα αυτής της αλλαγής. Συγκεκριμένα, εφόσον το μέγεθος του αποθηκευτικού χώρου διευθύνσεων 1230 παραμένει αμετάβλητο και εφόσον η μετάφραση αποθηκεύεται στο χώρο αποθήκευσης δεδομένων 1260 ο οποίος θα μπορούσε διαφορετικά να αναμένεται ότι υπάρχει σε ένα τέτοιο κύκλωμα, ο αποθηκευτικός χώρος που “κλέβεται” για την αποθήκευση της μετάφρασης δεν καθιστά αναγκαία την προσθήκη επιπλέον υλικού. Συνεπώς, ο συνολικός χώρος κυκλώματος της συσκευής 1200 δε χρειάζεται να αυξηθεί. Συνεπώς, είναι δυνατή η επίτευξη μιας βελτιωμένης απόδοσης χωρίς ανάγκη για αύξηση του χώρου κυκλώματος. Ας σημειωθεί ότι το Σχήμα 12 παρέχει επίσης ένα παράδειγμα στο οποίο ο αποθηκευτικός χώρος δεδομένων 1260 και ο αποθηκευτικός χώρος διευθύνσεων 1230 είναι ξεχωριστές μνήμες.
Συγκεκριμένα, η Translation Lookaside Buffer (TLB) 1230 και η κρυφή μνήμη δεδομένων 1260 είναι ξεχωριστές συσκευές στο κύκλωμα δεδομένων. Σε ορισμένες υλοποιήσεις, κάθε μια από αυτές τις συσκευές θα μπορούσε να έχει το δικό της ανεξάρτητο κύκλωμα ελέγχου αντί ή επιπλέον του δικού της κυκλώματος ελέγχου 1280. Ωστόσο, δεν απαιτείται ο αποθηκευτικός χώρος δεδομένων και ο αποθηκευτικός χώρος διευθύνσεων να είναι ξεχωριστές μνήμες.
Συγκεκριμένα, σε ορισμένες υλοποιήσεις, ο αποθηκευτικός χώρος διευθύνσεων 1230 και ο αποθηκευτικός χώρος δεδομένων 1260 μπορεί να είναι η ίδια μνήμη και λόγω αυτού να συνδυάζουν την ίδια περιοχή μνήμης για πολλούς σκοπούς.
Το Σχήμα 13 δείχνει ένα παράδειγμα στο οποίο το πλήθος των θέσεων παίρνει τη μορφή μιας συσχετιστικής ως προς ένα σύνολο μνήμης n-δρόμων, ενώ το κύκλωμα ελέγχου 1280 είναι προσαρμοσμένο ώστε να προκαλεί την αποθήκευση της μετάφρασης από τον αποθηκευτικό χώρο δεδομένων 1260 σε έναν ή περισσότερους επαναπροσδιορισμένους δρόμους από τους n-δρόμους. Σε μια συσχετιστική ως προς ένα σύνολο μνήμη, υπάρχει ένας αριθμός θέσεων στις οποίες είναι δυνατή η αποθήκευση ενός στοιχείου δεδομένων. Κάθε τέτοια θέση αναφέρεται ως “δρόμος". Αυτό μπορεί να προκύψει, για παράδειγμα, ως αποτέλεσμα της σημαντικά μικρότερης ποσότητας αποθηκευτικού χώρου στη συσχετιστική ως προς ένα σύνολο μνήμη σε σχέση με το προς αποθήκευση σύνολο δεδομένων. Υλοποιώντας τη μνήμη με τέτοιο τρόπο ώστε να υπάρχει ένας αριθμός δρόμων, είναι δυνατή η αύξηση της ευελιξίας της μνήμης. Για παράδειγμα, θα μπορούσε να πραγματοποιηθεί ένα hash στη διεύθυνση ώστε να εντοπιστεί η θέση στην οποία θα πρέπει να αποθηκευτεί. Σε περίπτωση που πολλά στοιχεία δεδομένων επιθυμούν να αποθηκευτούν στην ίδια θέση, παρέχεται ένας αριθμός 'δρόμων’ ώστε να είναι δυνατή η αποθήκευση ενός αριθμού στοιχείων δεδομένων στην ίδια τιμή hash. Στη μια περίπτωση, η μνήμη ‘χαρτογραφείται απευθείας’, γεγονός που σημαίνει ότι υπάρχει ακριβώς μια θέση στην οποία μπορούν να αποθηκεύονται τα δεδομένα. Στην άλλη περίπτωση, η μνήμη είναι πλήρως συσχετιστική, γεγονός που σημαίνει ότι τα δεδομένα μπορούν να αποθηκεύονται οπουδήποτε. Στο παράδειγμα του Σχήματος 13, το η είναι 5, επομένως η μνήμη είναι συσχετιστική 5-δρόμων. Συνεπώς, για ένα δεδομένο στοιχείο δεδομένων, υπάρχουν πέντε διαφορετικές θέσεις στις οποίες μπορούν να αποθηκεύονται τα δεδομένα. Κάθε δρόμος αποτελείται επίσης από 11 δείκτες (αναφέρονται συχνά ως σύνολα) επιτρέποντας την αποθήκευση 11 διαφορετικών στοιχείων δεδομένων εντός κάθε δρόμου. Στην περίπτωση του Σχήματος 13, δύο από τους δρόμους (με σκίαση) έχουν επαναπροσδιοριστεί ώστε να μπορούν να χρησιμοποιούνται από την translation lookaside buffer TLB 1230. Τα δεδομένα τα οποία κανονικά θα αποθηκεύονταν σε έναν από αυτούς τους επαναπροσδιορισμένους δρόμους, εκχωρούνται αντίθετα σε έναν από τους άλλους δρόμους.
Ένας άλλος τρόπος να δίνεται η δυνατότητα επαναπροσδιορισμού του αποθηκευτικού χώρου δεδομένων είναι μέσω της χρήσης διευθύνσεων. Το Σχήμα 14 απεικονίζει ένα παράδειγμα στο οποίο το πλήθος των θέσεων παίρνει τη μορφή μιας συσχετιστικής ως προς ένα σύνολο μνήμης n-δρόμων, ενώ το κύκλωμα ελέγχου 1280 είναι προσαρμοσμένο ώστε να προκαλεί την αποθήκευση της μετάφρασης από τον αποθηκευτικό χώρο δεδομένων 1260 σε ένα ή περισσότερα επαναπροσδιορισμένα σύνολα 1410 της μνήμης. Σε αυτό το παράδειγμα, ένας δείκτης περιοχής 1400 υποδεικνύει μια διεύθυνση η οποία σημειώνει ένα όριο μεταξύ των μεταφράσεων που αποθηκεύονται στον αποθηκευτικό χώρο διευθύνσεων 1230 και των δεδομένων που αποθηκεύονται στον αποθηκευτικό χώρο δεδομένων 1260. Σε αυτό το παράδειγμα, το όριο δείχνεται να μετακινείται, καθώς τα σύνολα εντός του αποθηκευτικού χώρου δεδομένων 1260 επαναπροσδιορίζονται για την αποθήκευση των μεταφράσεων.
Συνεπώς, όταν παρέχεται μια διεύθυνση εισόδου (και εξόδου) από το κύκλωμα επεξεργαστή, για τη δημιουργία μιας νέας μετάφρασης, η μετάφραση μπορεί να αποθηκεύεται σε αυτή την επαναπροσδιορισμένη περιοχή. Θα εκτιμηθεί το γεγονός ότι καθώς επαναπροσδιορίζονται τα σύνολα, μια λειτουργία hash, η οποία χρησιμοποιείται για δεικτοδότηση στον αποθηκευτικό χώρο δεδομένων 1260, πρέπει να προσαρμόζεται ώστε να μην αναφέρεται πια στα μη επαναπροσδιορισμένα σύνολα. Στο μεταξύ, τα υπόλοιπα σύνολα 1420 του αποθηκευτικού χώρου δεδομένων 1260 μπορούν να χρησιμοποιούνται για την αποθήκευση δεδομένων. Σε αυτό το όριο μπορεί να παραπέμπει, για παράδειγμα, ένας δείκτης συνόλου. Με αυτό τον τρόπο, το Σχήμα 14 απεικονίζει ένα παράδειγμα στο οποίο ο αποθηκευτικός χώρος δεδομένων 1260 και ο αποθηκευτικός χώρος διευθύνσεων 1230 είναι διαφορετικές περιοχές εντός της ίδιας μνήμης. Το Σχήμα 14 επομένως παρέχει επίσης ένα παράδειγμα ενός δείκτη περιοχής 1400 ο οποίος υποδεικνύει ένα όριο μεταξύ μιας περιοχής που χρησιμοποιείται από τον αποθηκευτικό χώρο διευθύνσεων 1410 και μιας περιοχής που χρησιμοποιείται από τον αποθηκευτικό χώρο δεδομένων 1420. Για τους σκοπούς του υπολοίπου της παρούσας περιγραφής, μολονότι θα χρησιμοποιούνται οι όροι ‘αποθηκευτικός χώρος διευθύνσεων’ και 'αποθηκευτικός χώρος δεδομένων’, αυτό δε θα πρέπει να ερμηνεύεται ως απαίτηση για ξεχωριστές μνήμες.
Περαιτέρω, μολονότι τα παρακάτω παραδείγματα μπορεί να αναφέρονται σε ένα δρόμο, μια θέση αποθήκευσης ή μια διεύθυνση, τα έμπειρα άτομα θα εκτιμούσαν το γεγονός ότι η χρήση του επαναπροσδιορισμού δρόμων ή του επαναπροσδιορισμού συνόλων είναι εναλλάξιμες τεχνικές. Το Σχήμα 14 συνεπώς απεικονίζει μια μέθοδο η οποία περιλαμβάνει τα εξής: τη λήψη μιας διεύθυνσης εισόδου από το κύκλωμα επεξεργαστή, την αποθήκευση, σε έναν αποθηκευτικό χώρο διευθύνσεων 1230, μιας μετάφρασης μεταξύ της διεύθυνσης εισόδου και μιας διεύθυνσης εξόδου σε ένα χώρο διευθύνσεων εξόδου, τη λήψη δεδομένων, την αποθήκευση των δεδομένων σε έναν αποθηκευτικό χώρο δεδομένων 1260, τον εξαναγκασμό του αποθηκευτικού χώρου δεδομένων 1260 να αποθηκεύει τη μετάφραση μεταξύ της διεύθυνσης εισόδου και της διεύθυνσης εξόδου και σε απόκριση της απουσίας της διεύθυνσης εισόδου από τον αποθηκευτικό χώρο διευθύνσεων και τον αποθηκευτικό χώρο δεδομένων, την έκδοση ενός σήματος ώστε να προκαλεί έναν περίπατο σελίδων.
Κλοπή αποθηκευτικού χώρου χρησιμοποιώντας πολιτικές
Το Σχήμα 15 δείχνει ένα παράδειγμα μιας πολιτικής σύμφωνα με ορισμένες υλοποιήσεις. Συγκεκριμένα, το Σχήμα 15 δείχνει ένα παράδειγμα στο οποίο μια πολιτική υποδηλώνει για κάθε μια θέση από το πλήθος των θέσεων, μια προτίμηση για την αποθήκευση μιας μετάφρασης σε σχέση με τα δεδομένα. Η πολιτική δείχνεται με τη μορφή ενός διαγράμματος ροής 1500. Στο βήμα 1510, λαμβάνεται μια νέα μετάφραση. Στο βήμα 1520 προσδιορίζεται μια θέση αποθήκευσης w με βάση τη μετάφραση. Αυτό θα μπορούσε να υπολογίζεται με βάση την πραγματοποίηση μιας λειτουργίας hash, όπως η πραγματοποίηση μιας λειτουργίας μεγέθους στη διεύθυνση εισόδου ή στη διεύθυνση εξόδου η οποία είναι το υποκείμενο της μετάφρασης. Στο βήμα 1530, προσδιορίζεται κατά πόσο το ποσοστό αποτυχίας της τρέχουσας διεύθυνσης είναι μεγαλύτερο από μια τιμή χ για τη θέση αποθήκευσης w 1560. Στο παράδειγμα του Σχήματος 15, η τιμή χ για την w είναι 5 από 1000. Ανάλογα, εάν το ποσοστό αποτυχίας σε αυτή την περίπτωση είναι μεγαλύτερο από 5 για κάθε 1000 εντολές που εκτελούνται από το κύκλωμα επεξεργαστή 1220, τότε η διαδικασία συνεχίζει στο βήμα 1540, όπου η μετάφραση αποθηκεύεται (π.χ. στον αποθηκευτικό χώρο δεδομένων 1260). Εάν όχι, τότε στο βήμα 1550, προσδιορίζεται κατά πόσο το ποσοστό αποτυχίας δεδομένων είναι μεγαλύτερο από μια τιμή y για τη θέση αποθήκευσης w 1570. Σε αυτή την περίπτωση, η τιμή ορίζεται ίση με 30 από 1000. Ανάλογα, εάν το ποσοστό αποτυχίας του αποθηκευτικού χώρου δεδομένων είναι μεγαλύτερο από 30 για κάθε 1000 εντολές που εκτελούνται από το κύκλωμα επεξεργαστή 1220, τότε η διαδικασία συνεχίζει στο βήμα 1540, όπου η μετάφραση αποθηκεύεται στον αποθηκευτικό χώρο δεδομένων 1260. Εναλλακτικά, η διαδικασία συνεχίζει στο βήμα 1555, όπου προσδιορίζεται κατά πόσο το ποσοστό πρόσβασης αποθηκευτικού χώρου διευθύνσεων είναι μεγαλύτερο από μια τιμή z για τη θέση αποθήκευσης w 1580. Σε αυτή την περίπτωση, η τιμή ορίζεται στο 3 από 4. Ανάλογα, εάν το ποσοστό πρόσβασης για τον αποθηκευτικό χώρο διευθύνσεων είναι μεγαλύτερο από 3 από τις 4 εντολές που εκτελούνται από το κύκλωμα του επεξεργαστή 1220, τότε η διαδικασία συνεχίζει στο βήμα 1540, όπου η μετάφραση αποθηκεύεται στον αποθηκευτικό χώρο δεδομένων 1260. Εναλλακτικά, η διαδικασία επιστρέφει στο 1510. Με άλλα λόγια, η μετάφραση δεν αποθηκεύεται. Σε αυτό το παράδειγμα, η μετάφραση αποθηκεύεται στον αποθηκευτικό χώρο δεδομένων ως αποτέλεσμα οποιοσδήποτε από τις τρεις συνθήκες που ικανοποιούνται. Η πρώτη είναι ότι το ποσοστό αποτυχίας διευθύνσεων είναι μεγαλύτερο από μια πρώτη μεταβλητή χ. Σε αυτό το παράδειγμα, η τιμή του χ δίδεται ως 5 ανά 1000 εντολές που εκτελούνται από το κύκλωμα επεξεργαστή 1220. Ωστόσο σε ένα άλλο σύστημα, αυτή η τιμή θα μπορούσε να είναι για παράδειγμα 10 αποτυχίες ανά 1000 εντολές που εκτελούνται. Ένα υψηλό ποσοστό αποτυχιών αποθηκευτικού χώρου διευθύνσεων μπορεί να υποδηλώνει μια ανεπάρκεια που συμβαίνει στο σύστημα.
Ανάλογα, όταν το ποσοστό αποτυχίας του αποθηκευτικού χώρου διευθύνσεων φτάσει ένα ορισμένο σημείο, γίνεται πιο επιθυμητή η αποθήκευση μεταφράσεων με σκοπό την αύξηση της απόδοσης του συστήματος. Η δεύτερη συνθήκη που μπορεί να ικανοποιείται ώστε να αποθηκεύεται η μετάφραση είναι ότι το ποσοστό αποτυχίας δεδομένων είναι μεγαλύτερο από μια μεταβλητή y. Σε αυτό το παράδειγμα η μεταβλητή y για τη θέση αποθήκευσης w ισούται με 30 ανά 1000 εντολές που εκτελούνται. Ωστόσο, σε ένα άλλο σύστημα, αυτό θα μπορούσε να ισούται με 40 αποτυχίες ανά 1000 εντολές. Ένας μεγάλος αριθμός αποτυχιών όσον αφορά στον αποθηκευτικό χώρο δεδομένων υποδηλώνει ότι υφίσταται κακή θέση δεδομένων στις εντολές που εκτελούνται. Ανάλογα, ο χώρος ο οποίος συνήθως χρησιμοποιείται για την αποθήκευση δεδομένων μπορεί να χρησιμοποιείται καλύτερα αντίθετα για την αποθήκευση μεταφράσεων. Συνεπώς, όταν το ποσοστό αποθηκευτικού χώρου δεδομένων φτάσει ένα ορισμένο σημείο, μπορεί να είναι πιο επιθυμητή η αποθήκευση της μετάφρασης. Η τρίτη συνθήκη που μπορεί να ικανοποιείται με σκοπό την αποθήκευση της μετάφρασης είναι ότι το ποσοστό πρόσβασης του αποθηκευτικού χώρου διευθύνσεων είναι μεγαλύτερο από μια μεταβλητή z. Σε αυτό το παράδειγμα, η μεταβλητή z για τη θέση αποθήκευσης w ισούται με 3 ανά 4 εντολές που εκτελούνται. Ένα μεγάλο ποσοστό πρόσβασης υποδηλώνει ότι θα μπορούσε να υπάρξει διεκδίκηση για μια από τις συσκευές αποθήκευσης, ενώ θα μπορούσε επομένως να είναι επιθυμητός ο καταμερισμός του φορτίου εργασίας με την αποθήκευση των δεδομένων στον αποθηκευτικό χώρο δεδομένων αντίθετα.
Το Σχήμα 15 απεικονίζει επίσης ένα παράδειγμα στο οποίο η πολιτική αντικατάστασης μπορεί να διαμορφώνεται δυναμικά. Συγκεκριμένα, οι τιμές των χ, y και z για την w αποθηκεύονται στους καταχωρητές 1560, 1270 και 1580, αντίστοιχα. Με αυτό τον τρόπο, είναι δυνατή η μεταβολή της προτίμησης για την αποθήκευση μεταφράσεων παρά δεδομένων για τη θέση αποθήκευσης w. Θα εκτιμηθεί φυσικά, ότι οι γενικές τιμές για τα χ, y και z θα μπορούσαν επίσης να ορίζονται, οι οποίες θα ίσχυαν σε όλες τις θέσεις αποθήκευσης. Το Σχήμα 15 παρέχει επίσης ένα παράδειγμα του σημείου προσαρμογής του κυκλώματος ελέγχου 1280 ώστε να προκαλεί την αποθήκευση της μετάφρασης μεταξύ της διεύθυνσης εισόδου και της διεύθυνσης εξόδου από τον αποθηκευτικό χώρο δεδομένων 1260 σε εξάρτηση από τουλάχιστον μια πρώτη συνθήκη. Συγκεκριμένα, το Σχήμα 15 απεικονίζει ένα παράδειγμα από ποιο σημείο της λίστας είναι η πρώτη συνθήκη, η οποία περιλαμβάνει: ένα ποσοστό αποτυχίας του αποθηκευτικού χώρου διευθύνσεων 1230, ένα ποσοστό επιτυχίας του αποθηκευτικού χώρου διευθύνσεων 1230, ένα ποσοστό πρόσβασης του αποθηκευτικού χώρου διευθύνσεων 1230, ένα ποσοστό αποτυχίας του αποθηκευτικού χώρου δεδομένων 1260, ένα ποσοστό επιτυχίας του αποθηκευτικού χώρου δεδομένων 1260 και ένα ποσοστό πρόσβασης του αποθηκευτικού χώρου δεδομένων 1260.
Θα εκτιμηθεί ότι σε ορισμένες άλλες υλοποιήσεις, οι συνθήκες στα βήματα 1530, 1550 και 1555 θα μπορούσαν να αντιστραφούν δοκιμάζοντας μια τιμή μικρότερη από μια προκαθορισμένη σταθερά. Στην περίπτωση των δοκιμών στα βήματα 1530 και 1550, η δοκιμή θα μπορούσε να είναι για μια τιμή μεγαλύτερη από μια προκαθορισμένη σταθερά παρά μικρότερη από. Επιπλέον, στην περίπτωση της δοκιμής στο βήμα 1555, το ποσοστό πρόσβασης θα μπορούσε να λαμβάνει υπόψη το ποσοστό πρόσβασης του αποθηκευτικού χώρου δεδομένων. Αντί αυτού ή επιπλέον, θα μπορούσαν να λαμβάνονται υπόψη επίσης και άλλοι δείκτες μέτρησης. Για παράδειγμα, ένας άλλος δείκτης μέτρησης που θα μπορούσε να χρησιμοποιείται είναι ο αριθμός των αποτυχιών, επιτυχιών ή προσβάσεων σε έναν αριθμό κύκλων ρολογιού.
Το Σχήμα 16 παρέχει ένα παράδειγμα στο οποίο το κύκλωμα ελέγχου 1280 προσαρμόζεται ώστε να προκαλεί την αποθήκευση της μετάφρασης μεταξύ της διεύθυνσης εισόδου και της διεύθυνσης εξόδου σε ένα τμήμα του αποθηκευτικού χώρου δεδομένων 1260. Σε αυτό το παράδειγμα, ο αποθηκευτικός χώρος δεδομένων 1260 είναι μια κρυφή μνήμη. Συγκεκριμένα, ο αποθηκευτικός χώρος δεδομένων 1260 είναι μια συσχετιστική κρυφή μνήμη 5-δρόμων, με κάθε δρόμο να περιλαμβάνει 11 θέσεις αποθήκευσης. Το τμήμα του αποθηκευτικού χώρου δεδομένων 1260 στο οποίο αποθηκεύεται η μετάφραση δείχνεται με γκρι χρώμα.
Συγκεκριμένα, ας σημειωθεί ότι ο αριθμός των δρόμων διαφέρει για κάθε θέση αποθήκευσης. Γ ια παράδειγμα, μια πρώτη θέση αποθήκευσης 1650 έχει μόνο ένα δρόμο εκχωρημένο για την αποθήκευση της μετάφρασης, όπως καθορίζεται από έναν πρώτο δείκτη 1600, ο οποίος εξετάζει ένα ποσοστό αποτυχίας του αποθηκευτικού χώρου δεδομένων και ένα ποσοστό αποτυχίας του αποθηκευτικού χώρου διευθύνσεων σε ένα χρόνο όταν μια μετάφραση εξετάζεται για αποθήκευση σε αυτή τη θέση 1650. Μια δεύτερη θέση αποθήκευσης 1660 έχει τέσσερις δρόμους εκχωρημένους στον αποθηκευτικό χώρο της μετάφρασης όπως καθορίζεται από ένα δεύτερο δείκτη 1610, ο οποίος και πάλι εξετάζει ένα ποσοστό αποτυχίας του αποθηκευτικού χώρου δεδομένων και ένα ποσοστό αποτυχίας του αποθηκευτικού χώρου διευθύνσεων όταν μια μετάφραση εξετάζεται για αποθήκευση σε αυτή τη θέση 1660. Με αυτό τον τρόπο, το Σχήμα 16 είναι ένα παράδειγμα στο οποίο ένα μέγεθος του τμήματος εξαρτάται σε μια τουλάχιστον δεύτερη συνθήκη. Συγκεκριμένα, το Σχήμα 16 δείχνει ένα παράδειγμα στο οποίο η δεύτερη συνθήκη είναι από τη λίστα που περιλαμβάνει: ένα ποσοστό αποτυχίας του αποθηκευτικού χώρου διευθύνσεων 1230, ένα ποσοστό επιτυχίας του αποθηκευτικού χώρου διευθύνσεων 1230, ένα ποσοστό πρόσβασης του αποθηκευτικού χώρου διευθύνσεων 1230, ένα ποσοστό αποτυχίας του αποθηκευτικού χώρου δεδομένων 1260, ένα ποσοστό επιτυχίας του αποθηκευτικού χώρου δεδομένων 1260 και ένα ποσοστό πρόσβασης του αποθηκευτικού χώρου δεδομένων 1260. Θα εκτιμηθεί ότι εφόσον το ποσοστό αποτυχίας του αποθηκευτικού χώρου δεδομένων και το ποσοστό αποτυχίας του αποθηκευτικού χώρου διευθύνσεων αλλάζουν με το χρόνο, οι διάφορες θέσεις αποθήκευσης μπορεί να καταλήγουν με διαφορετικές ποσότητες αποθηκευτικού χώρου εκχωρημένες για μεταφράσεις. Αυτό παρέχει ευελιξία ώστε εάν ένας μεγάλος αριθμός μεταφράσεων συμβεί σε μια χρονική στιγμή κατά την οποία τα ποσοστά αποτυχίας είναι υψηλά, τότε είναι δυνατή η παροχή αποθηκευτικού χώρου για αυτές τις μεταφράσεις ανεξάρτητα του σημείου της μνήμης στο οποίο πρόκειται να τοποθετηθούν.
Διαδικασίες κλοπής πρόσβασης σε αποθηκευτικό χώρο
Το Σχήμα 17Α απεικονίζει ένα παράδειγμα στο οποίο σε απόκριση μιας αποτυχίας της διεύθυνσης εισόδου στον αποθηκευτικό χώρο διευθύνσεων 1230, ένα αίτημα ανάγνωσης αποστέλλεται στον αποθηκευτικό χώρο δεδομένων 1260 για τη μετάφραση. Συγκεκριμένα, ένα αίτημα λαμβάνεται στην TLB 1230, από το κύκλωμα επεξεργασίας 1220. Το αίτημα περιλαμβάνει μια διεύθυνση εισόδου για την οποία είναι επιθυμητή η αντίστοιχη διεύθυνση εξόδου. Εάν μια τέτοια μετάφραση βρεθεί στην TLB 1230, τότε συμβαίνει μια “επιτυχία", ενώ η διεύθυνση εξόδου προωθείται και πάλι στο κύκλωμα επεξεργασίας 1220. Εάν όχι, τότε συμβαίνει μια “αποτυχία", ενώ το αίτημα προωθείται στην κρυφή μνήμη 1260, η οποία σε ορισμένες υλοποιήσεις είναι μια Κρυφή Μνήμη Τελευταίου Επιπέδου (Last Level Cache ή LLC). Εδώ, στο τμήμα της κρυφής μνήμης 1260 το οποίο “κλέβεται” για χρήση από την TLB 1230 πραγματοποιείται αναζήτηση για τη διεύθυνση εισόδου. Εάν συμβεί μια “επιτυχία", τότε η αιτηθείσα διεύθυνση εξόδου προωθείται και πάλι στο κύκλωμα επεξεργασίας 1220.
Διαφορετικά, συμβαίνει μια “αποτυχία”, ενώ λόγω του γεγονότος ότι η κρυφή μνήμη 1260 είναι μια LLC, αυτό έχει ως αποτέλεσμα την πραγματοποίηση ενός περιπάτου σελίδων. Ας σημειωθεί ότι σε παραδείγματα στα οποία η TLB 1230 και η κρυφή μνήμη 1260 είναι μια μόνο μνήμη, η προώθηση μπορεί να συμβεί τοπικά εντός του ίδιου κυκλώματος. Ωστόσο, σε τέτοιες περιπτώσεις, μπορούν εν τούτοις να πραγματοποιούνται δύο αναζητήσεις - μια σε μια πρώτη θέση αποθήκευσης που χρησιμοποιείται από την TLB 1230 και μια σε μια δευτερεύουσα θέση που χρησιμοποιείται κυρίως από την κρυφή μνήμη 1260. Εναλλακτικά, μπορεί να πραγματοποιείται μια μόνο αναζήτηση. Σε κάθε ένα από αυτά τα παραδείγματα, εάν η αναζήτηση ή οι αναζητήσεις αποτύχουν, τότε πραγματοποιείται ένας περίπατος σελίδων από το κύκλωμα επεξεργασίας 1220.
Το Σχήμα 17Β απεικονίζει ένα παράδειγμα στο οποίο το αίτημα ανάγνωσης αποστέλλεται στον αποθηκευτικό χώρο δεδομένων 1260 παράλληλα με την έκδοση ενός αιτήματος περιπάτου σελίδων. Ανάλογα, σε απόκριση μας αποτυχίας που συμβαίνει στην TLB 1230, ένα αίτημα θα προωθείται στην κρυφή μνήμη 1260 και ένα αίτημα περιπάτου σελίδων θα εκδίδεται ταυτόχρονα από το κύκλωμα επεξεργασίας 1220 για την απόκτηση της σχετικής διεύθυνσης εξόδου. Με αυτό τον τρόπο, εάν είναι απαραίτητος ένας περίπατος σελίδων, δεν καθυστερείται από την επιπΛέον αναζήτηση της κρυφής μνήμης 1260. Αυτό οφείλεται στο γεγονός ότι ο περίπατος σελίδων πραγματοποιείται ταυτόχρονα με την κρυφή μνήμη 1260 στην οποία πραγματοποιείται αναζήτηση όταν βρεθεί η αιτηθείσα διεύθυνση εξόδου είτε στην κρυφή μνήμη 1260 είτε πραγματοποιώντας έναν περίπατο σελίδων επιστρέφεται αμέσως και πάλι στο κύκλωμα επεξεργασίας 1223.
Το Σχήμα 17C απεικονίζει ένα παράδειγμα στο οποίο σε απόκριση του προσδιορισμού της διεύθυνσης εξόδου με βάση μια διεύθυνση εισόδου, η συσκευή 1200 προσαρμόζεται ώστε να προσκομίζει τα δεδομένε; που αποθηκεύονται στον αποθηκευτικό χώρο δεδομένων 1260 τα οποία σχετίζονται με τη διεύθυνση εξόδου. Όταν το αίτημα λαμβάνεται από την TLB 1230, εάν συμβεί μια επιτυχία, τότε η αντίστοιχη διεύθυνση εξόδου προωθείται και πάλι στο κύκλωμα επεξεργασίας 1220. Σε αυτό το σημείο, ένα αίτημα δεδομένων πραγματοποιείται από την TLB 1230 προς την κρυφή μνήμη 1260. Εάν συμβεί μια επιτυχία στην κρυφή μνήμη 1260 τότε τα δεδομένα επιστρέφονται στο κύκλωμα επεξεργασίας 1220. Εάν συμβεί μια αποτυχία για την αιτηθείσα διεύθυνση εισόδου στην TLB 1230, τότε το αίτημα προωθείται στην κρυφή μνήμη 1260. Σε αυτό το σημείο, εάν συμβεί μια επιτυχία, τότε η διεύθυνση εξόδου προωθείται και πάλι στο κύκλωμα επεξεργασίας 1220 και ένα αίτημα δεδομένων πραγματοποιείται εσωτερικά προς την κρυφή μνήμη 1260. Μετέπειτα, εάν συμβεί μια επιτυχία για το αίτημα δεδομένων, τότε τα δεδομένα προωθούνται και πάλι στο κύκλωμα επεξεργασίας 1220. Ανάλογα, δεν υπάρχει ανάγκη προώθησης της διεύθυνσης και πάλι προς το κύκλωμα επεξεργαστή 1220 για την πραγματοποίηση ενός επακόλουθου αιτήματος πρόσβασης δεδομένων από το κύκλωμα επεξεργασίας 1220. Αντίθετα, τα δεδομένα μπορούν να επιστρέφονται, μαζί με τη διεύθυνση, χωρίς να εμπλέκεται απαροίτητα το κύκλωμα επεξεργασίας 1220. Αυτό εξοικονομεί το χρόνο προώθησης μιας διεύθυνσης, με το κύκλωμα επεξεργασίας 1220 να εκδίδει ένα αίτημα δεδομένων και με το αίτημα δεδομένων να προωθείται και πάλι στην κρυφή μνήμη 1260.
Ανάλογα, τα δεδομένα μπορούν να ανακτώνται πιο γρήγορα. Τα έμπειρα άτομα θα εκτιμήσουν ότι οι αποτυχίες διαχειρίζονται με το συμβατικό τρόπο.
Το Σχήμα 18 απεικονίζει ένα διάγραμμα ροής 1800 το οποίο δείχνει μια μέθοδο διαχείρισης εισερχόμενων αιτημάτων σύμφωνα με ορισμένες υλοποιήσεις. Ένας τρόπος υλοποίησης της κλοπής τοι αποθηκευτικού χώρου είναι η δημιουργία μιας περιοχής χώρου ΡΑ η οποία δεν αντιστοιχεί σε εναν εφεδρικό αποθηκευτικό χώρο (π.χ. μέσω μιας πλαστής συσκευής ΙΟ ή ενός ειδικού αιτήματος ανάγνωσης που ζητά από τον ελεγκτή κρυφής μνήμης να προσπαθήσει να διαβάσει μια διεύθυνση και να επιστρέφει ένα σήμα που υποδηλώνει αστοχία εάν δεν είναι δυνατή η ολοκλήρωση της ανάγνωσης). Αυτός ο μηχανισμός θα μπορούσε, για παράδειγμα, να είναι τμήμα του κυκλώματος ελέγχου 1280 ή τμήμα ενός ελεγκτή για την TLB 1230 ή την κρυφή μνήμη 12.60. Αυτό κάνει δυνατή τη σήμανση μιας περιοχής χώρου φυσικών διευθύνσεων με δυνατότητα αποθήκευσης σε κρυφή μνήμη ως κατάλληλης για την αποθήκευση μεταφράσεων διευθύνσεων. Ωστόσο, επειδή η περιοχή είναι χωρίς εφεδρεία, δεν αποθηκεύει στην πράξη μεταφράσεις στον εφεδρικό αποθηκευτικό χώρο (π.χ. DRAM). Με αυτό τον τρόπο, η κρυφή μνήμη μπορεί να εξαναγκάζεται να “αποθηκεύει στην κρυφή μνήμη” μεταφράσεις οι οποίες θεωρούνται ότι είναι υποθηκευμένες στη μνήμη, αλλά δεν είναι. Εάν η διεύθυνση στα πλαίσια ενός αιτήματος εμπίπτει στην προκαθορισμένη περιοχή, τότε το αίτημα είναι ένα αίτημα για μια μετάφραση. Μολονότι, συνήθως, ένα αίτημα για δεδομένα με δυνατότητα αποθήκευσης σε κρυφή μνήμη τα οποία δεν είναι στην LLC θα προκαλούσαν την προσκόμιση των δεδομένων από τη μνήμη, μια τέτοια λειτουργία δεν είναι δυνατή στην περίπτωση της περιοχής του χώρου ΡΑ η οποία δεν αντιστοιχεί σε έναν εφεδρικό αποθηκευτικό χώρο επειδή, όπως προαναφέρθηκε, αυτή η περιοχή δεν αποθηκεύεται στην πράξη σε εφεδρική μνήμη. Συνεπώς, όταν ανιχνεύεται ένα τέτοιο αίτημα, δεν έχει τη δυνατότητα απευθείας προσκόμισης των δεδομένων από τη μνήμη. Αντίθετα, εκδίδει ένα σήμα (π.χ. στο κύκλωμα ελέγχου 1280) το οποίο προκαλεί έναν περίπατο σελίδων. Σε ορισμένες υλοποιήσεις, αυτό προκαλεί τη φόρτωση των μεταφράσεων σελίδων από τη μνήμη και τον προσδιορισμό της επιθυμητής μετάφρασης διευθύνσεων από αυτές τις μεταφράσεις σελίδων.
Το διάγραμμα ροής 1800 συνεπώς ξεκινάει σε ένα βήμα 1810 στο οποίο λαμβάνεται ένα αίτημα. Το αίτημα θα μπορούσε να είναι για μια μετάφραση διεύθυνσης ή θα μπορούσε να είναι για δεδομένα. Το αίτημα θα περιέχει συνεπώς μια διεύθυνση για την οποία είναι επιθυμητά είτε δεδομένα είτε μια μετάφραση. Σε ένα βήμα 1820, πραγματοποιείται μια αναζήτηση. Η αναζήτηση προσπαθεί να υλοποιήσει το αίτημα σε έναν ή περισσότερους από τους αποθηκευτικούς χώρους διευθύνσεων 1230 και αποθηκευτικούς χώρους δεδομένων 1260 όπως περιγράφηκε προηγουμένως. Εάν οι επιθυμητές πληροφορίες εντοπιστούν στο βήμα 1830 τότε η διαδικασία επιστρέφει στο βήμα 1810 όπου λαμβάνεται το επόμενο αίτημα.
Εναλλακτικά, η διαδικασία συνεχίζει στο βήμα 1840 όπου προσδιορίζεται κατά πόσο το αίτημα εμπίπτει στην προκαθορισμένη περιοχή. Εάν ναι, τότε στο βήμα 1850, εκδίδεται ένα σήμα το οποίο προκαλεί έναν περίπατο σελίδων. Εναλλακτικά, στο βήμα 1860, τα δεδομένα φορτώνονται από τη μνήμη Και στις δύο περιπτώσεις, η διαδικασία επιστρέφει στη συνέχεια στο βήμα 1810. Σε αυτό το παράδειγμα, υποτίθεται ότι η προκαθορισμένη περιοχή είναι ο χώρος διευθύνσεων ο οποίος δεν αντιστοιχεί σε έναν εφεδρικό αποθηκευτικό χώρο. Ωστόσο, σε άλλες υλοποιήσεις, το βήμα 1840 θα μπορούσε να δοκιμάζει κατά πόσο η διεύθυνση εμπίπτει εκτός της προκαθορισμένης περιοχής, ενώ η προκαθορισμένη περιοχή διευθύνσεων θα μπορούσε να ορίζεται από το χώρο διευθύνσεων ο οποίος δεν αντιστοιχεί σε έναν εφεδρικό αποθηκευτικό χώρο.
Το διάγραμμα ροής 1800 απεικονίζει συνεπώς τη συμπεριφορά μιας συσκευής στην οποία σε απόκριση ενός αιτήματος για τη μετάφραση όταν η μετάφραση απουσιάζει από τον αποθηκευτικό χώρο διευθύνσεων 1230 και τον αποθηκευτικό χώρο δεδομένων 1260, το κύκλωμα ελέγχου 1280 προσαρμόζεται ώστε να εκδίδει ένα σήμα που προκαλεί έναν περίπατο σελίδων.
Xρovισμός της αναζήτησης TLB και των περιπάτων στον πίνακα σελίδων
Το Σχήμα 19 απεικονίζει σχηματικά ένα άλλο παράδειγμα μιας συσκευής επεξεργασίας δεδομένων η οποία περιλαμβάνει: ένα ή περισσότερα στοιχεία επεξεργασίας (processing elements ή ΡΕ) 1900, ένα κύκλωμα διασύνδεσης 1910, μια δυναμική μνήμη τυχαίας πρόσβασης (dynamic random access memory ή DRAM) 1920 και έναν ελεγκτή μνήμης DRAM 1930. Αυτή παρέχει ένα παράδειγμα μιας συσκευής επεξεργασίας δεδομένων η οποία περιλαμβάνει: μια μνήμη 19:20 με δυνατότητα πρόσβασης σύμφωνα με φυσικές διευθύνσεις μνήμης, ένα ή περισσότερα στοιχεία επεξεργασίας 1900 για τη δημιουργία εικονικών διευθύνσεων μνήμης για την πρόσβαση στη μνήμη και μια συσκευή μετάφρασης διευθύνσεων μνήμης 1915 για την παροχή μιας μετάφρασης των αρχικών διευθύνσεων μνήμης που παράγονται από το ένα ή τα περισσότερα στοιχεία επεξεργασίας σε φυσικές διευθύνσεις μνήμης που παρέχονται σπ μνήμη. Σε ορισμένα παραδείγματα, χαρακτηριστικά όπως τα χαρακτηριστικά σελίδας, τα δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης μπορούν επίσης να αποκτώνται στα πλαίσια της διαδικασίας μετάφρασης και να παρέχονται με τη διεύθυνση εξόδου μνήμης. Σε παραδείγματα διατάξεων το ένα ή τα περισσότερα στοιχεία επεξεργασίας 1900 κάθε ένα περιλαμβάνουν μια αντίστοιχη translation lookaside buffer 1905 για την αποθήκευση ενός συνόλου μεταφράσεων των αρχικών διευθύνσεων μνήμης που παράγονται από αυτό το στοιχείο επεξεργασίας σε φυσικές διευθύνσεις μνήμης που παρέχονται στη μνήμη με την translation lookaside buffer να είναι διαμορφωμένη ώστε να ζητά μια μετάφραση που δεν είναι αποθηκευμένη στην translation lookaside buffer από τη συσκευή μετάφρασης διευθύνσεων μνήμης.
Η διάταξη του Σχήματος 19 ισχύει στις διάφορες τεχνικές που εξετάζονται αναφορικά με τα Σχήματα 20 έως 31, είτε ανεξάρτητα είτε σε συνδυασμό.
Κάθε ένα από τα στοιχεία επεξεργασίας 1900 μπορεί να έχει πρόσβαση σε θέσεις της μνήμης DRAM 1920. Κατ' αρχήν αυτή η πρόσβαση θα μπορούσε να είναι απευθείας μέσω πραγματικών (φυσικών) διευθύνσεων μνήμης. Ωστόσο, για την παροχή τμηματοποίησης και ενός βαθμού ασφάλειας μεταξύ των προσβάσεων στη μνήμη από διαφορετικά στοιχεία επεξεργασίας (ή σε ορισμένες περιπτώσεις διαφορετικά λειτουργικά συστήματα που εκτελούνται στα στοιχεία επεξεργασίας 1900), τα στοιχεία επεξεργασίας 1900 παραπέμπουν σε διευθύνσεις μνήμης μέσω επονομαζόμενων εικονικών ή αρχικών διευθύνσεων μνήμης. Αυτές απαιτούν μετάφραση σε διευθύνσεις εξόδου ή φυσικής μνήμης για την πρόσβαση σε πραγματικές (φυσικές) θέσεις μνήμης στην DRAM 1920.
Ένα πρώτο επίπεδο μετάφρασης μπορεί να πραγματοποιείται από μια επονομαζόμενη translation lookaside buffer (TLB) 1905 που σχετίζεται με κάθε στοιχείο επεξεργασίας. Η TLB 1905 αποθηκεύει μόνιμα ή προσωρινά τις μεταφράσεις που χρησιμοποιήθηκαν πρόσφατα μεταξύ των εικονικών διευθύνσεων μνήμης και των φυσικών διευθύνσεων μνήμης, ώστε μια εικονική διεύθυνση μνήμης που παρέχεται στην TLB 1905 να μεταφράζεται σε μια φυσική διεύθυνση μνήμης η οποία στη συνέχεια διαμορφώνει ένα τμήμα μιας πρόσβασης στη μνήμη να είναι μνήμη DRAM 1920. Ωστόσο, η TLB έχει περιορισμένο μέγεθος και δεν μπορεί να αποθηκεύει κάθε μια δυνατή μετάφραση διεύθυνσης μνήμης η οποία μπορεί να καλείται από το στοιχείο επεξεργασίας 1900. Στην περίπτωση στην οποία μια απαιτούμενη μετάφραση δεν υπάρχει στην TLB 1905, η TLB αναφέρεται στη συσκευή μετάφρασης 1915, για παράδειγμα διαμορφώνοντας τμήμα του κυκλώματος διασύνδεσης 1910. Η συσκευή μετάφρασης θα περιγράφει λεπτομερώς παρακάτω και λειτουργεί για την παροχή ή με άλλο τρόπο απόκτηση της απαιτούμενης μετάφροσης και την επιστροφή της στην TLB 1905 όπου μπορεί να χρησιμοποιείται για τη μετάφραση μιας εικονικής διεύθυνσης μνήμης σε μια φυσική διεύθυνση μνήμης.
Επομένως, το Σχήμα 19 παρέχει ένα παράδειγμα μιας συσκευής επεξεργασίας δεδομένων η οποία περιλαμβάνει:
μια μνήμη 1920 προσβάσιμη σύμφωνα με φυσικές διευθύνσεις μνήμης,
ένα ή περισσότερα στοιχεία επεξεργασίας 1900 για τη δημιουργία εικονικών διευθύνσεων μνήμης για την πρόσβαση στη μνήμη, και
μια συσκευή μετάφρασης διευθύνσεων μνήμης 1915 για τη μετάφραση των εικονικών διευθύνσεων μνήμης που παράγονται από το ένα ή τα περισσότερα στοιχεία επεξεργασίας σε φυσικές διευθύνσεις μνήμης που παρέχονται στη μνήμη.
Το Σχήμα 20 δείχνει τη λειτουργία της συσκευής μετάφρασης σε μεγαλύτερη λεπτομέρεια.
Η συσκευή μετάφροσης 1915 διατηρεί μια επονομαζόμενη υποστηριζόμενη από DRAM TLB. Δηλαδή, η συσκευή μετάφρασης 1915 διατηρεί μια προσωρινή μνήμη παρόμοια με την TLB 1905 αλλά σε γενικές γραμμές αρκετά μεγαλύτερη, η οποία περιέχει δεδομένα μετάφρασης, στην DRAM 1920 (δείχνεται σχηματικά ως ένα δεσμευμένο ή σκιασμένο τμήμα 1921 της DRAM 1920). Η τήρηση μιας τέτοιας προσωρινής μνήμης στην DRAM 1920 επιτρέπει στην προσωρινή μνήμη να είναι σχετικά μεγάλη επειδή η χωρητικότητα της μνήμης DRAM, συχνά εκτός ολοκληρωμένου κυκλώματος σε σχέση με τα στοιχεία επεξεργασίας 1900, είναι συνήθως αρκετά μεγαλύτερη από το συνήθη αποθηκευτικό χώρο στατικής RAM επί ολοκληρωμένου κυκλώματος (static ram ή SRAM) που παρέχεται για την τοπική TLB 1905.
Επομένως, μια πρώτη προσπάθεια απόκτησης μιας απαιτούμενης μετάφρασης που ζητήθηκε από την TLB 1905 είναι για τη συσκευή μετάφρασης 1915 να ανατρέξει στα υποστηριζόμενα από την DRAM δεδομένα της TLB.
Ωστόσο, η υποστηριζόμενη από την DRAM TLB έχει επίσης περιορισμένο μέγεθος, μολονότι αρκετά μεγαλύτερο από της τοπικής TLB 1905. Στην περίπτωση στην οποία δε βρεθούν τα δεδομένα για μια συγκεκριμένη μετάφραση στην υποστηριζόμενη από την DRAM TLB, είναι δυνατή η πραγματοποίηση μιας επονομαζόμενης διαδικασίας περιπάτου πίνακα σελίδων. Αυτό συνεπάγεται την αναδρομή σε μια ιεραρχία επονομαζόμενων πινάκων σελίδων που επίσης αποθηκεύονται στην DRAM οι οποίοι, σε συνδυασμό, παρέχουν ένα οριστικό σύνολο όλων των επιτρεπόμενων εκείνη τη στιγμή μεταφράσεων διευθύνσεων μνήμης.
Η συσκευή μετάφρασης 1915 περιλαμβάνει ένα κύκλωμα ελέγχου 2000 για τον έλεγχο ενός υποστηριζόμενου από την DRAM κυκλώματος πρόσβασης 2010 και ένα κύκλωμα πρόσβασης περιπάτου πίνακα σελίδων 2020. Και τα δύο αυτά ανατρέχουν σε αντίστοιχα τμήματα της DRAM 1920 μέσω του ελεγκτή της μνήμης DRAM 1930 για την απόκτηση είτε ενός στιγμιότυπου των δεδομένων μετάφρασης στην περίπτωση του υποστηριζόμενου από την DRAM κυκλώματος πρόσβασης στην TLB 2010 είτε των δεδομένων του πίνακα σελίδων από τα οποία μπορεί να προκύψει η μετάφραση, στην περίπτωση του κυκλώματος πρόσβασης περιπάτου πίνακα σελίδων' 2020. Το κύκλωμα ελέγχου 2000 αποκρίνεται επομένως σε μια προς μετάφραση αρχική διεύθυνση μνήμης εισόδου, για να ζητήσει την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης και, πριν την ολοκλήρωση της επεξεργασίας του αιτήματος για ανάκτηση από την προσωρινή μνήμη δεδομένων μετάφρασης, για να ξεκινήσει την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης στον πίνακα σελίδων.
Το κύκλωμα πρόσβασης περιπάτου πίνακα σελίδων 2020 διατάσσεται ώστε να έχει πρόσβαση σε δεδομένα τσυ πίνακα σελίδων για την ανάκτηση δεδομένων μετάφρασης τα οποία ορίζουν μια μετάφραση διεύθυνσης μεταξύ μιας αρχικής διεύθυνσης μνήμης σε έναν αρχικό χώρο διευθύνσεων μνήμης και μιας αντίστοιχης διεύθυνσης μνήμης εξόδου σε ένα χώρο διευθύνσεων εξόδου. Η υπιοστηριζόμενη από την DRAM TLB είναι ένα παράδειγμα μιας προσωρινής μνήμη δεδομένων μετάφρασης για την αποθήκευση, για ένα υποσύνολο του χώρου εικονικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης.
Στα πλαίσια της λειτουργίας του, το υποστηριζόμενο από τη μνήμη DRAM κύκλωμα πρόσβασης TLB 2010 παρέχει ένα σήμα “εγκυρότητας” 2015 στο κύκλωμα ελέγχου 2000. Το κύκλωμα ελέγχου 2000 παρέχει σήματα ελέγχου και, σε ορισμένες περιπτώσεις, ακύρωσης (ή τουλάχιστον έναρξης ακύρωσης) 2005 στο υποστηριζόμενο από την DRAM κύκλωμα πρόσβασης TLB και στο κύκλωμα πρόσβασης περιπάτου στον πίνακα σελίδων 2020. Αυτό παρέχει ένα παράδειγμα στο οποίο η προσωρινή μνήμη δεδομένων μετάφρασης διαμορφώνεται ώστε να αποκρίνεται σε ένα αίτημα για ανάκτηση συγκεκριμένων δεδομένων μετάφρασης παρέχοντας μια απόκριση η οποία περιλαμβάνει είτε τα συγκεκριμένα δεδομένα μετάφρασης είτε δεδομένα που υποδηλώνουν ότι τα συγκεκριμένα δεδομένα μετάφρασης δεν τηρούνται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης.
Παρακάτω θα εξεταστούν παραδείγματα της χρήσης αυτών των σημάτων.
Τα παραδείγματα διατάξεων παρέχουν παραλλαγές της λειτουργίας χρονισμού των κυκλωμάτων 2010, 2020 σε σχέση με τις διατάξεις που προτάθηκαν προηγουμένως. Σύμφωνα με τα συμφραζόμενα, το Σχήμα 21 είναι ένα σχηματικό διάγραμμα χρονισμού που απεικονίζει τη λειτουργία μιας TLB και μ ας συσκευής μετάφρασης που προτάθηκαν προηγουμένως.
Οι τέσσερις οριζόντιες γραμμές στο Σχήμα 21 απεικονίζουν σχηματικά τις λειτουργίες από την τοπική TLB 1905, το υποστηριζόμενο από την DRAM κύκλωμα πρόσβασης TLB 2010, το κύκλωμα πρόσβασης περιπάτου πίνακα σελίδων 2020 και την DRAM 1920 αντίστοιχα. Ο χρόνος αυξάνεται από τα αριστερά προς τα δεξιά σύμφωνα με το σχέδιο.
Μια πρόσβαση στην υποστηριζόμενη από την DRAM TLB προτρέπεται από τη μη εύρεση μιας απαιτούμενης μ ετάφρασης στην τοπική TLB 1905 ώστε η τοπική TLB 1905 να ζητήσει (στο στάδιο 2100) τη μετάφραση από τη συσκευή μετάφρασης 1915. Στη διάταξη που προτάθηκε προηγουμένως, αυτό προκαλεί την πρόσβαση του υποστηριζόμενου από τη μνήμη DRAM κυκλώματος πρόσβασης TLB 2010 (σε ένα στάδιο 2105) στη μνήμη DRAM με σκοπό την αναζήτηση κατά πόσο υπάρχουν τα απαιτούμενα δεδομένα μετάφρασης. Η απόκριση από τη μνήμη DRAM 1920 δείχνεται ως ένα στάδιο 2110. Εάν υπάρχει μια “επιτυχία”, δηλαδή το απαιτούμενο στιγμιότυπο δεδομένων μετάφρασης βρεθεί στην υποστηριζόμενη από τη μνήμη DRAM TLB, τότε αυτά τα δεδομένα μετάφρασης επιστρέφονται στην τοπική TLB ως ένα στάδιο 2115 και η διαδικασία τερματίζεται. Εάν δεν υπάρχει, το υποστηριζόμενο από τη μνήμη DRAM κύκλωμα πρόσβασης TLB ιποδεικνύει στο κύκλωμα ελέγχου 2000 ότι το στιγμιότυπο των δεδομένων μετάφρασης που ζητήθηκε δεν είναι διαθέσιμο (μην ενεργοποιώντας το σήμα “εγκυρότητας” ή ενεργοποιώντας το σε μια κατάσταση η οποία υποδηλώνει “μη εγκυρότητα”) ώστε το κύκλωμα ελέγχου 2000 στη συνέχεια να εκδίδει ένα αίτημα 2120 προς το κύκλωμα πρόσβασης περιπάτου πίνακα σελίδων 2020 για την ανάληψη ενός περιπάτου πίνακα σελίδων και την απόκτηση της απαιτούμενης μετάφρασης. Με τη χρήση καθιερωμένων τεχνικών, ένας περίπατος στον πίνακα σελιδων εμπεριέχει πολλαπλές διαδοχικές προσβάσεις στη μνήμη 2125 για την πρόσβαση στην απαιτούμενη ιεραρχία πινάκων σελίδων για την απόκτηση μιας μετάφρασης. Το αποτέλεσμα είναι η απαιτούμενη μετάφραση που παρέχεται σε ένα στάδιο 2130, το οποίο μεταδίδεται τελικά σε ένα στάδιο 2135 στην τοπική TLB 1905 και η διαδικασία τερματίζεται.
Όπως δείχνεται από ένα στάδιο 2160, αλλά χωρίς να αποτελεί τμήμα της κρίσιμης ως προς το χρόνο διαδρομής του Σχήματος 21 , όταν τα δεδομένα μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου δεν τηρούνται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου διαμορφώνεται ώστε να αποθηκεύει τα δεδομένα μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου, η οποία λαμβάνεται από το κύκλωμα πρόσβασης του πίνακα σελίδων, στην προσωρινή μνήμη δεδομένων μετάφρασης στην DRAM.
Επειδή στο παράδειγμα που προτάθηκε προηγουμένως, ο περίπατος πίνακα σελίδων δεν τίθεται σε εφαρμογή μέχρι να αστοχήσει ή αποτύχει η υποστηριζόμενη από την DRAM αναζήτηση TLB, στη χειρότερη περίπτωση μπορεί να υπάρξει μια μεγάλη καθυστέρηση 2150 μεταξύ του αρχικού αιτήματος στο 2100 από τη λήψη των αιτηθέντων δεδομένων μετάφρασης από την τοπική TLB 1905 και την τοπική TLB 1905.
Σε αντίθεση, το Σχήμα 22 απεικονίζει σχηματικά ένα παράδειγμα διάταξης σύμφωνα με τα παραδείγματα της παρούσας δημοσιοποίησης, στο οποίο το κύκλωμα ελέγχου διαμορφώνεται ώστε να ζητά την ανάκτηση ενός απαιτούμενου στιγμιότυπου των δεδομένων μετάφρασης από την υποστηριζόμενη από την DRAM TLB και, πριν την ολοκλήρωση της επεξεργασίας αυτού του αιτήματος για ανάκτηση από την υποστηριζόμενη από την DRAM TLB, να θέτει σε εφαρμογή την ανάκτηση των ίδιων δεδομένων μετάφρασης από το κύκλωμα πρόσβασης περιπάτου στον πίνακα σελίδων 2010.
Σε ορισμένα παραδείγματα, το κύκλωμα ελέγχου μπορεί να θέτει σε εφαρμογή και τις δύο διαδικασίες ουσιαστικό ταυτόχρονα.
Επομένως, αναφορικά με το Σχήμα 22, μετά το αίτημα 2100 από την τοπική TLB 1905, το κύκλωμα ελέγχου 2000 θέτει σε εφαρμογή μια υποστηριζόμενη από τη μνήμη DRAM αναζήτηση TLB 2200 και, ουσιαστικά ταυτόχρονα ή τουλάχιστον πριν την ολοκλήρωση αυτής της αναζήτησης TLB, έναν περίπατο πίνακα σελίδων 2205 από το κύκλωμα πρόσβασης περιπάτου πίνακα σελίδων 2020. Και οι δύο διαδικασίες συνεχίζουν επομένως ταυτόχρονα. Αυτό μπορεί να μειώνει το λανθάνοντα χρόνο στις περιπτώσεις στις οποίες απαιτείται μια πρόσβαση πίνακα σελίδων, ξεκινώντας την πρόσβαση στον πίνακα σελίδων “νωρίς" και όχι περιμένοντας μέχρι την αστοχία της πρόσβασης στην προσωρινή μνήμη δεδομένων μετάφρασης.
Προαιρετικός πρόωρος τερματισμός της πρόσβασης στον πίνακα σελίδων
Εάν, ωστόσο, υπάρχει μια επιτυχία από το υποστηριζόμενο από τη μνήμη DRAM κύκλωμα πρόσβασης TLE 2010, τότε προαιρετικά ο περίπατος στον πίνακα σελίδων μπορεί να τερματίζεται (απεικονίζεται σχηματικά σε ένα στάδιο 2210). Αυτό δεν είναι απαίτηση, ενώ στην πράξη θα μπορούσε να επιτραπεί η ολοκλήρωση του περιπάτου στον πίνακα σελίδων, στην οποία περίπτωση αυτό που θα συνέβαινε είναι ότι τα ίδια δεδομένα μετάφρασης θα ανακτούνταν και από τον πίνακα σελίδων. Ωστόσο, τερματίζοντας τον περίπατο στον πίνακα σελίδων στο 2210 στην περίπτωση μιας επιτυχίας TLB, μπορεί εν δυνάμει να επιτυγχάνεται μια εξοικονόμηση ενέργειας (σχετικά με τη μη πραγματοποίηση πλέον του υπόλοιπου περιπάτου πίνακα σελίδων).
Στην περίπτωση μας υποστηριζόμενης από τη μνήμη DRAM επιτυχίας TLB, η μετέπειτα διαδικασία είναι παρόμοια με το Σχήμα 21 και το απαιτούμενο στιγμιότυπο των δεδομένων μετάφρασης παρέχεται στην τοπική TLB στο 2215.
Εάν, ωστόσο, υπάρχει μια αποτυχία στην υποστηριζόμενη από τη μνήμη DRAM TLB, τότε ο περίπατος στον πίνακα σελίδων συνεχίζει στο 2220 έως την παροχή σε ένα στάδιο 2225 της απαιτούμενης μετάφραοης που προκύπτει από τον περίπατο στον πίνακα σελίδων στην τοπική TLB 1905. Σε αυτή την περίπτωση, ο συνολικός λανθάνον χρόνος ή η χρονική περίοδος για την παροχή της μετάφρασης δείχνεται ως 2232 ενώ δείχνεται σχηματικά μια εξοικονόμηση χρόνου ως περίοδος 2230 στη διάταξη που δείχνεται στο Σχήμα 21 λόγω της πρώιμης έναρξης του περιπάτου πίνακα σελίδων, για παράδειγμα ταυτόχρονα με την έναρξη της υποστηριζόμενης από τη μνήμη DRAM αναζήτησης TLB ή τουλάχιστον πριν την ολοκλήρωση της υποστηριζόμενης από τη μνήμη DRAM αναζήτησης TLB.
Και πάλι, όπως δείχνεται από ένα στάδιο 2260, αλλά χωρίς να διαμορφώνει τμήμα της κρίσιμης ως προς το χρόνε διαδρομής του Σχήματος 22, όταν τα δεδομένα μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου δε διατηρούνται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου διαμορφώνεται ώστε να αποθηκεύει τα δεδομένα μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου, η οποία λαμβάνεται από το κύκλωμα πρόσβασης στον πίνακα οελίδων, στην προσωρινή μνήμη δεδομένων μετάφρασης στη μνήμη DRAM.
Το Σχήμα 23 είναι ενα σχηματικό διάγραμμα ροής που απεικονίζει μια μέθοδο κατάλληλη στις παραπάνω) αναλύσεις.
Σε ένα βήμα 2300, πραγματοποιείται πρόσβαση στα δεδομένα του πίνακα σελίδων για την ανάκτηση των δεδομένων μετάφρασης που ορίζουν μια μετάφραση διεύθυνσης μεταξύ μιας αρχικής διεύθυνσης μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμης και μια αντίστοιχη διεύθυνση μνήμης εξόδου σε ένα χώρο διευθύνσεων εξόδου.
Στο παρόν, ας σημειωθεί ότι ο χώρος διευθύνσεων μνήμης θα μπορούσε να είναι ένας χώρος εικονικών διευθύνσεων μνήμης ενώ ο χώρος διευθύνσεων εξόδου μνήμης θα μπορούσε να είναι ένας χώρος φυσικών διευθύνσεων μνήμης. Ωστόσο, σε κάποιες άλλες διατάξεις, χρησιμοποιείται μια επονομαζόμενη ενδιάμεση φυσική διεύθυνση, σε ορισμένες περιπτώσεις ώστε να κρύβει τη διαδικασία μετάφρασης ή τουλάχιστον το πλήρες εύρος της διαδικασίας μετάφρασης, από μεμονωμένα λειτουργικά συστήματα ώστε μια μετάφραση ΙΡΑ σε ΡΑ να πραγματοποιείται από έναν επονομαζόμενο επόπτη (hypervisor). Οι ίδιες αρχές με αυτές που εξετάστηκαν στο παρόν μπορούν να σχετίζονται με οτιδήποτε από τα ακόλουθα: μετάφραση VA σε ΡΑ, μετάφραση VA σε ΙΡΑ και/ή μετάφραση ΙΡΑ σε ΡΑ.
Συνεπώς, εξετάζονται διάφορες υλοποιήσεις, των οποίων είναι δυνατή η υλοποίηση όλων ή ορισμένων με τη χρήση αυτών των τεχνικών, στις οποίες:
ο χώρος αρχικών διευθύνσεων μνήμης είναι ένας χώρος εικονικών διευθύνσεων μνήμης και ο χώρος διευθύνσεων εξόδου μνήμης είναι ένας χώρος φυσικών διευθύνσεων μνήμης ή ο χώρος αρχικών διευθύνσεων μνήμης είναι ένας ενδιάμεσος χώρος φυσικών διευθύνσεων μνήμης και ο χώρος διευθύνσεων εξόδου μνήμης είναι ένας χώρος φυσικών διευθύνσεων μνήμης ή
ο χώρος αρχικών διευθύνσεων μνήμης είναι ένας χώρος εικονικών διευθύνσεων μνήμης και ο χώρος διευθύνσεων εξόδου μνήμης είναι ένας ενδιάμεσος χώρος φυσικών διευθύνσεων μνήμης.
Σε μια διάταξη μετάφρασης πολλαπλών σταδίων, αυτές οι τεχνικές θα μπορούσαν να χρησιμοποιούνται για ένα ή περισσότερα από τα στάδια μετάφρασης.
Αναφορικά και πάλι με το Σχήμα 23, σε ένα βήμα 2310, για ένα υποσύνολο του χώρου αρχικών διευθύνσεων μνήμης, ένα ή περισσότερα στιγμιότυπα των δεδομένων μετάφρασης αποθηκεύονται σε μια προσωρινή μνήμη δεδομένων μετάφρασης όπως η υποστηριζόμενη από την DRAM TLB.
Σε ένα βήμα 2320, σε απόκριση μιας προς μετάφραση αρχικής διεύθυνσης εισόδου μνήμης, όπως μια που λαμβάνεται από την τοπική TLB 1905, τα δεδομένα μετάφρασης ζητούνται για ανάκτηση από την προσωρινή μνήμη δεδομένων μετάφρασης όπως η υποστηριζόμενη από την DRAM TLB.
Στη συνέχεια, σε ένα βήμα 2330, πριν την ολοκλήρωση της επεξεργασίας του αιτήματος για ανάκτηση από την προσωρινή μνήμη δεδομένων μετάφρασης, τίθεται σε εφαρμογή η ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση εισόδου (απαιτούμενη) μνήμης από το κύκλωμα πρόσβασης στον πίνακα σελίδων όπως το κύκλωμα 2020 που εξετάστηκε παραπάνω.
Εάν, πράγματι, σε ένα βήμα 2340 τα απαιτούμενα δεδομένα ανακτηθούν επιτυχώς από την υποστηριζόμενη από τη μνήμη DRAM TLB, τότε ένα βήμα 2350, το οποίο είναι προαιρετικό όπως εξετάστηκε παραπάνω, μπορεί να συνεπάγεται την έναρξη ακύρωσης της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση εισόδου μνήμης από τον πίνακα σελίδων σε απόκριση της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης όπως η υποστηριζόμενη από την DRAM TLB. Αυτό μπορεί σε ορισμένες περιπτώσεις να εξοικονομεί ενέργεια αποτρέποντας τουλάχιστον ένα τμήμα της πρόσβασης στον πίνακα σελίδων.
Αλλιώς, σε περιπτώσεις στις οποίες τα δεδομένα δεν ανακτώνται επιτυχώς από την υποστηριζόμενη από τη μνήμη DRAM TLB, τα απαιτούμενα δεδομένα μετάφρασης αποκτώνται από το μηχανισμό περιπάτου στον πίνακα σελίδων σε ένα βήμα 2360 και μπορεί να αποθηκεύονται στην υποστηριζόμενη από την DRAM TLB.
Τα βήματα 2320, 2330 δείχνονται σειριακά στο Σχήμα 23, αλλά σε ορισμένα παραδείγματα (για την παροχή μιας εν δυνάμει βελτιωμένης συνολικής εξοικονόμησης λανθάνοντος χρόνου όπου αποδεικνύεται ότι απαιτείται μια πρόσβαση σε πίνακα σελίδων) το κύκλωμα ελέγχου μπορεί να διαμορφώνεται ώστε να θέτει σε εφαρμογή την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση εισόδου μνήμης από το κύκλωμα πρόσβασης στον πίνακα σελίδων ουσιαστικά ταυτόχρονα με τη ζήτηση ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση εισόδου μνήμης από την προσωρινή μνήμη δεδομένων μετάφρασης. Με άλλα λόγια τα βήματα 2320, 2330 μπορούν να συμβούν ουσιαστικά ταυτόχρονα. Κατ’ αρχήν το βήμα 2330 θα μπορούσε να τίθεται σε εφαρμογή ακόμη όπως και το πρώτο από τα δύο βήματα. Ωστόσο, η ευρύτερη άποψη των παραδειγμάτων υλοποίησης απλά εξετάζει την έναρξη πρόσβασης στον πίνακα σελίδων πριν την ολοκλήρωση της αναζήτησης στην προσωρινή μνήμη των δεδομένων μετάφρασης, η οποία μπορεί εν τούτοις να πετύχει μια μείωση του λανθάνοντος χρόνου.
Απόκτηση των προβλέψεων
Εστιάζοντας τώρα στο Σχήμα 24, σε ορισμένα παραδείγματα, το κύκλωμα ελέγχου 2000 διαμορφώνεται ώστε να αποκτά μια πρόβλεψη κατά πόσο η αρχική διεύθυνση εισόδου μνήμης τηρείται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης. Παρακάτω θα εξεταστούν τρόποι με τους οποίους είναι δυνατή η απόκτηση και χρήση αυτής της πρόβλεψης.
Σε γενικούς όρους, εάν παρέχεται μια πρόβλεψη κατά πόσο η απαιτούμενη μετάφραση είναι πιθανό να τηρείται από την υποστηριζόμενη από τη μνήμη DRAM TLB, τότε μπορεί να είναι δυνατή η καθυστέρηση ή αποτροπή της αναζήτησης στον πίνακα σελίδων. Σε άλλα παραδείγματα, εάν παρέχεται μια πρόβλεψη ότι είναι πιθανό να απαιτηθεί μια πρόσβαση στον πίνακα σελίδων, μπορεί να είναι δυνατή η αποτροπή ή καθυστέρηση της υποστηριζόμενης από την DRAM αναζήτησης στην TLB. Οποιαδήποτε από αυτές τις περιπτώσεις μπορεί να εξοικονομεί ενέργεια. Εάν η πρόβλεψη είναι λάθος, ωστόσο, μπορεί να εισάγουν μια ποινή λανθάνοντος χρόνου επαναφέροντας το συνολικό λανθάνοντα χρόνο του συστήματος σε ένα λανθάνοντα χρόνο παρόμοιο με αυτόν του Σχήματος 21. Με άλλα λόγια, όταν η πρόβλεψη υποδηλώνει τουλάχιστον μια πρώτη πιθανότητα κατωφλιού ότι η αρχική διεύθυνση εισόδου μνήμης τηρείται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου διαμορφώνεται ώστε να μεταθέτει την έναρξη της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση εισόδου μνήμης από το κύκλωμα πρόσβασης στον πίνακα σελίδων μέχρι να ληφθεί μια απόκριση από την προσωρινή μνήμη δεδομένων μετάφρασης. Σε άλλα παραδείγματα, όταν η πρόβλεψη υποδηλώνει μια μικρότερη από ένα δεύτερο κατώφλι πιθανότητας ότι η αρχική διεύθυνση εισόδου μνήμης τηρείται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου διαμορφώνεται ώστε να ζητάει την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση εισόδου μνήμης από την προσωρινή μνήμη δεδομένων μετάφρασης όχι για περισσότερα από ένα υποσύνολο στιγμιότυπα αρχικών διευθύνσεων εισόδου μνήμης προς μετάφραση.
Όπως αναφέρθηκε νωρίτερα, το κύκλωμα ελέγχου 2000 ελέγχει το κύκλωμα αναζήτησης προσωρινής μνήμης 2010 και το κύκλωμα πρόσβασης περιπάτου στον πίνακα σελίδων 2020 για την πρόσβαση στα δεδομένα που συγκρατούνται από την DRAM 1920. Το κύκλωμα αναζήτησης στην προσωρινή μνήμη 2010 παρέχει ένα σήμα διαθεσιμότητας 2015 στο κύκλωμα ελέγχου 2000 ως ένδειξη κατά πόσο η υποστηριζόμενη από την DRAM αναζήτηση στην TLB ήταν επιτυχής ή όχι. Σε παραδείγματα διατάξεων, αυτό το σήμα διαθεσιμότητας παρέχεται επίσης (στο Σχήμα 24) σε έναν ή περισσότερους απαριθμητές που διαμορφώνουν ένα κύκλωμα απαριθμητή 2400. Το κύκλωμα απαριθμητή 2400 διατάσσεται ώστε να ανιχνεύει, ανάμεσα στις αποκρίσεις από την προσωρινή μνήμη δεδομένων μετάφρασης, τους σχετικούς αριθμούς στιγμιότυπων μιας απόκρισης για την οποία το σήμα διαθεσιμότητας υπέδειξε ότι η απόκριση περιελάμβανε τα δεδομένα μετάφρασης που ζητήθηκαν και στιγμιότυπα μιας απόκρισης που περιλαμβάνει δεδομένα (όπως μια αρνητική ένδειξη διαθεσιμότητας 2015) που υποδηλώνουν ότι τα δεδομένα μετάφρασης που ζητήθηκαν δε συγκροτούνται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης.
Συνεπώς το κύκλωμα ελέγχου μπορεί να περιλαμβάνει ένα κύκλωμα απαριθμητών για την ανίχνευση, ανάμεσα στις αποκρίσεις από την προσωρινή μνήμη δεδομένων μετάφρασης, των σχετικών αριθμών των στιγμιότυπων μιας απόκρισης που περιλαμβάνει τα δεδομένα μετάφρασης που ζητήθηκαν και τα στιγμιότυπα μιας απόκρισης που περιλαμβάνει δεδομένα που υποδηλώνουν ότι τα δεδομένα μετάφρασης που ζητήθηκαν δε συγκροτούνται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης.
Σε ορισμένα παραδείγματα, το κύκλωμα απαριθμητών 2400 περιλαμβάνει ένα κύκλωμα για την αλλαγή μιας τιμής απαρίθμησης σε μια πολικότητα (όπως μια αύξηση) σε απόκριση της παροχής των δεδομένων μετάφρασης που ζητήθηκαν από την προσωρινή μνήμη δεδομένων μετάφρασης (ένα θετικό σήμα διαθεσιμότητας 2015) και την αλλαγή της τιμής απαρίθμησης στην άλλη πολικότητα (όπως μια μείωση) σε απόκριση μη συγκράτησης των δεδομένων από την προσωρινή μνήμη δεδομένων μετάφρασης, δηλαδή την παροχή από το κύκλωμα αναζήτησης στην προσωρινή μνήμη 2010 δεδομένων όπως μια ένδειξη αρνητικής διαθεσιμότητας 2015 ότι τα δεδομένα μετάφρασης που ζητήθηκαν δε συγκροτούνται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης. Οποιαδήποτε από τις αντίθετες πολικότητες μπορεί να χρησιμοποιείται σε κάθε περίπτωση, ενώ το μέγεθος της αύξησης και το μέγεθος της μείωσης θα μπορούσε να διαφέρει το ένα από το άλλο και δε χρειάζεται να είναι /-1. Με άλλα λόγια, το μέγεθος μιας αύξησης δε χρειάζεται να είναι ίδιο με το μέγεθος μιας μείωσης.
Ένας συγκριτής 2410 συγκρίνει τις τιμές απαρίθμησης με το πρώτο και το δεύτερο κατώφλι THR1 και THR2. Σε ορισμένα παραδείγματα, ο απαριθμητής μπορεί να είναι ένας απαριθμητής κορεσμού ώστε η τιμή απαρίθμησης να εξαναγκάζεται να μην υπερβεί ένα ανώτερο όριο απαρίθμησης ή να είναι μικρότερο από ένα κατώτερο όριο απαρίθμησης όπως το 0.
Το κύκλωμα απαριθμητών 2400 μπορεί να περιλαμβάνει έναν απαριθμητή ή σε άλλα παραδείγματα πολλαπλούς απαριθμητές για την ανίχνευση των σχετικών αριθμών για μια ή περισσότερες κατηγορίες συναλλαγών διευθύνσεων μνήμης, ώστε η πρόβλεψη να αντιστοιχεί καλύτερα στην κατηγοριοποίηση της τρέχουσας συναλλαγής. Μια λίστα παραδειγμάτων κατηγοριών μπορεί να περιλαμβάνει μια ή περισσότερες επιλογές από τη λίστα η οποία περιλαμβάνει:
• μια κατηγορία που υποδεικνύει μια εικονική μηχανή που ζητάει τη μετάφραση (όπως υποδεικνύεται, για παράδειγμα, από ένα αναγνωριστικό εικονικής μηχανής που διαμορφώνει τμήμα του αιτήματος μετάφρασης),
• μια κατηγορία που υποδεικνύει ένα χώρο αρχικών διευθύνσεων ανάμεσα σε πολλαπλούς χώρους αρχικών διευθύνσεων (όπως υποδεικνύεται, για παράδειγμα, από ένα αναγνωριστικό χώρου διευθύνσεων που διαμορφώνει τμήμα του αιτήματος μετάφρασης),
• μια κατηγορία που υποδεικνύει έναν απαριθμητή προγράμματος ενός επεξεργαστή που ζητάει τη μετάφραση ((όπως υποδεικνύεται, για παράδειγμα, από μια τιμή απαριθμητή προγράμματος που διαμορφώνει τμήμα του αιτήματος μετάφρασης), και
• μια κατηγορία που υποδεικνύει την αρχική διεύθυνση για την οποία ζητείται η μετάφραση.
Ένα από κατώφλια THR 1, THR 2 μπορεί να είναι μια τιμή που υποδηλώνει μια πρώτη πιθανότητα κατωφλιού όπως ένα άνω κατώφλι. Όταν η πρόβλεψη ή η τιμή απαρίθμησης υποδηλώνει τουλάχιστον την πρώτη πιθανότητα κατωφλιού, αυτό με τη σειρά του υποδηλώνει μια πιθανότητα η αρχική διεύθυνση εισόδου μνήμης να συγκροτείται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης, με το κύκλωμα ελέγχου 2000 να είναι διαμορφωμένο ώστε να καθυστερεί την έναρξη της ανάκτησης των δεδομένων μετάφρασης για αυτή την αρχική διεύθυνση εισόδου μνήμης από το κύκλωμα πρόσβασης περιπάτου του πίνακα σελίδων 2020 μέχρι τη λήψη μιας απόκρισης από την προσωρινή μνήμη δεδομένων μετάφρασης. Επομένως, χρησιμοποιώντας αυτό το κατώφλι, η λειτουργία μπορεί να επιστρέφει σε αυτά που δείχνονται σχηματικά στο Σχήμα 21. Σε περιπτώσεις στις οποίες η πρόβλεψη είναι σωστή, αυτό εξοικονομεί ενέργεια έναντι των λειτουργιών του Σχήματος 22. Σε περιπτώσεις στις οποίες η πρόβλεψη είναι λάθος, ο λανθάνον χρόνος δε χρειάζεται να είναι μεγαλύτερος από αυτόν του Σχήματος 21. Η πρόβλεψη βασίζεται σε ένα τουλάχιστον άνω κατώφλι που συμβαίνει για έναν απαριθμημένο αριθμό πρόσφατων αιτημάτων μετάφρασης (είτε γενικά, είτε συνολικά ή για μια συγκεκριμένη τιμή της κατηγορίας ή των κατηγοριών που καλύπτονται από τους πολλαπλούς απαριθμητές) που έχουν ικανοποιηθεί από την υποστηριζόμενη από τη μνήμη DRAM TLB.
Μια δεύτερη πιθανότητα κατωφλιού, η οποία αντιπροσωπεύει μια κάτω πιθανότητα η αρχική διεύθυνση εισόδου μνήμης να συγκροτείται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης, αντιπροσωπεύεται από μια κατώτερη τιμή απαρίθμησης και - όπου η απαρίθμηση ή η σχετική απαρίθμηση, είναι μικρότερη από το δεύτερο κατώφλι - αυτό δίνει αφορμή στο κύκλωμα ελέγχου να ζητήσει την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση εισόδου μνήμης από την προσωρινή μνήμη δεδομένων μετάφρασης όχι για περισσότερα από ένα υποσύνολο στιγμιότυπων αρχικών διευθύνσεων εισόδου μνήμης προς μετάφραση. Σε ορισμένα παραδείγματα, αυτό μπορεί να ισοδυναμεί με κανένα στιγμιότυπο, αλλά αυτό θα μπορούσε να οδηγήσει σε δυσκολίες στην ανίχνευση μιας αυξημένης απαρίθμησης ή μιας αυξημένης πιθανότητας τα δεδομένα να συγκρατούνται από την υποστηριζόμενη από τη μνήμη DRAM TLB, δεδομένου ότι η πιθανότητα προσδιορίζεται από μια απαρίθμηση επιτυχών αναζητήσεων στην TLB. Με άλλα λόγια, εάν η υποστηριζόμενη από τη μνήμη DRAM TLB δε χρησιμοποιείται πια όταν η απαρίθμηση πέσει κάτω από το κάτω κατώφλι, αυτό θα μπορούσε να δώσει αφορμή σε μια κατάσταση στην οποία η πιθανότητα η υποστηριζόμενη από τη μνήμη DRAM TLB να συγκρατεί την απαιτούμενη μετάφραση δεν μπορεί να αυξηθεί ποτέ και πάλι. Για να αντιμετωπιστεί αυτό το πιθανό πρόβλημα, προαιρετικά ένας περαιτέρω απαριθμητής 2420, ο οποίος απαριθμεί τα στιγμιότυπα προσβάσεων σε δεδομένα μετάφρασης επανειλημμένα από το 1 έως το Ν σε μια βάση modulo Ν, όπου Ν είναι ένας ακέραιος μεγαλύτερος από το 1 , μπορεί να αγνοεί από ένα σήμα 2430 τις πληροφορίες πιθανότητας που προέρχονται από το συγκριτή 2420 (για παράδειγμα, όποτε φτάνει το Ν) για να προκληθεί μια υποστηριζόμενη από την DRAM αναζήτηση TLB από το κύκλωμα αναζήτησης 2010 (για παράδειγμα, επαναφέροντας το μηχανισμό πρόβλεψης στα πλαίσια της ίδιας λειτουργίας). Με άλλα λόγια, το υποσύνολο μπορεί να είναι 1 σε Ν στιγμιότυπα αρχικών διευθύνσεων εισόδου μνήμης προς μετάφραση, όπου Ν είναι ένας ακέραιος μεγαλύτερος από ένα.
Επομένως, η χρήση του δεύτερου κατωφλιού όπως εξετάστηκε παραπάνω παρέχει ένα παράδειγμα μιας διάταξης στην οποία, όταν η πρόβλεψη υποδεικνύει μικρότερη από τη πιθανότητα του δεύτερου κατωφλιού ότι η αρχική διεύθυνση εισόδου μνήμης συγκροτείται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης, με το κύκλωμα ελέγχου να διαμορφώνεται ώστε να ζητάει την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση εισόδου μνήμης από την προσωρινή μνήμη δεδομένων μετάφρασης.
Αποθήκευση στην DRAM
Το Σχήμα 25 απεικονίζει σχηματικά ζητήματα ενός παραδείγματος διάταξης της DRAM 1920 του Σχήματος 19, παρέχοντας ένα παράδειγμα μιας δυναμικής μνήμης τυχαίας πρόσβασης για την παροχή του πίνακα θέσεων αποθήκευσης.
Η μνήμη DRAM 1920 περιλαμβάνει έναν πίνακα 2500 θέσεων αποθήκευσης 2505 διαταγμένων σε σειρές και στήλες, μια προσωρινή μνήμη σειράς 2510, έναν πολυπλέκτη στηλών 2515 και έναν αποκωδικοποιητή σειρών 2520. Γ ια τη μνήμη DRAM, κάθε θέση αποθήκευσης 2505 περιλαμβάνει μια ομάδα κυψελών bit, με κάθε κυψέλη bit να περιλαμβάνει έναν πυκνωτή ο οποίος μπορεί να φορτίζεται ή να εκφορτίζεται επιλεκτικά αντιπροσωπεύοντας ένα 1 ή ένα Ο που αντιστοιχεί σε ένα bit της συνολικής τιμής που αναπαρίσταται από την αντίστοιχη θέση αποθήκευσης 2505.
Οι προσβάσεις στη μνήμη DRAM 1920 πραγματοποιούνται σε δύο στάδια. Πρώτα, εκδίδεται μια εντολή ενεργοποίησης που προσδιορίζει μια διεύθυνση σειράς 2525 Ο αποκωδικοποιητής σειράς 2520 ενεργοποιεί την αντίστοιχη σειρά 2535, ώστε να φέρει τις πληροφορίες που αποθηκεύονται σε κάθε μια από τις θέσεις αποθήκευσης 2505 της αντίστοιχης σειράς στην προσωρινή μνήμη σειράς 2510. Κατά δεύτερον, μια διεύθυνση στήλης 2530 συνοδεύει την πραγματική εντολή ανάγνωσης/εγγραφής, η οποία ελέγχει τον πολυπλέκτη στηλών 2515 για την επιλογή μιας εγγραφής της προσωρινής μνήμης σειρών 2510 που αντιστοιχεί στην καθορισμένη στήλη εντός της ενεργής σειράς και είτε εξάγει τις πληροφορίες που διαβάζονται από αυτή την εγγραφή ως δεδομένα ανάγνωσης ή ενημερώνει τα δεδομένα σε αυτή την εγγραφή με βάση τα δεδομένα εγγραφής που παρέχονται με την εντολή εγγραφής. Γ ια μια λειτουργία εγγραφής, οι εγγραφές στην προσωρινή μνήμη σειρών 2510 μπορούν να διαδίδονται επίσης και πάλι προς την αντίστοιχη θέση αποθήκευσης 2505. Μπορούν να πραγματοποιούνται πολλαπλές λειτουργίες ανάγνωσης/εγγραφής εντός της ίδιας ενεργής σειράς, πριν το κλείσιμο της σειράς χρησιμοποιώντας μια εντολή προφόρτισης η οποία κλείνει τη σύνδεση μεταξύ της προσωρινής μνήμης σειρών 2510 και της ενεργής σειράς 2535, εξασφαλίζει ότι οι θέσεις αποθήκευσης της ενεργής σειράς 2535 έχουν ενημερωθεί ώστε να αντικατοπτρίζουν οποιεσδήποτε εγγραφές στην προσωρινή μνήμη σειρών 2510 και επαναφέρει την προσωρινή μνήμη σειρών 2510 σε ετοιμότητα για την επιλογή μιας άλλης σειράς ως ενεργής σειράς.
Επομένως, ένα παράδειγμα υποστηριζόμενης από τη μνήμη DRAM προσωρινής μνήμης δεδομένων μετάφρασης όπως περιγράφεται στο παρόν περιλαμβάνει: ένα κύκλωμα πρόσβασης (όπως ο αποκωδικοποιητής σειρών) για την πρόσβαση σε μια επιλεγμένη σειρά και τη μεταφορά των πληροφοριών από την επιλεγμένη σειρά στην προσωρινή μνήμη σειρών. Σε παραδείγματα διατάξεων η δυναμική μνήμη τυχαίας πρόσβασης διαμορφώνεται ώστε να διαβάζει τα δεδομένα σε ριπές δεδομένων κάθε μια μικρότερη από μια σειρά εγγραφών και να μεταδίδει ένα τμήμα της προσωρινής μνήμης σειρών που αντιστοιχεί σε μια τιμή κλειδιού. Σε γενικές γραμμές, σε παραδείγματα διατάξεων, η DRAM διαμορφώνεται ώστε να επικοινωνεί δεδομένα σε ριπές δεδομένων και να μεταδίδει μόνο το τμήμα της προσωρινής μνήμης σειρών που αντιστοιχεί στο παρεχόμενο κλειδί. Ας σημειωθεί ότι ο όρος “ριπές” περιγράφει τον τρόπο επικοινωνίας της DRAM και όχι τον τρόπο ανάγνωσης των δεδομένων από τον πίνακα δεδομένων. Αυτή η τεχνική μπορεί να χρησιμοποιείται για την εξαγωγή των απαιτούμενων δεδομένων μετά την αντιστοίχιση ενός κλειδιού.
Το Σχήμα 26 απεικονίζει σχηματικά τη λειτουργία μιας τεχνικής για την ανάκτηση δεδομένων μετάφρασης από τη μνήμη του Σχήματος 25 και συγκεκριμένα από την προσωρινή μνήμη σειρών 2510 η οποία στα συμφραζόμενα έχει φορτωθεί με δεδομένα που ανακτήθηκαν από μια ενεργή σειρά 2535 της μνήμης από το Σχήμα 25 και περιλαμβάνει ένα πλήθος εγγραφών για την αποθήκευση των πληροφοριών από ένα αντίστοιχο τμήμα μιας σειράς του πίνακα μνήμης.
Μια τιμή κλειδιού 2600 εξαρτάται τουλάχιστον από τη διεύθυνση εικονικής μνήμης προς μετάφραση. Η προσωρινή μνήμη σειρών περιέχει πολλαπλά σύνολα κλειδιών, δεδομένα τιμής όπως ένα σύνολο 2610. Κάθε τιμή κλειδιού στην προσωρινή μνήμη σειρών K1,Κ2, Κ3, Κ4συσχετίζεται με μια αντίστοιχη εγγραφή τιμής V1, V2,V3,V4. Αποκομίζοντας τη νέα τιμή κλειδιού 2600 χρησιμοποιώντας την ίδια εξάρτηση από τις διευθύνσεις εικονικής μνήμης όπως οι αποθηκευμένες τιμές κλειδιών Κ1.... K4, το κύκλωμα σύγκρισης 2620 μπορεί να συγκρίνει την τιμή κλειδιού 2600 με τις πληροφορίες που αποθηκεύονται σε μια τουλάχιστον εγγραφή κλειδιού Κ1...Κ4της προσωρινής μνήμης σειρών 2510, με κάθε εγγραφή κλειδιού να έχει μια συσχετισμένη εγγραφή τιμής V1.... V4για την αποθήκευση τουλάχιστον μιας αναπαράστασης μιας αντίστοιχης διεύθυνσης εξόδου μνήμης. Με αυτό τον τρόπο, το κύκλωμα σύγκρισης 2620 μπορεί να προσδιορίζει ποια από τις τουλάχιστον μια εγγραφές κλειδιού, εάν υπάρχει κάποια, είναι μια αντίστοιχη εγγραφή κλειδιού που αποθηκεύει πληροφορίες που αντιστοιχούν στην τιμή κλειδιού 2600.
Το κύκλωμα 2634 συνδυάζει τις εξόδους 2632 των τεσσάρων κυκλωμάτων σύγκρισης 2620 σε μια μορφή για τον έλεγχο της λειτουργίας του κυκλώματος εξόδου 2630, το οποίο εξάγει μια από τις εγγραφές τιμών V1... V4υπό τον έλεγχο των εξόδων σύγκρισης 2632 ως μια τιμή εξόδου 2640 ώστε να εξάγει, όταν υπάρχει μια αντίστοιχη εγγραφή κλειδιού, τουλάχιστον την αναπαράσταση της διεύθυνσης εξόδου μνήμης στην εγγραφή τιμής που συσχετίζεται με την αντίστοιχη εγγραφή κλειδιού.
Η εγγραφή τιμής παρέχει την απαιτούμενη μετάφραση όπως εξετάζεται παρακάτω αναφορικά με το Σχήμα 27.
Επομένως, το Σχήμα 26 λαμβανόμενο σε συνδυασμό με τα Σχήματα 19, 20 και 25 παρέχει ένα παράδειγμα μιας συσκευής μετάφρασης διευθύνσεων μνήμης 1915 η οποία περιλαμβάνει: ένα κύκλωμα πρόσβασης στον πίνακα σελίδων 2020 για την πρόσβαση σε έναν πίνακα σελίδων και την ανάκτηση δεδομένων μετάφρασης που ορίζουν μια μετάφραση διεύθυνσης μεταξύ μιας αρχικής διεύθυνσης μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμης και μιας αντίστοιχης διεύθυνσης μνήμης εξόδου σε ένα χώρο διευθύνσεων εξόδου, μια προσωρινή μνήμη δεδομένων μετάφρασης 2010, 1920 για την αποθήκευση, για ένα υποσύνολο του χώρου αρχικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης, με την προσωρινή μνήμη δεδομένων μετάφρασης να περιλαμβάνει: έναν πίνακα με τις θέσεις αποθήκευσης 2505 διαταγμένες σε σειρές και στήλες, μια προσωρινή μνήμη σειρών 2510 η οποία περιλαμβάνει ένα πλήθος εγγραφών 2610 με κάθε μια να αποθηκεύει πληροφορίες από ένα αντίστοιχο τμήμα μιας σειράς του πίνακα και ένα κύκλωμα σύγκρισης 2620 που αποκρίνεται σε μια τιμή κλειδιού 2600 εξαρτώμενη τουλάχιστον από την αρχική διεύθυνση μνήμης, για τη σύγκριση της τιμής κλειδιού με πληροφορίες που αποθηκεύονται σε κάθε μια της τουλάχιστον μιας εγγραφής κλειδιού Κ1-Κ4 της προσωρινής μνήμης σειρών, με κάθε εγγραφή κλειδιού να έχει μια συσχετισμένη εγγραφή τιμής για την αποθήκευση τουλάχιστον μιας αναπαράστασης μιας αντίστοιχης διεύθυνσης μνήμης εξόδου και για τον προσδιορισμό ποια από την τουλάχιστον μια εγγραφή κλειδιού, εάν υπάρχει κάποια, είναι μια αντίστοιχη εγγραφή κλειδιού που αποθηκεύει πληροφορίες που αντιστοιχούν στην τιμή κλειδιού και ένα κύκλωμα εξόδου 2630 για την έξοδο, όταν υπάρχει μια αντίστοιχη εγγραφή κλειδιού, τουλάχιστον της αναπαράστασης της διεύθυνσης μνήμης εξόδου στην εγγραφή τιμής V1-V4 που συσχετίζεται με την αντίστοιχη εγγραφή κλειδιού Κ1-Κ4.
Τα παραδείγματα υλοποιήσεων μπορούν να παρέχουν έναν αποτελεσματικό μηχανισμό για την πρόσβαση στα δεδομένα μετάφρασης σε μια υποστηριζόμενη από τη μνήμη DRAM προσωρινή μνήμη δεδομένων μετάφρασης χρησιμοποιώντας μια μόνο πρόσβαση στη μνήμη, ώστε να πραγματοποιείται πρόσβαση σε μια απαιτούμενη σειρά (στην οποία μπορεί να πραγματοποιείται πρόσβαση από μια αρχική διεύθυνση μνήμης με hash ή σε εξάρτηση από ένα τμήμα της αρχικής διεύθυνσης μνήμης για παράδειγμα), πιθανόν ως μια μόνο πρόσβαση στη μνήμη, ενώ στη συνέχεια τα περιεχόμενα αυτής της σειράς συγκρίνονται με μια τιμή κλειδιού η οποία εξαρτάται από την αρχική διεύθυνση μνήμης για την ανίχνευση κατά πόσο αυτή η σειρά περιέχει την απαιτούμενη μετάφραση. Αυτό μπορεί πιθανόν να μειώσει το λανθάνοντα χρόνο και το φορτίο διακίνησης στη μνήμη για την ανάκτηση της μετάφρασης, εφόσον οι προσβάσεις στη μνήμη DRAM είναι πιθανόν σχετικά αργές επομένως μπορεί να είναι επωφελής η απαίτηση για μια μόνο τέτοια πρόσβαση. Παρέχοντας μια διάταξη κλειδιού-τιμής για τα δεδομένα μετάφρασης που αποθηκεύονται στη σειρά μνήμης, είναι δυνατή η αποθήκευση πολλαπλών μεταφράσεων σε μια σειρά στην οποία πραγματοποιείται πρόσβαση από μια μόνο αρχική διεύθυνση μνήμης με hash (ή άλλη εξάρτηση), γεγονός που μπορεί να βελτιώσει την αποτελεσματικότητα της αποθήκευσης στην υποστηριζόμενη από την DRAM προσωρινή μνήμη δεδομένων μετάφρασης. Συγκεκριμένα, χρησιμοποιώντας ένα hash ή κάποια άλλη εξάρτηση από τουλάχιστον ένα τμήμα της αρχικής διεύθυνσης μνήμης μπορεί να δώσει τη δυνατότητα σε μια σειρά μνήμης να δεσμεύεται αποτελεσματικά για την αρχική διεύθυνση μνήμης. Στα παραδείγματα διατάξεων ο δείκτης για τη σειρά της DRAM είναι ένα hash (ή τμήμα αυτού) (VFN, VMID, ASID) και το ίδιο ισχύει για το κλειδί. Ο συνδυασμός της σειράς DRAM και του κλειδιού θα πρέπει να είναι μοναδικός σε μια συγκεκριμένη πλειάδα (VFN, VMID, ASID). Το παράδειγμα μιας τιμής με hash δίνει τη δυνατότητα τυχαίας (ή ψευδο-τυχαίας) κατανομής των σειρών μνήμης σε σχέση με τις αρχικές διευθύνσεις μνήμης. Εάν η σειρά μνήμης είναι πλήρης (επειδή πιθανόν και άλλες αρχικές διευθύνσεις μνήμης μπορούν επίσης να δείχνουν εκεί) και απαιτείται η αποθήκευση μιας νέας μετάφρασης (για παράδειγμα όταν τα δεδομένα μετάφρασης για την εικονική διεύθυνση μνήμης εισόδου δε συγκροτούνται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης, ώστε το κύκλωμα ελέγχου διαμορφώνεται ώστε να αποθηκεύει τα δεδομένα μετάφρασης για την εικονική διεύθυνση μνήμης εισόδου, η οποία λαμβάνεται από το κύκλωμα πρόσβασης στον πίνακα σελίδων, στην προσωρινή μνήμη δεδομένων μετάφρασης) τότε είναι δυνατή η χρήση ενός κυκλώματος διαγραφής θύματος για την επιλογή μιας εγγραφής κλειδιού και μιας συσχετισμένης εγγραφής τιμής στην επιλεγμένη σειρά για αντικατάσταση (για παράδειγμα, μια πολιτική αντικατάστασης με βάση τις πληροφορίες που αποθηκεύονται στην ίδια τη σειρά ή σε μια διαφορετική μνήμη ή περιοχή μνήμης υπό τον έλεγχο του ελεγκτή μνήμης) σε απόκριση μιας ανίχνευσης από το κύκλωμα ανιχνευτή ότι η επιλεγμένη σειρά έχει ανεπαρκή μη χρησιμοποιούμενη χωρητικότητα για την αποθήκευση των δεδομένων μετάφρασης (για παράδειγμα, χρησιμοποιώντας την ίδια δημιουργία hash / εξάρτηση για την επιλογή μιας σειράς όπως στη λειτουργία ανάγνωσης, παρέχοντας με αυτό τον τρόπο μη χρησιμοποιούμενες εγγραφές κλειδιού και τιμής στην επιλεγμένη σειρά. Τα παραδείγματα κριτηρίων επιλογής μπορεί να περιλαμβάνουν ένα ή περισσότερα επιλεγμένα από τη λίστα που αποτελείται από την τιμή κλειδιού και την αντίστοιχη εγγραφή με τη λιγότερο πρόσφατη πρόσβαση, μια τυχαία ή ψευδο-τυχαία επιλογή μιας τιμής κλειδιού και της αντίστοιχης εγγραφής, από μια τιμή κλειδιού και την αντίστοιχη εγγραφή με την όχι πλέον πρόσφατη πρόσβαση και μια επιλογή πρώτη-μέσα-πρώτη-έξω (first-in-first-out) για την επιλεγμένη σειρά.
Στα παραδείγματα διατάξεων, η τιμή κλειδιού μπορεί να εξαρτάται από ένα ή περισσότερα επιλεγμένα από τη λίστα η οποία αποτελείται από: δεδομένα που υποδεικνύουν μια εικονική μηχανή που ζητάει τη μετάφραση, δεδομένα που υποδεικνύουν ένα χώρο αρχικών διευθύνσεων ανάμεσα σε πολλαπλούς χώρους εικονικών διευθύνσεων και δεδομένα που υποδεικνύουν την αρχική διεύθυνση για την οποία ζητείται η μετάφραση. Επομένως, χρησιμοποιώντας αυτές τις τεχνικές η τιμή κλειδιού μπορεί να ορίζει την απαιτούμενη μετάφραση που παρέχεται από τη συσχετισμένη τιμή.
Το Σχήμα 27 απεικονίζει σχηματικά ένα κλειδί, ένα ζεύγος τιμών, στο οποίο το κλειδί περιλαμβάνει μια αλληλουχία ενός τμήματος τουλάχιστον ενός αναγνωριστικού εικονικής μηχανής (virtual machine identifier ή VMID), ενός αναγνωριστικού χώρου διευθύνσεων (address space identifier ή ASID), ενός αριθμού εικονικού πλαισίου (virtual frame number ή VFN) που ορίζει την αρχική διεύθυνση μνήμης τουλάχιστον με την ανάλυση του μεγέθους ενός πλαισίου ή μιας σελίδας, ενώ η τιμή περιλαμβάνει σε αυτό το παράδειγμα μια αλληλουχία ενός αριθμού φυσικού πλαισίου που ορίζει τη διεύθυνση εξόδου τουλάχιστον με την ανάλυση του μεγέθους ενός πλαισίου ή μιας σελίδας κι επίσης σε αυτά τα παραδείγματα μια ή περισσότερες ιδιότητες που ορίζουν άδειες ανάγνωσης/εγγραφής/εκτέλεσης ή άλλα παραδείγματα αδειών ή άλλα παρόμοια που συσχετίζονται με τη μετάφραση. Επομένως, η τιμή κλειδιού, στα παραδείγματα υλοποιήσεων, εξαρτάται από ένα ή περισσότερα επιλεγμένα από τη λίστα που αποτελείται από: δεδομένα που υποδεικνύουν μια εικονική μηχανή που ζητάει τη μετάφραση, δεδομένα που υποδεικνύουν ένα χώρο εικονικών διευθύνσεων ανάμεσα σε πολλαπλούς χώρους εικονικών διευθύνσεων και δεδομένα που υποδεικνύουν την εικονική διεύθυνση για την οποία απαιτείται η μετάφραση.
Τα παραδείγματα μεγεθών δεδομένων για αυτά τα πεδία έχουν ως ακολούθως:
Επομένως, κάθε ζεύγος κλειδΙού-τιμής καταλαμβάνει (για παράδειγμα) 16 byte, επιτρέποντας την αποθήκευση τεσσάρων τέτοιων ζευγών σε ένα παράδειγμα σειράς μνήμης 64 byte.
Όσον αφορά στην επιλογή μιας σειράς του πίνακα θέσεων μνήμης, είναι δυνατή η χρήση μιας επονομαζόμενη γεννήτριας hash 2800 (Σχήμα 28), ώστε η προσωρινή μνήμη δεδομένων μετάφρασης περιλαμβάνει ένα κύκλωμα επιλογής σειρών για την επιλογή μιας σειράς του πίνακα σε εξάρτηση από ένα τμήμα της αρχικής διεύθυνσης μνήμης και ένα κύκλωμα πρόσβασης (2520, Σχήμα 25) για την πρόσβαση στην επιλεγμένη σειρά και τη μεταφορά πληροφοριών από την επιλεγμένη σειρά στην προσωρινή μνήμη σειρών 2510. Στο συγκεκριμένο παράδειγμα που δίδεται, το κύκλωμα επιλογής σειρών περιλαμβάνει μια γεννήτρια hash όπως η γεννήτρια hash 2800 διαμορφωμένη για τη δημιουργία μιας τιμής hash από τα δεδομένα εισόδου 2810 που αντιπροσωπεύουν τουλάχιστον ένα τμήμα της εικονικής διεύθυνσης μνήμης ώστε να σειρά να επιλέγεται σε εξάρτηση από την τιμή hash. Όπως αναφέρθηκε παραπάνω, στα παραδείγματα διατάξεων ο δείκτης για τη σειρά DRAM είναι ένα hash (ή τμήμα) (VFN, VMID, ASID) και το ίδιο ισχύει για το κλειδί. Ο συνδυασμός της σειράς και του κλειδιού DRAM θα πρέπει να είναι μοναδικός σε μια συγκεκριμένη πλειάδα (VFN, VMID, ASID).
Το Σχήμα 29 απεικονίζει σχηματικά ένα κύκλωμα για την εγγραφή δεδομένων στη μνήμη Tarray που παρέχει την υποστηριζόμενη από τη μνήμη DRAM προσωρινή μνήμη δεδομένων μετάφρασης. Μια διαδικασία εγγραφής συμβαίνει σε περιπτώσεις όπως αυτή που αναπαρίσταται από το βήμα 2360 του Σχήματος 23, όσον αφορά στο γεγονός ότι, όταν τα δεδομένα μετάφρασης για την εικονική διεύθυνση εισόδου μνήμης δε συγκροτούνται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου διαμορφώνεται ώστε να αποθηκεύει τα δεδομένα μετάφρασης για την εικονική διεύθυνση μνήμης εισόδου, η οποία λαμβάνεται από το κύκλωμα πρόσβασης στον πίνακα σελίδων, στην προσωρινή μνήμη δεδομένων μετάφρασης. Η διάταξη του Σχήματος 29 ακολουθεί αυτό το κείμενο στην περίπτωση που χρησιμοποιείται η δομή κλειδιού-τιμής που περιγράφεται στο παρόν. Το κύκλωμα του Σχήματος 29 περιλαμβάνει έναν επιλογέα σειρών 2900 χρησιμοποιώντας τη διάταξη του Σχήματος 28 για την επιλογή μιας σειράς και τη συμπλήρωση της διεύθυνσης σειράς 2525 σε εξάρτηση από την αρχική διεύθυνση μνήμης ή τουλάχιστον από ένα τμήμα της. Αυτό παρέχει ένα παράδειγμα στο οποίο, για την αποθήκευση των δεδομένων μετάφρασης στην προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα επιλογής σειρών είναι διαμορφωμένο για την επιλογή μιας σειράς του πίνακα σε εξάρτηση από τουλάχιστον το τμήμα της αρχικής διεύθυνσης μνήμης για αυτό το στιγμιότυπο των δεδομένων μετάφρασης.
Η επιλεγμένη σειρά μεταφέρεται στην προσωρινή μνήμη σειρών 2510 για επεξεργασία. Ένας ανιχνευτής 2920 ανιχνεύει κατά πόσο όλα τα ζεύγη (κλειδί, εγγραφές) στην επιλεγμένη σειρά είναι κατειλημμένα και, εάν είναι, το κύκλωμα επιλογής και διαγραφής θυμάτων 2930 επιλέγει μια από τις υφιστάμενες εγγραφές για διαγραφή χρησιμοποιώντας μια διαδικασία επιλογής θύματος όπως η διαγραφή της παλαιότερης από τις υφιστάμενες εγγραφές. Το κύκλωμα αποθήκευσης 2940 εγγράφει το νέο ζεύγος (κλειδί, τιμή) στην προσωρινή μνήμη σειρών 2510 και η προσωρινή μνήμη σειρών αντιγράφεται στη συνέχεια και πάλι στον πίνακα μνήμης όπως εξετάστηκε παραπάνω.
Το παράδειγμα διάταξης επομένως παρέχει ένα παράδειγμα κυκλώματος εγγραφής 2920, 2930, 2940 για την αποθήκευση δεδομένων μετάφρασης στην επιλεγμένη σειρά, με το κύκλωμα εγγραφής να περιλαμβάνει: ένα κύκλωμα ανιχνευτή 2920 για την ανίχνευση κατά πόσο η επιλεγμένη σειρά έχει μη χρησιμοποιούμενες εγγραφές κλειδιού και εγγραφές τιμής για την αποθήκευση των δεδομένων μετάφρασης, ένα κύκλωμα διαγραφής θυμάτων 2930 για την επιλογή μιας εγγραφής κλειδιού και μιας συσχετισμένης εγγραφής τιμής στην επιλεγμένη σειρά για αντικατάσταση σε απόκριση μιας ανίχνευσης από το κύκλωμα ανιχνευτή ότι η επιλεγμένη σειρά έχει ανεπαρκή μη χρησιμοποιούμενη χωρητικότητα για την αποθήκευση των δεδομένων μετάφρασης, παρέχοντας με αυτό τον τρόπο μη χρησιμοποιούμενες εγγραφές κλειδιού και τιμής και εγγραφές τιμής στην επιλεγμένη σειρά και ένα κύκλωμα αποθήκευσης 2940 για την αποθήκευση των δεδομένων μετάφρασης στις μη χρησιμοποιούμενες εγγραφές κλειδιού και τιμής στην επιλεγμένη σειρά. Στα παραδείγματα, το κύκλωμα διαγραφής θυμάτων διαμορφώνεται ώστε να επιλέγει μια εγγραφή κλειδιού και μια συσχετισμένη εγγραφή τιμής σύμφωνα με ένα ή περισσότερα κριτήρια επιλογής θυμάτων επιλεγμένα από τη λίστα η οποία αποτελείται από: μια τιμή κλειδιού με λιγότερο πρόσφατη πρόσβαση και μια αντίστοιχη εγγραφή. Το κύκλωμα διαγραφής θυμάτων μπορεί ενεργά να διαγράφει την τιμή κλειδιού και την αντίστοιχη εγγραφή ώστε δημιουργήσει διαθέσιμο κενό χώρο ή μπορεί απλά να ελέγχει την αντικατάσταση από τα νέα δεδομένα των επιλεγμένων δεδομένων.
Αυτή η διαδικασία αναπαρίσταται από το σχηματικό διάγραμμα ροής του Σχήματος 30, στο οποίο, σε ένα βήμα 3000 επιλέγεται μια σειρά σύμφωνα με ένα τμήμα τουλάχιστον της αρχικής ή της εικονικής διεύθυνσης μνήμης για τη μετάφραση. Σε ένα βήμα 3010, τα περιεχόμενα αυτής της σειράς φορτώνονται στην προσωρινή μνήμη σειρών 2510. Εάν, σε ένα βήμα 3020 υπάρχει διαθέσιμος κενός χώρος για ένα ζεύγος κλειδιού, τιμής στην επιλεγμένη σειρά τότε ο έλεγχος μεταβιβάζεται σε ένα βήμα 3040. Διαφορετικά, σε ένα βήμα 3030, επιλέγεται ένα ζεύγος κλειδιού, τιμής του (θύματος) για διαγραφή και διαγράφεται. Στη συνέχεια, σε ένα βήμα 3040, η νέα εγγραφή εγγράφεται στον κενό χώρο που είναι διαθέσιμος στη σειρά και σε ένα βήμα 3050, η σειρά εγγράφεται και πάλι στη μνήμη. Ας σημειωθεί ότι αυτή η ετερόχρονη εγγραφή μπορεί να καθυστερείται ανάλογα την πολιτική του ελεγκτή DRAM.
Ωστόσο, θα εγγράφει ετερόχρονα στον πίνακα αποθήκευσης κάποια στιγμή στο μέλλον.
Το Σχήμα 31 είναι ένα σχηματικό διάγραμμα ροής που αναπαριστά μια μέθοδο σύνοψης η οποία περιλαμβάνει:
την πρόσβαση (σε ένα βήμα 3100) σε έναν πίνακα σελίδων για την ανάκτηση των δεδομένων μετάφρασης τα οποία ορίζουν μια μετάφραση διεύθυνσης ανάμεσα σε μια αρχική διεύθυνση μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμης και μια αντίστοιχη διεύθυνση μνήμης εξόδου σε ένα χώρο διευθύνσεων εξόδου,
την αποθήκευση (σε ένα βήμα 3110), σε μια προσωρινή μνήμη δεδομένων μετάφρασης με έναν πίνακα θέσεων αποθήκευσης διαταγμένο σε σειρές και στήλες, για ένα υποσύνολο του χώρου αρχικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης, την αποθήκευση σε προσωρινή μνήμη (σε ένα βήμα 3120) ενός πλήθους εγγραφών με κάθε μια να αποθηκεύει πληροφορίες από ένα αντίστοιχο τμήμα μιας σειράς του πίνακα, και τη σύγκριση (σε ένα βήμα 3130), σε απόκριση μιας τιμής κλειδιού η οποία εξαρτάται από τουλάχιστον την αρχική διεύθυνση μνήμης, για τη σύγκριση της τιμής κλειδιού με τις πληροφορίες που αποθηκεύονται σε κάθε μια από την τουλάχιστον μια εγγραφή κλειδιού (για παράδειγμα, τουλάχιστον δύο εγγραφές κλειδιού) της προσωρινής μνήμης σειρών, με κάθε εγγραφή κλειδιού να έχει μια συσχετισμένη εγγραφή τιμής για την αποθήκευση τουλάχιστον μιας αναπαράστασης μιας αντίστοιχης διεύθυνσης μνήμης εξόδου.
Εάν ως αποτέλεσμα της σύγκρισης στο βήμα 3130, η σειρά δεν περιέχει τη ζητούμενη μετάφραση, τότε ο έλεγχος μεταβιβάζεται σε ένα βήμα 3140 στο οποίο ενεργοποιείται το σήμα “εγκυρότητας” ως ένδειξη ότι η “μη διαθεσιμότητα” έχει ενεργοποιηθεί από τον ελεγκτή 2000. Διαφορετικά η μέθοδος συνεχίζει με τα εξής:
τον προσδιορισμό (σε ένα βήμα 3150) ποια από την τουλάχιστον μια εγγραφή κλειδιού, εάν υπάρχει κάποια, είναι μια αντίστοιχη εγγραφή κλειδιού που αποθηκεύει πληροφορίες που αντιστοιχούν στην τιμή κλειδιού, και
την έξοδο (σε ένα βήμα 3160), όταν υπάρχει μια αντίστοιχη εγγραφή κλειδιού, τουλάχιστον της αναπαράστασης της διεύθυνσης μνήμης εξόδου στην εγγραφή τιμής που συσχετίζεται με την αντίστοιχη εγγραφή κλειδιού.
Στην παρούσα εφαρμογή, οι λέξεις “διαμορφωμένο για...” χρησιμοποιούνται με τη σημασία ότι ένα στοιχείο μιας συσκευής έχει μια διαμόρφωση ικανή να πραγματοποιεί την καθορισμένη λειτουργία. Στο παρόν κείμενο, μια “διαμόρφωση” σημαίνει μια διάταξη ή έναν τρόπο διασύνδεσης υλικού ή λογισμικού. Για παράδειγμα, η συσκευή μπορεί να έχει αποκλειστικό υλικό το οποίο παρέχει την καθορισμένη λειτουργία ή ένας επεξεργαστής ή μια άλλη διάταξη επεξεργασίας μπορεί να είναι προγραμματισμένη ώστε να πραγματοποιεί τη λειτουργία. Οι λέξεις “διαμορφωμένο για” δεν υποδηλώνει ότι το στοιχείο συσκευής πρέπει να αλλαχθεί με κάποιον τρόπο ώστε να παρέχει την καθορισμένη λειτουργία.
Μολονότι έχουν περιγράφει με λεπτομέρεια στο παρόν ενδεικτικές υλοποιήσεις της εφεύρεσης αναφορικά με τα συνοδευτικά σχεδιαγράμματα, πρέπει να γίνει κατανοητό ότι η εφεύρεση δεν περιορίζεται σε αυτές ακριβώς τις υλοποιήσεις και ότι διάφορες αλλαγές, προσθήκες και τροποποιήσεις μπορούν να πραγματοποιούνται σε αυτή από άτομα έμπειρα στην τέχνη χωρίς απόκλιση από το αντικείμενο και το πνεύμα της εφεύρεσης όπως ορίζεται από τις συνημμένες αξιώσεις. Για παράδειγμα, θα μπορούσαν να πραγματοποιούνται διάφοροι συνδυασμοί των χαρακτηριστικών των εξαρτώμενων αξιώσεων με τα χαρακτηριστικά των ανεξάρτητων αξιώσεων χωρίς απόκλιση από το αντικείμενο της παρούσας εφεύρεσης.

Claims (19)

  1. ΑΞΙΩΣΕΙΣ 1. Μια συσκευή μετάφρασης διευθύνσεων μνήμης, η οποία περιλαμβάνει: ένα κύκλωμα πρόσβασης σε πίνακες σελίδων για την πρόσβαση σε δεδομένα πίνακα σελίδων για την ανάκτηση δεδομένων μετάφρασης που ορίζουν μια μετάφραση διευθύνσεων μεταξύ μιας αρχικής διεύθυνσης μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμης και μιας αντίστοιχης διεύθυνσης εξόδου μνήμης σε ένα χώρο διευθύνσεων εξόδου, μια προσωρινή μνήμη δεδομένων μετάφρασης για την αποθήκευση, για ένα υποσύνολο του χώρου εικονικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης, και ένα κύκλωμα ελέγχου που αποκρίνεται σε μια προς μετάφραση αρχική διεύθυνση μνήμης εισόδου, για την αίτηση της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης και, πριν την ολοκλήρωση της επεξεργασίας του αιτήματος ανάκτησης από την προσωρινή μνήμη δεδομένων μετάφρασης, για την έναρξη της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων.
  2. 2. Μια συσκευή σύμφωνα με την αξίωση 1, στην οποία το κύκλωμα ελέγχου είναι διαμορφωμένο ώστε να ξεκινάει την ακύρωση της ανάκτησης των δεδομένων μετάφρασης για την εικονική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων σε απόκριση της ανάκτησης των δεδομένων μετάφρασης για την εικονική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης.
  3. 3. Μια συσκευή σύμφωνα με την αξίωση 1 , στην οποία: ο χώρος αρχικών διευθύνσεων μνήμης είναι ένας χώρος εικονικών διευθύνσεων μνήμης και ο χώρος διευθύνσεων μνήμης εξόδου είναι ένας χώρος φυσικών διευθύνσεων μνήμης, ή ο χώρος αρχικών διευθύνσεων μνήμης είναι ένας ενδιάμεσος χώρος φυσικών διευθύνσεων μνήμης και ο χώρος διευθύνσεων μνήμης εξόδου είναι ένας χώρος φυσικών διευθύνσεων μνήμης, ή ο χώρος αρχικών διευθύνσεων μνήμης είναι ένας χώρος εικονικών διευθύνσεων μνήμης και ο χώρος διευθύνσεων μνήμης εξόδου είναι ένας ενδιάμεσος χώρος φυσικών διευθύνσεων μνήμης.
  4. 4. Μια συσκευή σύμφωνα με την αξίωση 1 , στην οποία το κύκλωμα ελέγχου είναι διαμορφωμένο ώστε να ξεκινάει την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων ουσιαστικά ταυτόχρονα με την αίτηση της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης.
  5. 5. Μια συσκευή σύμφωνα με την αξίωση 1 , στην οποία η προσωρινή μνήμη δεδομένων μετάφρασης είναι διαμορφωμένη ώστε να αποκρίνεται σε ένα αίτημα ανάκτησης συγκεκριμένων δεδομένων μετάφρασης με την παροχή μιας απόκρισης η οποία περιλαμβάνει είτε τα συγκεκριμένα δεδομένα μετάφρασης είτε δεδομένα που υποδηλώνουν ότι τα συγκεκριμένα δεδομένα μετάφρασης δε συγκροτούνται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης.
  6. 6. Μια συσκευή σύμφωνα με την αξίωση 5, στην οποία το κύκλωμα ελέγχου είναι διαμορφωμένο ώστε να παράγει μια πρόβλεψη κατά πόσο η αρχική διεύθυνση μνήμης εισόδου συγκροτείται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης.
  7. 7. Μια συσκευή σύμφωνα με την αξίωση 6, στην οποία, όταν η πρόβλεψη υποδεικνύει τουλάχιστον μια πρώτη πιθανότητα κατωφλιού η αρχική διεύθυνση μνήμης εισόδου να συγκροτείται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου είναι διαμορφωμένο ώστε να καθυστερεί την έναρξη της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων μέχρι τη λήψη μιας απόκρισης από την προσωρινή μνήμη δεδομένων μετάφρασης.
  8. 8. Μια συσκευή σύμφωνα με την αξίωση 6, στην οποία, όταν η πρόβλεψη υποδεικνύει τουλάχιστον μια μικρότερη από μια δεύτερη πιθανότητα κατωφλιού η αρχική διεύθυνση μνήμης εισόδου να συγκροτείται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου είναι διαμορφωμένο ώστε να ζητάει την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης όχι για περισσότερο από ένα υποσύνολο στιγμιότυπων από προς μετάφραση αρχικών διευθύνσεων μνήμης εισόδου.
  9. 9. Μια συσκευή σύμφωνα με την αξίωση 8, στην οποία το υποσύνολο είναι 1 σε Ν στιγμιότυπα αρχικών διευθύνσεων μνήμης εισόδου προς μετάφραση, όπου Ν είναι ένας ακέραιος μεγαλύτερος από ένα.
  10. 10. Μια συσκευή σύμφωνα με την αξίωση 8, στην οποία, όταν η πρόβλεψη υποδεικνύει τουλάχιστον μια μικρότερη από τη δεύτερη πιθανότητα κατωφλιού η αρχική διεύθυνση μνήμης εισόδου να συγκρατείται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου είναι διαμορφωμένο ώστε να μη ζητάει την ανάκτηση των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης.
  11. 1 1. Μια συσκευή σύμφωνα με την αξίωση 6, στην οποία το κύκλωμα ελέγχου περιλαμβάνει ένα κύκλωμα απαριθμητών για την ανίχνευση, ανάμεσα σε αποκρίσεις από την προσωρινή μνήμη δεδομένων μετάφρασης, των σχετικών αριθμών στιγμιότυπων μιας απόκρισης που περιλαμβάνει τα δεδομένα μετάφρασης που ζητήθηκαν και τα στιγμιότυπα μιας απόκρισης που περιλαμβάνει δεδομένα που υποδεικνύουν ότι τα δεδομένα μετάφρασης που ζητήθηκαν δε συγκρατούνται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης.
  12. 12. Μια συσκευή σύμφωνα με την αξίωση 11, στην οποία το κύκλωμα απαριθμητών περιλαμβάνει πολλαπλούς απαριθμητές για την ανίχνευση των σχετικών αριθμών για μια ή περισσότερες κατηγορίες συναλλαγών διευθύνσεων μνήμης.
  13. 13. Μια συσκευή σύμφωνα με την αξίωση 12, στην οποία η μια ή οι περισσότερες κατηγορίες περιλαμβάνουν μια ή περισσότερες επιλογές από τη λίστα η οποία περιλαμβάνει: μια κατηγορία που υποδηλώνει μια εικονική μηχανή που ζητάει τη μετάφραση, μια κατηγορία που υποδηλώνει ένα χώρο αρχικών διευθύνσεων ανάμεσα σε πολλαπλούς χώρους αρχικών διευθύνσεων, μια κατηγορία που υποδηλώνει έναν απαριθμητή προγράμματος ενός επεξεργαστή που ζητάει τη μετάφραση, και μια κατηγορία που υποδηλώνει την αρχική διεύθυνση για την οποία ζητείται η μετάφραση.
  14. 14. Μια συσκευή σύμφωνα με την αξίωση 11 , στην οποία το κύκλωμα απαριθμητών περιλαμβάνει: ένα κύκλωμα για την αλλαγή μιας τιμής απαρίθμησης σε μια πολικότητα σε απόκριση της παροχής των ζητούμενων δεδομένων μετάφρασης από την προσωρινή μνήμη δεδομένων μετάφρασης και την αλλαγή της τιμής απαρίθμησης στην άλλη πολικότητα σε απόκριση της παροχής των δεδομένων από την προσωρινή μνήμη δεδομένων μετάφρασης τα οποία υποδεικνύουν ότι τα δεδομένα μετάφρασης που ζητήθηκαν δε συγκροτούνται εκείνη τη στιγμή από την προσωρινή μνήμη δεδομένων μετάφρασης, και ένα συγκριτή για τη σύγκριση της τιμής απαρίθμησης με μια ή περισσότερες τιμές απαρίθμησης κατωφλιού.
  15. 15. Μια συσκευή σύμφωνα με την αξίωση 14, στην οποία ο απαριθμητής είναι ένας απαριθμητής κορεσμού τέτοιος ώστε η τιμή απαρίθμησης περιορίζεται ώστε να μην ξεπεράσει ένα ανώτερο όριο απαρίθμησης ή να πέσει κάτω από ένα κατώτερο όριο απαρίθμησης.
  16. 16. Μια συσκευή σύμφωνα με την αξίωση 1 , στην οποία, όταν τα δεδομένα μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου δε διατηρούνται εκείνη τη στιγμή στην προσωρινή μνήμη δεδομένων μετάφρασης, το κύκλωμα ελέγχου είναι διαμορφωμένο ώστε να αποθηκεύει τα δεδομένα μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου, τα οποία λαμβάνονται από το κύκλωμα πρόσβασης στον πίνακα σελίδων, στην προσωρινή μνήμη δεδομένων μετάφρασης.
  17. 17. Μια συσκευή σύμφωνα με την αξίωση 1, η οποία περιλαμβάνει μια δυναμική μνήμη τυχαίας πρόσβασης για την αποθήκευση της προσωρινής μνήμης δεδομένων μετάφρασης.
  18. 18. Μια συσκευή επεξεργασίας δεδομένων η οποία περιλαμβάνει: μια μνήμη με δυνατότητα πρόσβασης σύμφωνα με διευθύνσεις φυσικής μνήμης, ένα ή περισσότερα στοιχεία επεξεργασίας για τη δημιουργία διευθύνσεων εικονικής μνήμης για την πρόσβαση στη μνήμη, και μια συσκευή μετάφρασης διευθύνσεων μνήμης σύμφωνα με την αξίωση 1 για τη μετάφραση των διευθύνσεων εικονικής μνήμης που δημιουργούνται από το ένα ή τα περισσότερα στοιχεία επεξεργασίας σε διευθύνσεις φυσικής μνήμης που παρέχονται στη μνήμη.
  19. 19. Μια συσκευή μετάφρασης διευθύνσεων μνήμης η οποία περιλαμβάνει: μέσα πρόσβασης σε πίνακα σελίδων για την πρόσβαση σε δεδομένα ενός πίνακα σελίδων για την ανάκτηση δεδομένων μετάφρασης που ορίζουν μια μετάφραση διευθύνσεων μεταξύ μιας αρχικής διεύθυνσης μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμης και μιας αντίστοιχης διεύθυνσης εξόδου μνήμης σε ένα χώρο διευθύνσεων εξόδου, μέσα προσωρινής μνήμης δεδομένων μετάφρασης για την αποθήκευση, για ένα υποσύνολο του χώρου αρχικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης, και μέσα ελέγχου που αποκρίνονται σε μια προς μετάφραση αρχική διεύθυνση μνήμης εισόδου, για την αίτηση της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης και, πριν την ολοκλήρωση της επεξεργασίας του αιτήματος ανάκτησης από την προσωρινή μνήμη δεδομένων μετάφρασης, για την έναρξη της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων.
    την πρόσβαση σε δεδομένα ενός πίνακα σελιδων για την ανάκτηση δεδομένων μετάφρασης που ορίζουν μια μετάφραση διεύθυνσης μεταξύ μιας αρχικής διεύθυνσης μνήμης σε ένα χώρο αρχικών διευθύνσεων μνήμης και μιας αντίστοιχης διεύθυνσης εξόδου μνήμης σε ένα χώρο διευθύνσεων εξόδου, την αποθήκευση, για ένα υποσύνολο του χώρου αρχικών διευθύνσεων, ενός ή περισσότερων στιγμιότυπων των δεδομένων μετάφρασης σε μια προσωρινή μνήμη δεδομένων μετάφρασης, σε απόκριση της ζήτησης ανάκτησης δεδομένων μετάφρασης από μια αρχική διεύθυνση μνήμης εισόδου προς μετάφραση για την αρχική διεύθυνση μνήμης εισόδου από την προσωρινή μνήμη δεδομένων μετάφρασης, και πριν την ολοκλήρωση της επεξεργασίας του αιτήματος ανάκτησης από την προσωρινή μνήμη δεδομένων μετάφρασης, για την έναρξη της ανάκτησης των δεδομένων μετάφρασης για την αρχική διεύθυνση μνήμης εισόδου από το κύκλωμα πρόσβασης σε πίνακα σελίδων.
GR20180200044U 2017-11-22 2017-11-22 Μεταφραση διευθυνσεων μνημης GR20180200044U (el)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GR20180200044U GR20180200044U (el) 2017-11-22 2017-11-22 Μεταφραση διευθυνσεων μνημης

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GR20180200044U GR20180200044U (el) 2017-11-22 2017-11-22 Μεταφραση διευθυνσεων μνημης

Publications (1)

Publication Number Publication Date
GR20180200044U true GR20180200044U (el) 2019-06-20

Family

ID=67989172

Family Applications (1)

Application Number Title Priority Date Filing Date
GR20180200044U GR20180200044U (el) 2017-11-22 2017-11-22 Μεταφραση διευθυνσεων μνημης

Country Status (1)

Country Link
GR (1) GR20180200044U (el)

Similar Documents

Publication Publication Date Title
JP7340326B2 (ja) メンテナンス動作の実行
US7461209B2 (en) Transient cache storage with discard function for disposable data
US4775955A (en) Cache coherence mechanism based on locking
US7426626B2 (en) TLB lock indicator
US9235514B2 (en) Predicting outcomes for memory requests in a cache memory
US6014732A (en) Cache memory with reduced access time
US6427188B1 (en) Method and system for early tag accesses for lower-level caches in parallel with first-level cache
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
US9734059B2 (en) Methods and apparatus for data cache way prediction based on classification as stack data
US10831675B2 (en) Adaptive tablewalk translation storage buffer predictor
US10482024B2 (en) Private caching for thread local storage data access
US10831673B2 (en) Memory address translation
KR102482516B1 (ko) 메모리 어드레스 변환
US20060143400A1 (en) Replacement in non-uniform access cache structure
US20020188805A1 (en) Mechanism for implementing cache line fills
GR20180200044U (el) Μεταφραση διευθυνσεων μνημης
GR20180200051U (el) Μεταφραση διευθυνσεων μνημης
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
GR20180200050U (el) Πραγματοποιηση λειτουργιων συντηρησης
GR20180200062U (el) Αποθηκευτικος χωρος δεδομενων για πολλαπλους τυπους δεδομενων
KR20230075361A (ko) 메모리 어드레스들과 연관된 데이터를 캐싱하도록 캐시 저장소를 동작시키기 위한 기법