A processor provides a register for storing an address space number (ASN).
Operating system software may assign different ASNs to different
processes. The processor may include a TLB to cache translations, and the
TLB may record the ASN from the ASN register in a TLB entry being loaded.
Thus, translations may be associated with processes through the ASNs.
Generally, a TLB hit will be detected in an entry if the virtual address
to be translated matches the virtual address tag and the ASN matches the
ASN stored in the register. Additionally, the processor may use an
indication from the translation table entries to indicate whether or not a
translation is global. If a translation is global, then the ASN comparison
is not included in detecting a hit in the TLB. Thus, translations which
are used by more than one process may not occupy multiple TLB entries.
Instead, a hit may be detected on the TLB entry storing the global
translation even though the recorded ASN may not match the current ASN. In
one embodiment, if ASNs are disabled, the TLB may be flushed on context
switches. However, the indication from the translation table entries used
to indicate that the translation is global may be used (when ASNs are
disabled) by the TLB to selectively invalidate non-global translations on
a context switch while not invalidating global translations.
Ένας επεξεργαστής παρέχει έναν κατάλογο για την αποθήκευση ενός αριθμού διαστήματος διευθύνσεων (ASN). Το λογισμικό λειτουργικών συστημάτων μπορεί να ορίσει διαφορετικό ASNs στις διαφορετικές διαδικασίες. Ο επεξεργαστής μπορεί να περιλάβει ένα TLB για να εναποθηκεύσει τις μεταφράσεις, και το TLB μπορεί να καταγράψει το ASN από τον κατάλογο ASN σε μια είσοδο TLB που φορτώνεται. Κατά συνέπεια, οι μεταφράσεις μπορούν να συνδεθούν με τις διαδικασίες μέσω του ASNs. Γενικά, ένα χτύπημα TLB θα ανιχνευθεί σε μια είσοδο εάν η εικονική διεύθυνση για να είναι μεταφρασμένες αντιστοιχίες που η εικονική ετικέττα διευθύνσεων και το ASN ταιριάζουν με το ASN που αποθηκεύεται στον κατάλογο. Επιπλέον, ο επεξεργαστής μπορεί να χρησιμοποιήσει μια ένδειξη από τις επιτραπέζιες καταχωρήσεις μεταφράσεων να δείξει εάν μια μετάφραση είναι ή όχι σφαιρική. Εάν μια μετάφραση είναι σφαιρική, κατόπιν η σύγκριση ASN δεν συμπεριλαμβάνεται στην ανίχνευση ενός χτυπήματος στο TLB. Κατά συνέπεια, οι μεταφράσεις που χρησιμοποιούνται με περισσότερες από μια διαδικασίες μπορούν να μην καταλάβουν τις πολλαπλάσιες καταχωρήσεις TLB. Αντ' αυτού, ένα χτύπημα μπορεί να ανιχνευθεί κατά την εισαγωγή TLB που αποθηκεύει τη σφαιρική μετάφραση ακόμα κι αν το καταγραμμένο ASN μπορεί να μην ταιριάξει με το τρέχον ASN. Σε μια ενσωμάτωση, εάν ASNs είναι εκτός λειτουργίας, το TLB μπορεί να ξεπλυθεί στους διακόπτες πλαισίου. Εντούτοις, η ένδειξη από τις επιτραπέζιες καταχωρήσεις μεταφράσεων που χρησιμοποιούνται για να δείξουν ότι η μετάφραση είναι σφαιρική μπορεί να χρησιμοποιηθεί (όταν τίθενται εκτός λειτουργίας ASNs) από το TLB για να ακυρώσει επιλεκτικά τις μη-σφαιρικές μεταφράσεις σε έναν διακόπτη συμφραζόμενων μην ακυρώνοντας τις σφαιρικές μεταφράσεις.