MMU

A Wikipédiából, a szabad enciklopédiából
(Memory management unit szócikkből átirányítva)
68451 MMU, a Motorola 68010 CPU-hoz kapcsolható

A memóriakezelő egység vagy memóriavezérlő (memory management unit, MMU) egy olyan számítógépes hardverkomponens, amely a CPU által kiadott memóriahozzáférési kérelmeket kezeli. Funkciói a virtuális címek fizikai címekre való fordítása, azaz a virtuális memória kezelése, a memóriavédelem, a CPU gyorsítótár vezérlése, a sínütemezési funkciók (bus arbitration) és az egyszerűbb számítógép-architektúráknál (különösen a 8 bites rendszerekben) a memória-bankváltás (lapozás).

Lényegében a MMU valamilyen szempontból módosítja a memóriacímzést, amíg eljut a „fizikai” memóriához a művelet. A MMU lehet külön egység (külön IC), de előfordulhat a CPU-ba beépítve is.

Ebben a vonatkozásban már a Commodore 64 is tartalmazott MMU-t, hiszen a 64 KiB címtartománnyal rendelkező 6510 CPU nem tudná megcímezni a Commodore 64 összes memóriáját, ami a 64 KiB RAM-on kívül még sok mást is tartalmazott. Ezért itt külső logika, processzoron kívüli áramkör valósítja meg ezt a „címleképezést”. Még szebb példa az Enterprise 128, ahol a szintén 64 KiB címtartománnyal rendelkező Z80 CPU 4 MiB memóriatartományt képes megcímezni úgy, hogy a 16 KiB-os szeletenként állítható egy külső csip (a Dave csip) programozásával, hogy melyik fizikai memóriaterület „látszódjon ott”.

„Modernebb” értelemben az MMU alatt általában olyan egységet értünk, ami képes az Intel 80386-szerű memóriamenedzsment funkciók megvalósítására (a legtöbb mai modern CPU rendelkezik – legalább elviekben – hasonló képességgel), azaz a szegmentálásra, lapozásra és memóriavédelemre, ebben a megfogalmazásban a Commodore 64 és az Enterprise viszont nem tekinthető olyan rendszernek, ami tartalmaz MMU-t …

Nem is olyan régen még a fenti értelmben vett MMU hiánya egyet jelentett a „modern” operációs rendszerek használhatatlanságával egy ilyen gépen, azonban ma már például a Linux képes ilyen rendszeren a működésre (bár bizonyos megkötések lesznek) hála elsősorban a ucLinux projektnek, ami a 2.6 kernelekben már benne van.