Pojdi na vsebino

Pomnilniška enota

Iz Wikipedije, proste enciklopedije

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