Avainero loogisen osoitteen ja fyysisen osoitteen välillä on, että CPU luo loogisen osoitteen ohjelman suorituksen aikana, kun taas fyysinen osoite on muistiyksikön sijainti.
Yksinkertaisesti sanottuna CPU luo loogisen osoitteen tai virtuaaliosoitteen. Käynnissä olevan ohjelman näkökulmasta kohde näyttää olevan loogisen osoitteen antamassa osoitteessa. Muistiyksikkö tarkkailee fyysistä osoitetta. Lisäksi se mahdollistaa pääsyn tiettyyn muistisoluun päämuistissa dataväylän kautta.
Mikä on looginen osoite?
CPU luo loogisen osoitteen. Käynnissä olevan ohjelman näkökulmasta kohde näyttää olevan loogisen osoitteen antamassa osoitteessa. Tietokoneessa käynnissä olevat sovellusohjelmat eivät näe fyysisiä osoitteita. Ne toimivat aina käyttämällä loogisia osoitteita. Looginen osoiteavaruus on joukko loogisia osoitteita, jotka ohjelma luo. Loogiset osoitteet on kartoitettava fyysisiin osoitteisiin ennen niiden käyttöä. Laitteiston muistinhallintayksikkö (MMU) hoitaa tämän kartoitusprosessin.
MMU-kartoituskaaviot
MMU noudattaa useita kartoitusmenetelmiä. Yksinkertaisimmassa kartoitusmenetelmässä siirtorekisterin arvo lisätään jokaiseen sovellusohjelmien tuottamaan loogiseen osoitteeseen ennen niiden lähettämistä muistiin. On myös joitain muita monimutkaisia menetelmiä kartoituksen luomiseen. Osoitteiden sidonta (eli ohjeiden ja tietojen allokointi muistiosoitteisiin) voi tapahtua kolmella eri hetkellä.
Kuva 01: Looginen ja fyysinen osoite
Ensinnäkin se voi tapahtua käännösajassa, jos todelliset muistipaikat tiedetään etukäteen, ja tämä generoisi absoluuttisen koodin käännösajassa. Se voi tapahtua myös latausaikana, jos muistipaikkoja ei tiedetä etukäteen. Tätä varten käännösvaiheessa on luotava uudelleen paikannettavissa oleva koodi. Lisäksi osoitteen sidonta voi tapahtua suoritusaikana. Tämä vaatii laitteistotuen osoitekartoituksessa. Käännösajan ja latausajan osoitteiden sitomisessa looginen ja fyysinen osoitteet ovat samat. Mutta tämä menettely on erilainen, kun osoitteen sidonta tapahtuu suoritusaikana.
Mikä on fyysinen osoite?
Muistiyksikkö tarkkailee fyysistä osoitetta tai oikeaa osoitetta. Sen avulla tietoväylä voi käyttää tiettyä muistisolua päämuistissa. MMU yhdistää loogisen osoitteen fyysiseen osoitteeseen. Esimerkiksi käyttämällä yksinkertaisinta kartoitusmenetelmää, joka lisää siirtorekisterin (olettaen, että rekisterin arvo on y) arvon loogiseen osoitteeseen, looginen osoite, joka on välillä 0 - x, kartoittaisi fyysiseen osoitealueeseen y - x+ y.
Lisäksi tätä kutsutaan myös ohjelman fyysiseksi osoiteavaruudeksi. Kaikki loogiset osoitteet on kartoitettava fyysisiksi osoitteiksi ennen kuin niitä voidaan käyttää.
Mitä eroa on loogisella osoitteella ja fyysisellä osoitteella?
Looginen osoite vs fyysinen osoite |
|
Looginen osoite on osoite, jossa kohde näyttää sijaitsevan suorittavan sovellusohjelman näkökulmasta. | Fyysinen osoite on muistiosoite, joka esitetään binäärilukuna osoiteväyläpiirissä, jotta tietoväylä pääsee käsiksi tiettyyn päämuistin tai I-kartoitettuun muistirekisteriin. /O laite. |
Näkyvyys | |
Käyttäjä voi tarkastella ohjelman loogista osoitetta. | Käyttäjä ei voi tarkastella ohjelman fyysistä osoitetta. |
Sukupolvimenetelmä | |
CPU luo loogisen osoitteen. | MMU laskee fyysisen osoitteen. |
Esteettömyys | |
Käyttäjä voi käyttää fyysistä osoitetta loogisen osoitteen avulla. | Käyttäjä ei pääse suoraan fyysiseen osoitteeseen. |
Yhteenveto – Looginen osoite vs fyysinen osoite
Loogisen osoitteen ja fyysisen osoitteen ero on siinä, että CPU luo loogisen osoitteen ohjelman suoritettaessa, kun taas fyysinen osoite on paikka muistiyksikössä. Kaikki loogiset osoitteet on kartoitettava fyysisiksi osoitteiksi ennen kuin MMU voi käyttää niitä. Fyysiset ja loogiset osoitteet ovat samat käytettäessä käännösajan ja latausajan osoitteiden sidontaa, mutta ne eroavat käytettäessä suoritusajan osoitteiden sidontaa.