Η βασική διαφορά μεταξύ λογικής διεύθυνσης και φυσικής διεύθυνσης είναι ότι η CPU δημιουργεί λογική διεύθυνση κατά την εκτέλεση του προγράμματος ενώ η φυσική διεύθυνση είναι μια θέση στη μονάδα μνήμης.
Με απλά λόγια, η CPU δημιουργεί τη λογική διεύθυνση ή την εικονική διεύθυνση. Από την οπτική γωνία ενός προγράμματος που εκτελείται, ένα στοιχείο φαίνεται να βρίσκεται στη διεύθυνση που παρέχεται από τη λογική διεύθυνση. Η μονάδα μνήμης παρατηρεί τη φυσική διεύθυνση. Επιπλέον, επιτρέπει την πρόσβαση σε ένα συγκεκριμένο κελί μνήμης στην κύρια μνήμη μέσω του διαύλου δεδομένων.
Τι είναι η λογική διεύθυνση;
Η CPU δημιουργεί λογική διεύθυνση. Από την οπτική γωνία ενός προγράμματος που εκτελείται, ένα στοιχείο φαίνεται να βρίσκεται στη διεύθυνση που παρέχεται από τη λογική διεύθυνση. Τα προγράμματα εφαρμογών που εκτελούνται στον υπολογιστή δεν βλέπουν τις φυσικές διευθύνσεις. Λειτουργούν πάντα χρησιμοποιώντας τις λογικές διευθύνσεις. Ο χώρος λογικών διευθύνσεων είναι το σύνολο των λογικών διευθύνσεων που δημιουργεί ένα πρόγραμμα. Είναι απαραίτητο να αντιστοιχίσετε τις λογικές διευθύνσεις σε φυσικές διευθύνσεις πριν τις χρησιμοποιήσετε. Η μονάδα υλικού διαχείρισης μνήμης (MMU) χειρίζεται αυτήν τη διαδικασία χαρτογράφησης.
Σχήματα χαρτογράφησης MMU
Το MMU ακολουθεί διάφορα σχήματα χαρτογράφησης. Στο απλούστερο σχήμα αντιστοίχισης, η τιμή στον καταχωρητή μετεγκατάστασης προστίθεται σε κάθε λογική διεύθυνση που παράγεται από προγράμματα εφαρμογών πριν από την αποστολή τους στη μνήμη. Υπάρχουν επίσης κάποιες άλλες πολύπλοκες μέθοδοι για τη δημιουργία της χαρτογράφησης. Η δέσμευση διευθύνσεων (δηλαδή η εκχώρηση εντολών και δεδομένων σε διευθύνσεις μνήμης) μπορεί να συμβεί σε τρεις διαφορετικούς χρόνους.
Εικόνα 01: Λογική και φυσική διεύθυνση
Πρώτον, μπορεί να συμβεί σε χρόνο μεταγλώττισης εάν οι πραγματικές θέσεις μνήμης είναι γνωστές εκ των προτέρων, και αυτό θα δημιουργούσε τον απόλυτο κώδικα στο χρόνο μεταγλώττισης. Μπορεί επίσης να συμβεί κατά τη φόρτωση εάν οι θέσεις της μνήμης δεν είναι γνωστές εκ των προτέρων. Για αυτό, πρέπει να δημιουργηθεί κώδικας με δυνατότητα επανατοποθέτησης κατά το χρόνο μεταγλώττισης. Επιπλέον, η σύνδεση διεύθυνσης μπορεί να συμβεί κατά το χρόνο εκτέλεσης. Αυτό απαιτεί υποστήριξη υλικού για αντιστοίχιση διευθύνσεων. Στη σύνδεση διεύθυνσης χρόνου μεταγλώττισης και χρόνου φόρτωσης, οι λογικές και οι φυσικές διευθύνσεις είναι ίδιες. Αλλά αυτή η διαδικασία είναι διαφορετική όταν η δέσμευση διεύθυνσης συμβαίνει στο χρόνο εκτέλεσης.
Τι είναι η φυσική διεύθυνση;
Η μονάδα μνήμης παρατηρεί τη φυσική διεύθυνση ή την πραγματική διεύθυνση. Επιτρέπει στο δίαυλο δεδομένων να έχει πρόσβαση σε ένα συγκεκριμένο κελί μνήμης στην κύρια μνήμη. Το MMU αντιστοιχίζει τη λογική διεύθυνση στη φυσική διεύθυνση. Για παράδειγμα, χρησιμοποιώντας το απλούστερο σχήμα αντιστοίχισης, το οποίο προσθέτει την τιμή του καταχωρητή μετεγκατάστασης (υποθέστε ότι η τιμή στον καταχωρητή είναι y) στη λογική διεύθυνση, μια λογική διεύθυνση κυμαίνεται από 0 έως x θα αντιστοιχιστεί σε μια περιοχή φυσικής διεύθυνσης y έως x+ ε.
Επιπλέον, αυτό ονομάζεται επίσης φυσικός χώρος διευθύνσεων αυτού του προγράμματος. Όλες οι λογικές διευθύνσεις πρέπει να αντιστοιχιστούν σε φυσικές διευθύνσεις για να μπορέσουν να χρησιμοποιηθούν.
Ποια είναι η διαφορά μεταξύ της λογικής διεύθυνσης και της φυσικής διεύθυνσης;
Λογική διεύθυνση έναντι φυσικής διεύθυνση |
|
Λογική διεύθυνση είναι η διεύθυνση στην οποία φαίνεται να βρίσκεται ένα στοιχείο από την οπτική γωνία ενός προγράμματος εφαρμογής που εκτελεί. | Η φυσική διεύθυνση είναι μια διεύθυνση μνήμης που αναπαρίσταται με τη μορφή ενός δυαδικού αριθμού στο κύκλωμα του διαύλου διευθύνσεων, προκειμένου να επιτρέψει στον δίαυλο δεδομένων να αποκτήσει πρόσβαση σε ένα συγκεκριμένο κελί αποθήκευσης της κύριας μνήμης ή σε έναν καταχωρητή μνήμης που έχει αντιστοιχιστεί /O συσκευή. |
Ορατότητα | |
Ο χρήστης μπορεί να δει τη λογική διεύθυνση ενός προγράμματος. | Ο χρήστης δεν μπορεί να δει τη φυσική διεύθυνση του προγράμματος. |
Μέθοδος δημιουργίας | |
Η CPU δημιουργεί τη λογική διεύθυνση. | Το MMU υπολογίζει τη Φυσική διεύθυνση. |
Προσβασιμότητα | |
Ο χρήστης μπορεί να χρησιμοποιήσει τη λογική διεύθυνση για να αποκτήσει πρόσβαση στη φυσική διεύθυνση. | Ο χρήστης δεν έχει άμεση πρόσβαση στη φυσική διεύθυνση. |
Σύνοψη – Λογική διεύθυνση έναντι φυσικής διεύθυνση
Η διαφορά μεταξύ της λογικής διεύθυνσης και της φυσικής διεύθυνσης είναι ότι η CPU δημιουργεί λογική διεύθυνση όταν εκτελείται το πρόγραμμα, ενώ η φυσική διεύθυνση είναι μια θέση στη μονάδα μνήμης. Όλες οι λογικές διευθύνσεις πρέπει να αντιστοιχιστούν σε φυσικές διευθύνσεις για να μπορέσει το MMU να τις χρησιμοποιήσει. Οι φυσικές και οι λογικές διευθύνσεις είναι ίδιες όταν χρησιμοποιείται η δέσμευση διεύθυνσης χρόνου μεταγλώττισης και χρόνου φόρτωσης, αλλά διαφέρουν όταν χρησιμοποιείται δέσμευση διευθύνσεων χρόνου εκτέλεσης.