Unterschied zwischen logischer Adresse und physikalischer Adresse

Anonim

Logische Adresse gegen physikalische Adresse

In einfacher Weise ist eine von der CPU erzeugte Adresse als logische Adresse bekannt. Logische Adressen werden auch als virtuelle Adressen bezeichnet. Aus der Perspektive eines laufenden Programms scheint sich ein Element in der Adresse zu befinden, die von der logischen Adresse bereitgestellt wird. Die physikalische Adresse (auch reale Adressen genannt) ist die von der Speichereinheit gesehene Adresse und ermöglicht den Zugriff auf eine bestimmte Speicherzelle im Hauptspeicher durch den Datenbus.

Was ist eine logische Adresse?

Die logische Adresse ist die Adresse, die von der CPU generiert wird. Aus der Perspektive eines laufenden Programms scheint sich ein Element in der Adresse zu befinden, die von der logischen Adresse bereitgestellt wird. Anwendungsprogramme, die auf dem Computer ausgeführt werden, sehen die physischen Adressen nicht. Sie arbeiten immer mit den logischen Adressen. Der logische Adressraum ist der Satz logischer Adressen, die von einem Programm erzeugt werden. Logische Adressen müssen physischen Adressen zugeordnet werden, bevor sie verwendet werden. Diese Zuordnung erfolgt über ein Hardware-Gerät namens Memory Management Unit (MMU). Es gibt verschiedene Mapping-Schemata, die von der MMU verwendet werden. Im einfachsten Zuordnungsschema wird der Wert im Umlagerungsregister zu jeder logischen Adresse hinzugefügt, die von Anwendungsprogrammen erzeugt wird, bevor sie an den Speicher gesendet werden. Es gibt auch einige andere komplexe Methoden, mit denen das Mapping generiert wird. Die Adressbindung (d. H. Zuweisen von Anweisungen und Daten in Speicheradressen) kann zu drei verschiedenen Zeiten stattfinden. Die Adressbindung kann in der Kompilierungszeit auftreten, wenn die tatsächlichen Speicherorte im Voraus bekannt sind und dies den absoluten Code in der Kompilierungszeit erzeugen würde. Die Adressbindung kann auch zur Ladezeit erfolgen, wenn die Speicherorte nicht im Voraus bekannt sind. Umsetzbarer Code muss dazu zur Kompilierungszeit generiert werden. Außerdem kann die Adressbindung zur Ausführungszeit erfolgen. Dies erfordert Hardware-Unterstützung für das Adress-Mapping. In der Kompilierungszeit und der Ladezeitadressbindung sind die logischen und physikalischen Adressen identisch. Aber in Ausführungszeit Adresse Bindung, sind sie unterschiedlich.

Was ist eine physikalische Adresse?

Die physikalische Adresse oder die reale Adresse ist die von der Speichereinheit gesehene Adresse und erlaubt dem Datenbus, auf eine bestimmte Speicherzelle im Hauptspeicher zuzugreifen. Logische Adressen, die bei der Ausführung eines Programms von der CPU erzeugt werden, werden über die MMU in die physikalische Adresse abgebildet. Beispielsweise würde ein logischer Adressbereich von 0 bis x unter Verwendung des einfachsten Abbildungsschemas, das das Relokationsregister (unter der Annahme, dass der Wert im Register y ist) zu der logischen Adresse hinzufügt, einem physikalischen Adressbereich y bis x + y. Dies wird auch als physikalischer Adressraum dieses Programms bezeichnet.Alle logischen Adressen müssen physischen Adressen zugeordnet werden, bevor sie verwendet werden können.

Was ist der Unterschied zwischen einer logischen Adresse und einer physikalischen Adresse?

Die logische Adresse ist die Adresse, die von der CPU (aus der Perspektive eines laufenden Programms) erzeugt wird, während die physikalische Adresse (oder die reale Adresse) die von der Speichereinheit gesehene Adresse ist und es dem Datenbus ermöglicht, Speicherzelle im Hauptspeicher. Alle logischen Adressen müssen physischen Adressen zugeordnet werden, bevor sie von der MMU verwendet werden können. Physische und logische Adressen sind dieselben, wenn die Kompilierungszeit und die Ladezeitadressenbindung verwendet werden, aber sie unterscheiden sich, wenn sie die Bindungszeit der Ausführungszeitadressen verwenden.