Pomnilniška enota

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje

Pomnilniška enota (ang. Memory Management Unit) je računalniška komponenta, odgovorna za pomnilniški dostop, kot ga procesor zahteva. Naloga pomnilniške enote je pretvorba navideznega naslova v fizični naslov.

Naslavljanje[uredi | uredi kodo]

Lokacija logičnega naslova v linearnem.

Računalniški program sam ne more spreminjati lokacije segmentov. Posredno lahko spreminja položaj logičnega naslova za kodni in skladovni segment. Položaj podatkovnega segmenta se izračuna s posebnimi formulami. Zaradi različnosti podatkov, poznamo več formul za izračun položaja. Logočni naslov sestavlja 16-bitni segment in 32-bitni položaj. Kadar je segment procesorju znan (je v segmentnih registrih), procesor operira z bližnjimi kazalci. Če pa segment ni znan, pa operira z oddaljenimi kazalci.

Glavna formula za izračun položaja je slednja:

  • baza, indeks: vrednost vsestranskega registra,
  • skala: število 2, 4 ali 8 ki je pomnoži z indeksu,
  • premik: 8-, 16- ali 32-bitna vrednost.


Iz te osnovne formule pa dobimo pet formul. Vsaka je namenjena za določene pomnilniške posege.

  • premik: predstavlja neposreden naslov operanda v določenemu segmentu,
  • baza: predstavlja posreden naslov operanda v določenem segmentu,
  • baza + premik: formula lahko služi kot premik po polju, kjer velikost polja ni 2, 4 ali 8 bajtov ali pa kot dostop do polja v zapisu.
  • (indeks * skala) + premik: indeksiranje po statičnem polju, kjer je element velik 2, 4 ali 8 bajtov
  • baza + indeks + premik: naslavljanje v dvodimenzionalnem polju