Μετάβαση στο περιεχόμενο

NPT και RVI

Αναφορά αρχιτεκτονικήςFeex

Ονομάζεται επίσης NPT / RVI

Το NPT, Nested Page Tables, είναι ο μηχανισμός μετάφρασης μνήμης guest δεύτερου σταδίου της AMD, ο οποίος συνδέεται επίσης με το Rapid Virtualization Indexing, RVI. Αποτελεί το αντίστοιχο του Intel EPT ως προς τον σκοπό για την AMD.

Τι πρέπει να γνωρίζετε

Το NPT, Nested Page Tables, είναι ο μηχανισμός μετάφρασης μνήμης guest δεύτερου σταδίου της AMD, ο οποίος συνδέεται επίσης με το Rapid Virtualization Indexing, RVI. Αποτελεί το αντίστοιχο του Intel EPT ως προς τον σκοπό για την AMD.

Πώς λειτουργεί

Οι πίνακες σελίδων του guest μεταφράζουν αρχικά τις εικονικές διευθύνσεις guest σε φυσικές διευθύνσεις guest. Οι φωλιασμένοι πίνακες σελίδων (nested page tables) που ελέγχονται από τον hypervisor μεταφράζουν τις φυσικές διευθύνσεις guest σε φυσικές διευθύνσεις συστήματος. Και τα δύο στάδια μετάφρασης και τα δικαιώματά τους συμμετέχουν σε μια πρόσβαση μνήμης, με καθορισμένη συμπεριφορά σφαλμάτων και ακύρωσης.

Πού είναι χρήσιμο

Ένα VM μπορεί να διαχειρίζεται τους δικούς του χώρους διευθύνσεων ενώ ο host αντιστοιχίζει τη μνήμη guest στις πραγματικές φυσικές σελίδες του μηχανήματος. Ένας hypervisor πρέπει να χειρίζεται σωστά τις αλλαγές αντιστοίχισης και τις κρυφές μνήμες μετάφρασης αντί να αντιμετωπίζει τη φωλιασμένη σελιδοποίηση ως μια σταθερή στατική αναζήτηση.

Πώς να ελέγξετε την υποστήριξη και την ενεργοποίηση

Απαριθμήστε το leaf δυνατοτήτων AMD SVM για nested paging αφού επιβεβαιώσετε το εύρος του εκτεταμένου leaf και την υποστήριξη SVM. Επαληθεύστε ότι ο hypervisor πράγματι ενεργοποιεί και υποστηρίζει την επιθυμητή διαμόρφωση, συμπεριλαμβανομένων τυχόν απαιτήσεων για nested guests.

Μια εικονικοποιημένη ανάπτυξη έχει διάφορα επίπεδα: φυσική δυνατότητα, άδεια υλικολογισμικού, τον ενεργό host hypervisor, τις εκτεθειμένες δυνατότητες guest και την υποστήριξη του guest λειτουργικού συστήματος. Ελέγξτε το επίπεδο όπου εκτελείται πραγματικά η λειτουργία, συμπεριλαμβανομένης της ένθετης εικονικοποίησης όταν είναι σχετικό.

Τι δεν καθορίζει η δυνατότητα

Το NPT δεν συνεπάγεται απομόνωση συσκευών μέσω IOMMU, SEV ή κάθε επιλογή μεγάλων σελίδων και φωλιασμένης εικονικοποίησης (nested virtualization). Το RVI δεν είναι μια πρόσθετη εντολή που ενεργοποιούν οι εφαρμογές. Η μειωμένη επιβάρυνση μετάφρασης εξαρτάται από τον φόρτο εργασίας και δεν αποτελεί έναν καθολικό πολλαπλασιαστή απόδοσης.

Συμβατότητα και απόδοση στην πράξη

Η εκτέλεση CPU, η μετάφραση μνήμης guest και η επαναχαρτογράφηση DMA συσκευών είναι ξεχωριστές δυνατότητες. Μην συμπεραίνετε δυνατότητα passthrough ή απομόνωσης από ένα μόνο πεδίο εικονικοποίησης. Χρησιμοποιήστε τα υποστηριζόμενα διαγνωστικά του hypervisor και τις ακριβείς απαιτήσεις πλατφόρμας/συσκευής.

Μια πρακτική λίστα ελέγχου επαλήθευσης

  1. Καταγράψτε το ακριβές μοντέλο επεξεργαστή ή πλατφόρμας και τις εμπλεκόμενες εκδόσεις εφαρμογής, λειτουργικού συστήματος και περιβάλλοντος εκτέλεσης (runtime). Διατηρήστε τη διατύπωση του πραγματικού σφάλματος ή της απαίτησης.
  2. Ελέγξτε τις αναφορές του κατασκευαστή για το συγκεκριμένο μοντέλο και, στη συνέχεια, εξετάστε την πραγματική δυνατότητα και την ενεργοποιημένη κατάσταση στο περιβάλλον όπου εκτελείται το πρόγραμμα.
  3. Συγκρίνετε κάθε απαίτηση του επιλεγμένου εκτελέσιμου αρχείου (binary) ή του backend. Μια δυνατότητα με παρόμοιο όνομα, ένα ψευδώνυμο ή μια ευρεία ετικέτα τεχνολογίας δεν επαρκεί.
  4. Επιβεβαιώστε ότι η εφαρμογή επέλεξε την προβλεπόμενη υλοποίηση. Χρησιμοποιήστε τα τεκμηριωμένα διαγνωστικά της και μια υποστηριζόμενη εναλλακτική λύση (fallback) όταν δεν πληρούνται οι απαιτήσεις.
  5. Κάντε μία υποστηριζόμενη αλλαγή τη φορά και επαναλάβετε τον ίδιο φόρτο εργασίας. Διατηρήστε διαθέσιμη την αρχική διαμόρφωση και τη διαδρομή επαναφοράς.

Εάν η δυνατότητα αναφέρεται αλλά το λογισμικό δεν μπορεί να τη χρησιμοποιήσει

Ξεκινήστε με το ακριβές στοιχείο που αποτυγχάνει. Μια βάση δεδομένων υλικού περιγράφει την καταγεγραμμένη δυνατότητα· το λειτουργικό σύστημα ή ο hypervisor μπορεί να εκθέσει ένα διαφορετικό πραγματικό περιβάλλον. Ένα σφάλμα μη έγκυρης εντολής (illegal-instruction error) απαιτεί επίσης διερεύνηση της πραγματικής εντολής που προκάλεσε το σφάλμα και της έκδοσης του εκτελέσιμου (binary build), καθώς η αλλοίωση δεδομένων ή μια άσχετη μη υποστηριζόμενη εντολή μπορεί να προκαλέσει παρόμοιο σύμπτωμα.

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

Πηγές και πεδίο εφαρμογής αυτής της επεξήγησης

AMD CPUID Specification, publication 25481 · AMD64 Architecture Programmer's Manual, Volume 2: System Programming

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

Πηγές και επαλήθευση

Συντακτική ιδιοκτησία: Feex. Δεν έχει καταγραφεί ημερομηνία ανεξάρτητης αναθεώρησης. Πώς ερευνούμε.

  • AMD CPUID Specification, publication 25481 · Αρχειοθετημένη αναφορά αρχιτεκτονικής για καθιερωμένες λειτουργίες CPUID της AMD και ορισμούς bit. Χρησιμοποιήστε την τρέχουσα αναφορά προγραμματισμού επεξεργαστή για μεταγενέστερες επεκτάσεις ειδικές για κάθε γενιά.
  • AMD64 Architecture Programmer's Manual, Volume 2: System Programming · Προγραμματισμός συστήματος, SVM και ένθετη μετάφραση, αναθεώρηση 3.46. Το τρέχον πρόγραμμα προβολής τεκμηρίωσης απαιτεί JavaScript· παλαιότερες διευθύνσεις URL εγγράφων ενδέχεται να έχουν αποσυρθεί.

Ήταν χρήσιμο αυτό το άρθρο;

Ένα ναι ή όχι είναι αρκετό. Επιλέξτε έναν λόγο εάν θέλετε ή προσθέστε μια σύντομη σημείωση.

Ήταν χρήσιμο αυτό το άρθρο;