Pomnilniška enota
Ta članek potrebuje čiščenje. Pri urejanju upoštevaj pravila slogovnega priročnika. |
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
urediRač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