Różnica między adresem logicznym a adresem fizycznym

Spisu treści:

Różnica między adresem logicznym a adresem fizycznym
Różnica między adresem logicznym a adresem fizycznym

Wideo: Różnica między adresem logicznym a adresem fizycznym

Wideo: Różnica między adresem logicznym a adresem fizycznym
Wideo: Logical Vs Physical Address Space 2024, Listopad
Anonim

Kluczowa różnica między adresem logicznym a adresem fizycznym polega na tym, że procesor generuje adres logiczny podczas wykonywania programu, podczas gdy adres fizyczny jest lokalizacją w jednostce pamięci.

W uproszczeniu CPU generuje adres logiczny lub adres wirtualny. Z perspektywy uruchomionego programu element wydaje się znajdować pod adresem podanym przez adres logiczny. Jednostka pamięci obserwuje adres fizyczny. Ponadto umożliwia dostęp do określonej komórki pamięci w pamięci głównej za pomocą magistrali danych.

Różnica między adresem logicznym a adresem fizycznym - podsumowanie porównania
Różnica między adresem logicznym a adresem fizycznym - podsumowanie porównania
Różnica między adresem logicznym a adresem fizycznym - podsumowanie porównania
Różnica między adresem logicznym a adresem fizycznym - podsumowanie porównania

Co to jest adres logiczny?

CPU generuje adres logiczny. Z perspektywy uruchomionego programu element wydaje się znajdować pod adresem podanym przez adres logiczny. Programy aplikacji działające na komputerze nie widzą adresów fizycznych. Działają zawsze przy użyciu adresów logicznych. Logiczna przestrzeń adresowa to zbiór adresów logicznych generowanych przez program. Konieczne jest mapowanie adresów logicznych na adresy fizyczne przed ich użyciem. Urządzenie sprzętowe Memory Management Unit (MMU) obsługuje ten proces mapowania.

Schematy mapowania MMU

MMU stosuje kilka schematów mapowania. W najprostszym schemacie mapowania wartość w rejestrze relokacji jest dodawana do każdego adresu logicznego wytwarzanego przez programy użytkowe przed wysłaniem ich do pamięci. Istnieją również inne złożone metody generowania mapowania. Wiązanie adresów (tj. przydzielanie instrukcji i danych do adresów pamięci) może nastąpić w trzech różnych momentach.

Różnica między adresem logicznym a adresem fizycznym
Różnica między adresem logicznym a adresem fizycznym
Różnica między adresem logicznym a adresem fizycznym
Różnica między adresem logicznym a adresem fizycznym

Rysunek 01: Adres logiczny i fizyczny

Po pierwsze, może się to zdarzyć w czasie kompilacji, jeśli rzeczywiste lokalizacje pamięci są znane z góry, a to wygenerowałoby kod bezwzględny w czasie kompilacji. Może się to również zdarzyć w czasie ładowania, jeśli lokalizacje pamięci nie są znane z góry. W tym celu w czasie kompilacji należy wygenerować kod relokowalny. Ponadto powiązanie adresu może nastąpić w czasie wykonywania. Wymaga to obsługi sprzętowej mapowania adresów. W wiązaniu adresów w czasie kompilacji i w czasie ładowania adresy logiczne i fizyczne są takie same. Ale ta procedura jest inna, gdy powiązanie adresu ma miejsce w czasie wykonywania.

Co to jest adres fizyczny?

Jednostka pamięci obserwuje adres fizyczny lub adres rzeczywisty. Pozwala szynie danych na dostęp do określonej komórki pamięci w pamięci głównej. MMU mapuje adres logiczny na adres fizyczny. Na przykład, używając najprostszego schematu mapowania, który dodaje wartość rejestru relokacji (załóżmy, że wartość w rejestrze to y) do adresu logicznego, adres logiczny z zakresu od 0 do x będzie mapował na zakres adresu fizycznego od y do x+ r.

Ponadto nazywa się to również fizyczną przestrzenią adresową tego programu. Wszystkie adresy logiczne muszą zostać zmapowane na adresy fizyczne, zanim będą mogły zostać użyte.

Jaka jest różnica między adresem logicznym a adresem fizycznym?

Adres logiczny a adres fizyczny

Adres logiczny to adres, pod którym element wydaje się znajdować z perspektywy wykonywanej aplikacji. Adres fizyczny to adres pamięci reprezentowany w postaci liczby binarnej na obwodzie magistrali adresowej, aby umożliwić magistrali danych dostęp do określonej komórki pamięci głównej lub rejestru pamięci zmapowanej I /O urządzenie.
Widoczność
Użytkownik może zobaczyć adres logiczny programu. Użytkownik nie może zobaczyć fizycznego adresu programu.
Metoda generowania
CPU generuje adres logiczny. MMU oblicza adres fizyczny.
Ułatwienia dostępu
Użytkownik może użyć adresu logicznego, aby uzyskać dostęp do adresu fizycznego. Użytkownik nie ma bezpośredniego dostępu do adresu fizycznego.

Podsumowanie – Adres logiczny a adres fizyczny

Różnica między adresem logicznym a adresem fizycznym polega na tym, że procesor generuje adres logiczny podczas wykonywania programu, podczas gdy adres fizyczny jest lokalizacją w jednostce pamięci. Wszystkie adresy logiczne muszą zostać zmapowane na adresy fizyczne, zanim MMU będzie mogło z nich korzystać. Adresy fizyczne i logiczne są takie same w przypadku korzystania z wiązania adresu w czasie kompilacji i w czasie ładowania, ale różnią się w przypadku korzystania z wiązania adresu w czasie wykonywania.

Zalecana: