Het belangrijkste verschil tussen logisch adres en fysiek adres is dat de CPU een logisch adres genereert tijdens de uitvoering van het programma, terwijl het fysieke adres een locatie in de geheugeneenheid is.
In eenvoudige bewoordingen genereert de CPU het logische adres of het virtuele adres. Vanuit het perspectief van een programma dat draait, lijkt een item zich te bevinden op het adres dat door het logische adres wordt opgegeven. Geheugeneenheid neemt het fysieke adres waar. Bovendien biedt het toegang tot een bepaalde geheugencel in het hoofdgeheugen via de databus.
Wat is een logisch adres?
CPU genereert logisch adres. Vanuit het perspectief van een programma dat draait, lijkt een item zich te bevinden op het adres dat door het logische adres wordt opgegeven. Toepassingsprogramma's die op de computer worden uitgevoerd, zien de fysieke adressen niet. Ze werken altijd met de logische adressen. De logische adresruimte is de verzameling logische adressen die een programma genereert. Het is noodzakelijk om de logische adressen toe te wijzen aan fysieke adressen voordat u ze gebruikt. Het hardwareapparaat Memory Management Unit (MMU) handelt dit toewijzingsproces af.
MMU-toewijzingsschema's
MMU volgt verschillende kaartschema's. In het eenvoudigste toewijzingsschema wordt de waarde in het verplaatsingsregister toegevoegd aan elk logisch adres dat door toepassingsprogramma's wordt geproduceerd voordat ze naar het geheugen worden verzonden. Er zijn ook enkele andere complexe methoden om de mapping te genereren. Adresbinding (d.w.z. het toewijzen van instructies en gegevens aan geheugenadressen) kan op drie verschillende tijdstippen plaatsvinden.
Figuur 01: Logisch en fysiek adres
Ten eerste kan het tijdens het compileren gebeuren als de werkelijke geheugenlocaties van tevoren bekend zijn, en dit zou de absolute code tijdens het compileren genereren. Het kan ook gebeuren tijdens het laden als de geheugenlocaties niet van tevoren bekend zijn. Hiervoor moet herplaatsbare code worden gegenereerd tijdens het compileren. Bovendien kan adresbinding plaatsvinden op het moment van uitvoering. Dit vereist hardwareondersteuning voor adrestoewijzing. Bij het compileren en laden van adressen zijn logische en fysieke adressen hetzelfde. Maar deze procedure is anders wanneer adresbinding plaatsvindt in de uitvoeringstijd.
Wat is fysiek adres?
Geheugeneenheid observeert het fysieke adres of het echte adres. Hiermee kan de databus toegang krijgen tot een bepaalde geheugencel in het hoofdgeheugen. MMU wijst het logische adres toe aan het fysieke adres. Als u bijvoorbeeld het eenvoudigste toewijzingsschema gebruikt, waarbij de waarde van het verplaatsingsregister (aangenomen dat de waarde in het register y is) aan het logische adres wordt toegevoegd, zou een logisch adresbereik van 0 tot x worden toegewezen aan een fysiek adresbereik y tot x+ y.
Bovendien wordt dit ook wel de fysieke adresruimte van dat programma genoemd. Alle logische adressen moeten worden toegewezen aan fysieke adressen voordat ze kunnen worden gebruikt.
Wat is het verschil tussen logisch adres en fysiek adres?
Logisch adres versus fysiek adres |
|
Logisch adres is het adres waarop een item zich lijkt te bevinden vanuit het perspectief van een uitvoerend applicatieprogramma. | Fysiek adres is een geheugenadres dat wordt weergegeven in de vorm van een binair getal op de adresbuscircuits om de databus toegang te geven tot een bepaalde opslagcel van het hoofdgeheugen, of een register van toegewezen geheugen I /O apparaat. |
Zichtbaarheid | |
De gebruiker kan het logische adres van een programma bekijken. | De gebruiker kan het fysieke adres van het programma niet zien. |
Generatiemethode | |
CPU genereert het logische adres. | MMU berekent het fysieke adres. |
Toegankelijkheid | |
De gebruiker kan het logische adres gebruiken om toegang te krijgen tot het fysieke adres. | De gebruiker heeft geen directe toegang tot het fysieke adres. |
Samenvatting – Logisch adres versus fysiek adres
Het verschil tussen logisch adres en fysiek adres is dat de CPU een logisch adres genereert wanneer het programma wordt uitgevoerd, terwijl het fysieke adres een locatie in de geheugeneenheid is. Alle logische adressen moeten worden toegewezen aan fysieke adressen voordat de MMU ze kan gebruiken. Fysieke en logische adressen zijn hetzelfde wanneer compileertijd en laadtijd adresbinding worden gebruikt, maar ze verschillen wanneer uitvoeringstijd adresbinding wordt gebruikt.