Der Hauptunterschied zwischen logischer Adresse und physikalischer Adresse besteht darin, dass die CPU während der Programmausführung eine logische Adresse generiert, während die physikalische Adresse ein Ort in der Speichereinheit ist.
In einfachen Worten, die CPU generiert die logische Adresse oder virtuelle Adresse. Aus der Perspektive eines laufenden Programms scheint sich ein Element an der Adresse zu befinden, die von der logischen Adresse bereitgestellt wird. Die Speichereinheit beobachtet die physikalische Adresse. Außerdem ermöglicht es den Zugriff auf eine bestimmte Speicherzelle im Hauptspeicher über den Datenbus.
Was ist eine logische Adresse?
CPU generiert logische Adresse. Aus der Perspektive eines laufenden Programms scheint sich ein Element an der Adresse zu befinden, die von der logischen Adresse bereitgestellt wird. Anwendungsprogramme, die auf dem Computer ausgeführt werden, sehen die physikalischen Adressen nicht. Sie arbeiten immer mit den logischen Adressen. Der logische Adressraum ist die Menge logischer Adressen, die ein Programm generiert. Es ist notwendig, die logischen Adressen physikalischen Adressen zuzuordnen, bevor sie verwendet werden. Die Hardware-Einheit Memory Management Unit (MMU) übernimmt diesen Mapping-Prozess.
MMU-Mapping-Schemata
MMU folgt mehreren Zuordnungsschemata. Im einfachsten Abbildungsschema wird der Wert im Verschiebungsregister zu jeder logischen Adresse addiert, die von Anwendungsprogrammen erzeugt wird, bevor sie an den Speicher gesendet werden. Es gibt auch einige andere komplexe Methoden, um das Mapping zu generieren. Die Adressbindung (d. h. das Zuordnen von Befehlen und Daten zu Speicheradressen) kann zu drei verschiedenen Zeitpunkten erfolgen.
Abbildung 01: Logische und physikalische Adresse
Erstens kann es zur Kompilierzeit passieren, wenn die tatsächlichen Speicherorte im Voraus bekannt sind, und dies würde den absoluten Code zur Kompilierzeit erzeugen. Es kann auch zur Ladezeit passieren, wenn die Speicherorte nicht im Voraus bekannt sind. Dazu muss zur Kompilierzeit verschiebbarer Code generiert werden. Darüber hinaus kann die Adressbindung zur Ausführungszeit erfolgen. Dies erfordert Hardwareunterstützung für die Adresszuordnung. Bei der Adressbindung zur Kompilierungs- und Ladezeit sind logische und physische Adressen gleich. Dieses Verfahren ist jedoch anders, wenn die Adressbindung zur Ausführungszeit erfolgt.
Was ist eine physische Adresse?
Speichereinheit beobachtet die physikalische Adresse oder die reale Adresse. Es ermöglicht dem Datenbus, auf eine bestimmte Speicherzelle im Hauptspeicher zuzugreifen. MMU ordnet die logische Adresse der physikalischen Adresse zu. Unter Verwendung des einfachsten Abbildungsschemas, das den Wert des Verschiebungsregisters (angenommen, dass der Wert im Register y ist) zur logischen Adresse hinzufügt, würde ein logischer Adressbereich von 0 bis x einem physikalischen Adressbereich y bis x+ zugeordnet y.
Außerdem wird dies auch als physischer Adressraum dieses Programms bezeichnet. Alle logischen Adressen müssen physikalischen Adressen zugeordnet werden, bevor sie verwendet werden können.
Was ist der Unterschied zwischen logischer Adresse und physischer Adresse?
Logische Adresse vs. Physische Adresse |
|
Logische Adresse ist die Adresse, an der sich ein Element aus der Perspektive eines ausführenden Anwendungsprogramms zu befinden scheint. | Physikalische Adresse ist eine Speicheradresse, die in Form einer Binärzahl auf der Adressbussch altung dargestellt wird, um dem Datenbus den Zugriff auf eine bestimmte Speicherzelle des Hauptspeichers oder ein Register des Speichers zu ermöglichen, das I zugeordnet ist /O Gerät. |
Sichtbarkeit | |
Der Benutzer kann die logische Adresse eines Programms anzeigen. | Der Benutzer kann die physische Adresse des Programms nicht sehen. |
Erzeugungsmethode | |
CPU generiert die logische Adresse. | MMU berechnet die physikalische Adresse. |
Barrierefreiheit | |
Der Benutzer kann die logische Adresse verwenden, um auf die physische Adresse zuzugreifen. | Der Benutzer kann nicht direkt auf die physische Adresse zugreifen. |
Zusammenfassung – Logische Adresse vs. physische Adresse
Der Unterschied zwischen logischer Adresse und physischer Adresse besteht darin, dass die CPU eine logische Adresse generiert, wenn das Programm ausgeführt wird, während die physische Adresse ein Ort in der Speichereinheit ist. Alle logischen Adressen müssen physikalischen Adressen zugeordnet werden, bevor die MMU sie verwenden kann. Physische und logische Adressen sind identisch, wenn die Adressbindung zur Kompilierzeit und zur Ladezeit verwendet wird, aber sie unterscheiden sich, wenn die Adressbindung zur Ausführungszeit verwendet wird.