En MMU er indeholdt i de følgende processorer i 68000-familien: 68030,
68040, 68060. Der er også såkaldte EC-versioner af disse processorer, der har en fejlbehæftet MMU, der er ude af funktion. For eksempel har alle standard A4000/030
kun en 68EC030 CPU.
På tredjeparts-acceleratorboards varierer dette; se i den pågældende dokumentation for at lære mere om dette.
Så vidt vides, er alle 68040/68060'ere, der er bygget ind i en Amiga, fulde CPU'er, der indeholder en funktionel MMU. Dette skyldes, at Zorro III kræver MMU-mapping af I/O-rum.
Skelnen mellem en fuld CPU og en EC-version kan ikke foretages af
software.
Derfor må brugeren gøre ette ved at sætte de rigtige optioner for WHDLoad.
For 68020'eren er der en ekstern MMU kaldet 68851, men denne er pt. ikke understøttet af WHDLoad.
Funktioner for en MMU og brug i WHDLoad
Hovedformålet for MMU'en er at oversætte logiske til fysiske adresser. Dette er påkrævet for virtuel hukommelse og separerede adresserum.
En anden funktion er at specificere specielle egenskaber så som
Kun Supervisor, Skrivebeskyttet og Caching-modus for hvert fysiske adresserum, konfigureret på en sidebasis, hvor en side i WHDLoad har en størrelse på 4096 bytes. WHDLoad bruger ikke logisk-til-fysisk oversættelse Men den bruger MMU'en til memory protection, cache management og nogle specielle funktioner så som Snooping og resload_Protect#?.
Ved opstart scanner WHDLoad den tilgængelige hukommelsesliste og bygger et oversættelses-træ, der inkluderer al tilgængelig hukommelse. Den markerer de følgende adresserum som
gyldige og tilgængelige: $0...BaseMem (vha. informationen fra Slaven),
$dff000...$dff200 (Brugerdefinerede registre), $bfd000...$bff000 (CIA registre) og hukommelse brugt af Slaven og WHDLoad.
Hvis en Freezer bliver fundet i hukommelsen, vil hukommelsen brugt af Freezeren også blive markeret som gyldig. Al anden hukommelse er markeret som gyldig, og derfor vil hver adgang til et sådant område (Læsning eller Skrivning) skabe en Adgangsfejls-undtagelse, hvilket vil ende op i en passende fejlforespørger, oprettet af WHDLoad.
Der er 3 forskellige moduser, med hvilke WHDLoad påvirker en tilstedeværende MMU.
ignorer MMU:
I denne modus ændrer WHDLoad ikke nogen MMU-relaterede registre.
Dette kan være nyttigt, hvis du har kørende programmer, der belaster MMU'en og du vil have funktionaliteten i disse programmer bevaret (for eksempel en software freezer så som TK).
Advarsel: Fordi WHDLoad ikke selv kontrollerer MMU'en, kan en masse fejl være mulige. Disse problemer kan forårsage crashes, fejl i funktioner eller anden uforudsigelig, fejlagtig adfærd.
Her er en liste over eksisterende ricisi:
ved at køre Enforcer/CyberGuard eller et tilsvarende værktøj; dette vil låse/crachse maskinen, fordi WHDLoad vil skabe en masse Træfninger, hver gang den skifter OS'et fra og til.
Disse Træfninger er ikke fejl i WHDLoad, men en del af den normale operation.
nyere versioner af 68060.library (startende med v41.1) vil remappe hukommelsen
$0-$1000 (den første side) til en Fast memory lokation vha. MMU'en, i "ignore
MMU" modus vil denne adresseoversættelse forblive intakt, hvis det installerede program prøver at bruge dette område for DMA- aktioner (f.eks. en kobberliste i dette område); resultaterne vil være uforudsigelige, fordi CPU'en vil læse/skrive Fast memory-lokationen, mens DMA'erne gør det samme i den rigtige Chip-hukommelse, der indeholder vilkårlige data.
hvis det kørende MMU-stof bruger nogen hukommelse (undtagelseshåndterer, oversættelsestræ, ...) inde i BaseMem'en i det installerede program, kan det crashe, fordi BaseMem'en vil blive overskrevet under eksekvering af det installerede program
generelt hvert program der ændrer basale funktioner i systemet (vha. MMU'en) kan konflikte med WHDLoad ...
deaktiver MMU:
I denne modus, hvilket kun er muligt på 68030,
vil MMU'en blive slået fra af WHDLoad; ingen MMU-relaterede funktioner er tilgængelige.
brug MMU:
I denne modus taker WHDLoad fuld kontrol over MMU'en og realiserer hukommelsesbeskyttelse og cache-styring som forklaret ovenfor.
På 68030'eren er standard modus deaktiver MMU.
På 68040/68060 er standard brug MMU.
Der er to optioner til at kontrollere denne adfærd.
MMU/S tvinger WHDLoad til at bruge MMU'en og er nødvendig på 68030-systemer for at få adgang til MMU-funktionerne. NoMMU/S deaktiverer WHDLoad's MMU-brug (ignorer MMU).
Et Enforcer-hit er et Enforcer-hit, punktum. (Michael Sinz)