Szegmens memóriacímzés

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. június 21-én felülvizsgált verziótól ; az ellenőrzéshez 1 szerkesztés szükséges .


A memóriaszegmens-címzés  egy logikai memóriacímzési séma egy x86 architektúrájú számítógép számára . Egy adott memóriacella lineáris címe, amely a processzor bizonyos üzemmódjaiban megegyezik a fizikai címmel, két részre oszlik: szegmensre és eltolásra . A szegmens a címtér egy bizonyos méretű, feltételesen lefoglalt területe, az eltolás  pedig egy memóriacella címe a szegmens elejéhez képest. A szegmens alapja egy lineáris cím (a teljes memóriamennyiséghez viszonyított cím), amely a szegmens elejére mutat a címtérben. Az eredmény egy szegmens (logikai) cím , amely megfelel a lineáris címszegmens alap + eltolásnak , és amelyet a processzor a címbuszra állít be.

A szelektor egy szám (  16 bites x86 -ban), amely egyedileg azonosít egy szegmenst. A szelektor betöltődik a szegmensregiszterekbe.

Az x86 processzor valós és védett üzemmódjában a szegmenscímzés működése eltérő.

Szegmenscímzés valós módban

A processzor valós üzemmódjában a teljes címteret 65536 bájtos ( byte) azonos szegmensekre osztják . Minden következő szegmens eleje (ún. szegmensbázis) eltolódik az előző bázisához képest a minimális szegmensmérettel, azaz 16 bájttal (az ún. bekezdés ). Így a szegmensek részben átfedhetik egymást. (Például a 2. szegmens 17. bájtja egyben 3. szegmens és 1. bájt is.)

A szelektor 16 bites, és a szegmens számát határozza meg. Tekintettel arra, hogy a szegmensek konstans, 2 4 =16 bájt intervallumban követik egymást , nagyon könnyű megtudni a szegmens lineáris címét, ha megszorozzuk 16-tal (vagy 4 bittel balra toljuk).

Szegmens címzés védett módban (választó címzés)

A processzor védett üzemmódjában egy feladat címterét különböző méretű, eltérő alapokkal rendelkező szegmensekre osztják fel. A leíró táblákban (GDT és LDT) tárolt szegmensleírók a szegmensek alapjának és méretének meghatározására szolgálnak .

Itt a 3. és a 11. szegmens ugyanarra a területre mutat, és álnevek (az angol  Aliasból álnevek ). A 7. szegmens az 1., 2., 3. és 11. szegmenst öleli fel. Az 5. szegmens a GDT-re mutat, lehetővé téve annak módosítását (ez semmilyen módon nem vonatkozik a GDT-re - a tényleges fogója a GDTR regiszter (sárgával látható)). Hasonló a címzés a helyi leíró táblán (LDT) keresztül.

A szelektor szintén 16 bites, de három részre oszlik: RPL (0-1. bit), TI (2. bit) és leírószám (3-15. bit).

Lásd még

Jegyzetek

Linkek