Diferența dintre adresa logică și adresa fizică

Anonim

Adresă logică vs. Adresa fizică

În termeni simpli, o adresă generată de CPU este cunoscută ca o adresă logică. Adresele logice sunt, de asemenea, denumite adrese virtuale. Din perspectiva unui program care rulează, un element pare să fie localizat în adresa furnizată de adresa logică. Adresa fizică (numită și adresa reală) este adresa văzută de unitatea de memorie și permite accesarea unei anumite celule de memorie în memoria principală de către magistrala de date.

Ce este o adresă logică?

Adresa logică este adresa generată de CPU. Din perspectiva unui program care rulează, un element pare să fie localizat în adresa furnizată de adresa logică. Aplicațiile care rulează pe computer nu văd adresele fizice. Ei lucrează întotdeauna folosind adresele logice. Spațiul de adrese logic este setul de adrese logice generate de un program. Adresele logice trebuie să fie mapate la adresele fizice înainte de a fi utilizate și această cartografiere este gestionată folosind un dispozitiv hardware numit Unitatea de gestionare a memoriei (MMU). Există mai multe scheme de mapare utilizate de MMU. În cea mai simplă schemă de mapare, valoarea din registrul de relocare este adăugată la fiecare adresă logică produsă de programele de aplicație înainte de a le trimite în memorie. Există, de asemenea, și alte metode complexe care sunt utilizate pentru generarea cartografierii. Legarea adreselor (de exemplu, alocarea instrucțiunilor și datelor adreselor de memorie) se poate întâmpla în trei momente diferite. Legarea adreselor poate avea loc în timpul compilării dacă locațiile de memorie reale sunt cunoscute în avans și acest lucru va genera codul absolut în timpul de compilare. Legarea adreselor se poate întâmpla și la momentul încărcării dacă locațiile de memorie nu sunt cunoscute în prealabil. Pentru aceasta, codul care trebuie localizat trebuie să fie generat la momentul compilării. Mai mult, legarea adreselor se poate întâmpla la timpul de execuție. Acest lucru necesită suport hardware pentru maparea adreselor. În timpul de compilare și a timpului de încărcare, legăturile adreselor logice și fizice sunt aceleași. Dar, în timp de executare obligatorie, sunt diferite.

Ce este o adresă fizică?

Adresa fizică sau adresa reală este adresa văzută de unitatea de memorie și permite colecției de date să acceseze o anumită celulă de memorie din memoria principală. Adresele logice generate de CPU la executarea unui program sunt mapate la adresa fizică folosind MMU. De exemplu, folosindu-se cea mai simplă schemă de mapare, care adaugă la adresa logică registrul de relocare (presupunem că valoarea din registru este y), un interval de adrese logic de la 0 la x ar fi mapat la un interval fizic de adrese y la x + y. acest lucru este, de asemenea, numit spațiul de adresă fizică a acelui program.Toate adresele logice trebuie să fie cartografiate în adrese fizice înainte ca acestea să poată fi utilizate.

Care este diferența dintre o adresă logică și o adresă fizică?

Adresa logică este adresa generată de CPU (din perspectiva unui program care rulează), în timp ce adresa fizică (sau adresa reală) este adresa văzută de unitatea de memorie și permite busului de date să acceseze o anumită memorie în memoria principală. Toate adresele logice trebuie să fie cartografiate în adrese fizice înainte ca acestea să poată fi utilizate de MMU. Adresele fizice și logice sunt identice atunci când se utilizează timpul de compilare și legarea adresei de timp de încărcare, dar acestea diferă atunci când se utilizează legarea adresei de execuție.