[Main] [Docs] [Installs] [Search] [Team] [Guestbook] [Links]

WHDLoad és a Memory Management Unit (MMU)

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#?).

Memóriavédelem a WHDLoad-ban

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.

Az MMU kezelés felhasználói beállítása a WHDLoad-ben

3 különböző módon hat a WHDLoad a meglévő MMU-ra.
  1. 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:
  2. 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.
  3. 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)


[Main] [Docs] [Installs] [Search] [Team] [Guestbook] [Links]