MMU a következő processzorokban található: 68030, 68040, 68060. Ezeknek van egy
úgynevezett EC verziójuk, amiben egy nem működő MMU van. Például minden
standard A4000/030-ben csak egy 68EC030 CPU van. Ez más processzorkártyáknál
változhat, nézd meg a dokumentációjukat. Én úgy tudom, hogy az összes Amigába
épített 68040/68060 teljes CPU, ami tartalmaz egy működő MMU-t (mivel a burstmode
és a Zorro III igényli az IO terület MMU vezérlését). A különbségtétel a teljes
és az EC verzió között szoftveres úton nem oldható meg (legalábbis elfogadható
időn belül). Ezért ezt a felhasználónak kell megtennie megfelelő opciók alkalmazásával.
A 68020-as részére van egy külső MMU, a 68851, de ezt a WHDLoad jelenleg
nem támogatja.
Az MMU jellemzői és használata a WHDLoad-ban
Az MMU fő feladata a logikai címek lefordítása fizikai címekre. Ez szükséges a
virtuális emóriához és a különválasztott címzésterekhez (például egy védett
többfeladatos rendszerben). Másik jellemzője, hogy olyan speciális
tulajdonságokat, mint a Supervisor Only, Write Protected és Cache módok, tud
beállitani minden fizikai címterülethez (laponként, ahol a WHDLoad egy 4096 byte
méretű lapot használ). A WHDLoad nem használ logikaiból fizikai címre fordítást.
De használja az MMU-t memóriavédelemhez, cache kezeléshez és néhány speciális lehetőséghez: (Figyelés, resload_Protect#?).
Indításnál a WHDLoad átnézi a memórialistát és felépíti a fordítási fát, amely
az összes elérhető memóriát tartalmazza. Elérhetőnek jelöli ki a következő
címterületeket: $0...BaseMem (a Slave információi alapján),
$dff000...$dff200 (Saját regiszterek), $bfd000...$bff000 (Cia regiszterek) és
a Slave és a WHDLoad á;ltal használt memóriát. Ha a Leállító megtalálható a
memóriában, az általa használt memória is érvényesnek lesz beállítva. Minden
más memória érvénytelennek lesz jelölve, és a hozzáférés (Olvasás vagy Írás)
ezekhez a területekhez Access Fault Exception hoz létre, ami a WHDLoad által
generált hibakérdezőben jelenik meg.
MMU mellőzése:
Ebben a módban a WHDLoad nem változtat meg egy MMU-hoz kötődő regisztert sem.
Ez hasznos lehet, ha egy olyan programot használsz, amely használja az MMU-t és
meg akarod őrizni a program funkcióit (például ilyen a szoftveres leállító TK).
Figyelem: mivel a WHDLoad nem maga vezérli az MMU-t, sok hiba előfordulhat.
Ezek a problémák összeomlásokat, hibás működést vagy egyéb nem belátható
következményeket okozhatnak. Itt a létező veszélyek listája:
Enforcer/CyberGuard vagy hasonló program futtatása leállíthatja a gépet,
mivel a WHDLoad nagyon sok jelzést generál amikor ki/bekapcsolja a rendszert.
Ezek nem hibák, hanem a normális működés részei.
68060.library új verziói (v41.1-el kezdődően) átrakják a $0-$1000 memóriát
(az első lapot) a Fast memóriába az MMU segítségével, "MMU mellőzése" módban ez
a címfordítás érvényes marad, és ha az installált program bármilyen DMA
műveletet (pl. egy copperlistát ezen a területen) hajt végre, az eredmény nem
lesz előrelátható, mivel a CPU egy Fast memóriahelyet fog olvasni mialatt a DMA
valódi Chip memóriája véletlenszerű adatokat fog tartalmazani.
ha a futó MMU a kivét kezelőjétől függ ("Access Fault" kivét), akkor
a NoTrapHandler/S opciót be kell
kapcsolni, egyébként minden kivétet a WHDLoad fog kezelni, ami kilép minden nem
várt dolog esetén
ha az MMU valamilyen memóriát (kivét kezelő, fordítási fa, ...) használ az
installált program BaseMem területén, össze fog omlani, mivel a BaseMem felül
lesz írva az installált program végrehajtása során (ideiglenesen)
általánosságban minden olyan program amely a rendszer alapvető funkcióit
változtatja meg (az MMU-t használva), összeakadhat a WHDLoad-dal ...
MMU kikapcsolva:
Ebben a módban, amely 68030-ason lehetséges, az MMU ki lesz kapcsolva, az MMU
specifikus lehetőségek sem érhetőek el.
MMU használata:
Ebben a módban a WHDLoad átveszi a teljes irányítást az MMU felett és beállítja
a memoriavédelmet és a cache kezelést a fent leírtak alapján.
68030on az alapértelmezett mód az MMU kikapcsolva. 68040/68060-on az
alapértelmezett az MMU használatban. Két opció vezérli ezt a visekedést.
MMU/S kötelezi a WHDLoad-ot az MMU használatára
és 68030-as rendszereken ez szükséges az MMU lehetőségek használatához.
NoMMU/S kikapcsolja az MMU használatát: a WHDLoad
(mellőzi az MMU-t).
Egy Enforcer hit az egy Enforcer hit, pont. (Michael Sinz)