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

The kluczowa różnicaMiędzy adresem logicznym a adresem fizycznym jest to CPU generuje adres logiczny podczas wykonywania programu, podczas gdy adres fizyczny jest lokalizacją w jednostce pamięci.

Mówiąc najprościej, 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 przez magistralę danych.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co to jest adres logiczny
3. Co to jest adres fizyczny
4. Porównanie obok siebie - Adres logiczny a adres fizyczny w formie tabeli
5. Podsumowanie

Co to jest adres logiczny?

CPU generuje adres logiczny. Z perspektywy uruchomionego programu element wydaje się znajdować pod adresem podanym przez adres logiczny. Programy działające na komputerze nie widzą adresów fizycznych. Zawsze działają przy użyciu adresów logicznych. Logiczna przestrzeń adresowa to zbiór adresów logicznych, który program generuje. Przed użyciem należy zmapować adresy logiczne na adresy fizyczne. Urządzenie sprzętowe Jednostka zarządzania pamięcią (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 logicznego adresu wygenerowanego przez aplikacje przed wysłaniem ich do pamięci. Istnieją również inne złożone metody generowania mapowania. Powiązanie adresu (tj. Przydzielenie instrukcji i danych do adresów pamięci) może nastąpić w trzech różnych momentach.

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 wygeneruje kod bezwzględny w czasie kompilacji. Może się to również zdarzyć w czasie ładowania, jeśli miejsca pamięci nie są wcześniej znane. W tym celu w czasie kompilacji należy wygenerować kod podlegający ponownej lokalizacji. Ponadto wiązanie adresów może nastąpić w czasie wykonywania. Wymaga to sprzętowej obsługi mapowania adresów. W czasie kompilacji i powiązaniu czasu ładowania adresu logiczne i fizyczne adresy są takie same. Ale ta procedura jest inna, gdy powiązanie adresu następuje w czasie wykonywania.

Co to jest adres fizyczny?

Jednostka pamięci obserwuje adres fizyczny lub adres rzeczywisty. Umożliwia magistrali danych dostęp do określonej komórki pamięci w pamięci głównej. MMU mapuje adres logiczny na adres fizyczny. Na przykład, korzystając z najprostszego schematu mapowania, który dodaje wartość rejestru relokacji (zakładając, że wartością w rejestrze jest y) wartość do adresu logicznego, adres logiczny z zakresu od 0 do x zamapowałby na zakres adresów fizycznych od y do x + y.

Ponadto jest to również nazywane fizyczną przestrzenią adresową tego programu. Wszystkie adresy logiczne muszą zostać zamapowane 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 wydaje się, że element znajduje się w perspektywie wykonującego programu aplikacji. Adres fizyczny to adres pamięci reprezentowany w postaci liczby binarnej w obwodach magistrali adresowej, aby umożliwić magistrali danych dostęp do szczególny komórka pamięci głównej pamięci lub rejestr urządzenia we / wy zamapowanego w pamięci.
Widoczność
Użytkownik może wyświetlić adres logiczny programu. Użytkownik nie może wyświetlić adresu fizycznego programu.
Metoda generowania
CPU generuje adres logiczny. MMU oblicza adres fizyczny.
Dostępność
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 CPU generuje adres logiczny podczas wykonywania programu, podczas gdy adres fizyczny jest miejscem w jednostce pamięci. Wszystkie adresy logiczne muszą zostać zamapowane na adresy fizyczne, zanim MMU będzie mogło ich użyć. Adresy fizyczne i logiczne są takie same, gdy używa się powiązania adresu w czasie kompilacji i czasu ładowania, ale różnią się, gdy stosuje się powiązanie adresu w czasie wykonania.

Odniesienie:

1. „Adres logiczny”. Wikipedia, Wikimedia Foundation, 30 kwietnia 2018 r. Dostępne tutaj 
2. „Adres fizyczny”. Wikipedia, Wikimedia Foundation, 30 kwietnia 2018 r. Dostępne tutaj 

Zdjęcie dzięki uprzejmości:

1. „Zasada MU” Przez Andre Schieleit - Praca własna, (domena publiczna) przez Commons Wikimedia