Τι είναι το Μητρώο;

click fraud protection

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

Ωστόσο, υπάρχει ένα άλλο επίπεδο μνήμης. Όσο και αν νομίζετε ότι η κρυφή μνήμη L1 είναι όσο το δυνατόν πιο κοντά στον πραγματικό πυρήνα επεξεργασίας, υπάρχει ένα άλλο υψηλότερο επίπεδο στην ιεραρχία της μνήμης. Αυτοί είναι οι καταχωρητές CPU. Ο λόγος που δεν διαφημίζονται ή αναφέρονται πραγματικά είναι ότι δεν έχουν αλλάξει καθόλου. Τεχνικά, θα μπορούσαν να είναι, ωστόσο, ο αριθμός και το μέγεθος των καταχωρητών είναι πραγματικά θεμελιώδη για την αρχιτεκτονική. Αυτό σημαίνει ότι όλοι οι επεξεργαστές x86-64 έχουν τον ίδιο αριθμό καταχωρητών. Δεν διατίθενται στο εμπόριο επειδή δεν αποτελούν ανταγωνιστικό σημείο.

Τι κάνει ένα μητρώο;

Ένας καταχωρητής είναι μια γρήγορα διαθέσιμη θέση αποθήκευσης για τον επεξεργαστή. Η πρόσβαση σε έναν καταχωρητή είναι άμεση με μηδενική καθυστέρηση, ενώ ακόμη και η κρυφή μνήμη L1 έχει περίπου 4-5 κύκλους καθυστέρησης στις σύγχρονες CPU. Αυτή η αμεσότητα πρόσβασης υποδηλώνει την περίπτωση χρήσης των μητρώων. Οι καταχωρητές χρησιμοποιούνται για την αποθήκευση των οδηγιών που λειτουργούν ενεργά από την CPU. Αποθηκεύουν επίσης σημεία δεδομένων που πρόκειται να υποβληθούν σε επεξεργασία. Ορισμένα μητρώα είναι γενικής χρήσης, ενώ άλλα έχουν πολύ συγκεκριμένο σκοπό. Ένα παράδειγμα καταχωρητή ειδικού σκοπού θα ήταν ο μετρητής προγράμματος, όπου ο επεξεργαστής παρακολουθεί τη θέση του στην ακολουθία προγραμμάτων του.

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

Εγγραφή μετονομασία

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

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

συμπέρασμα

Οι καταχωρητές είναι το υψηλότερο επίπεδο στην ιεραρχία της μνήμης. Είναι το μόνο μέρος με δυνατότητα άμεσης διευθυνσιοδότησης από την CPU και δεν έχουν καθυστέρηση. Οι καταχωρητές χρησιμοποιούνται για την αποθήκευση των δεδομένων που εκτελούνται ενεργά από την CPU. Χρησιμοποιούνται επίσης για την αποθήκευση άλλων σημείων δεδομένων, όπως ο μετρητής προγράμματος που παρακολουθεί ποια εντολή είναι η επόμενη που θα εκτελεστεί. Πολύ περιορισμένος αριθμός καταχωρητών είναι διαθέσιμος με την αρχιτεκτονική x86-64 να έχει 16 καταχωρητές γενικής χρήσης και είτε 16 είτε 32 καταχωρητές κινητής υποδιαστολής ανάλογα με το αν υποστηρίζεται το AVX-512.