MMU (Memory Management Unit)



mäluhaldusplokk Riistvaraseade või elektroonikaskeem, mis toetab virtuaalmälu ja saalimist (paging) virtuaalsete mäluaadresside tõlkimise teel füüsilisteks aadressideks.

Virtuaalne aadressiruum (protsessori poolt kasutatav aadresside hulk) on jaotatud lehekülgedeks, mille suurus on 2^N (harilikult mõni kilobait). Aadressi alumised N baiti (nihe lehekülje sees) jäetakse muutmata. Aadressi ülemised bitid kujutavad endast virtuaalset leheküljenumbrit. MMU sisaldab leheküljetabelit, mis on indekseeritud (võib olla assotsiatiivselt) leheküljanumbriga. Iga leheküljetabeli kanne (PTE - Page Table Entry) annab virtuaalsele leheküljele vastava füüsilise lehekülje numbri. Viimane koos lehekülje nihkega annab täieliku füüsilise aadressi.

PTE võib sisaldada ka informatsiooni selle kohta, kas leheküljele on kirjutatud pärast viimast kasutamist, mis tüüpi protsessid (kasutajarežiim, superviisorirežiim) võivad seda lugeda ja kirjutada ning kas seda peab puhverdama.

Võib juhtuda, et antud virtuaalsele leheküljele pole üldse eraldatud ruumi füüsilises mälus (muutmälus) ning sel juhul saadab MMU keskprotsessorile veateate "leheküljeviga". Opsüsteem püüab siis leida muutmälus vaba lehekülge ja genereerida uue PTE, et vastendada see nõutud virtuaalsele aadressile. Kui muutmälus pole ruumi, võib tekkida vajadus valida üks olemasolev lehekülg, kasutades selleks mingit asendusalgoritmi, ning salvestada see kettale (seda kutsutaksegi saalimiseks). Võib esineda ka leheküljetabeli kannete defitsiit ning sel juhul on opsüsteem sunnitud uue vastenduse jaoks vabastama ühe kande .

Multitegumsüsteemides võistlevad kõik protsessid omavahel mälukasutuse ja MMU pärast. Mõned mäluhaldusarhitektuurid võimaldavad igale protsessile leheküljetabelis oma piirkonda või konfiguratsiooni koos mehhanismiga erinevate vastenduste vahel ümberlülitumiseks. See tähendab, et kõik protsessid saavad omada samu virtuaalseid aadressiruume, selle asemel et nõuda ümberpaigutamist laadimise ajal.

MMU lahendab ka mälukillustuse probleemi. Pärast seda, kui mäluplokid on jaotatud ja vabastatud, võib mälu olla killustatud. Virtuaalmälu kasutamine võimaldab vastendada virtuaalaadresside pideva piirkonna füüsilise mälu mittepidevatele plokkidele.

Kui algul tegelesid mäluhaldusega spetsiaalsed mikroskeemid, siis hiljem ühendati mäluhaldurid keskprotsessoriga samasse mikroskeemi