Seuraavissa 68000-perheen suorittimissa on MMU: 68030, 68040, 68060. Suorittimista on myös ns. EC-versioita, joissa on rikkinäinen, pois kytketty MMU. Esimerkiksi kaikissa vakiomallin A4000/030-koneissa on vain 68EC030-suoritin. Ulkopuolisten rakentamissa kiihdytinkorteissa tämä vaihtelee, katso tarkemmat tiedot ohjeista. Tietääkseni kaikki Amigoissa käytetyt 68040/68060-suorittimet ovat täydellisiä ja sisältävät toimivan MMU:n. Tämä johtuu siitä, että Zorro III vaatii IO-alueen MMU-ohjauksen. Kokonaista suoritinta ja EC-versiota ei voida erottaa ohjelmallisesti. Siksi käyttäjän on tehtävä se asettamalla WHDLoadille oikeat valinnat. 68020:lle on saatavilla ulkoinen MMU 68851, mutta WHDLoad ei tällä hetkellä tue sitä.
MMU:n ominaisuudet ja käyttö WHDLoadissa
MMU:n tärkein tarkoitus on muuntaa loogiset osoitteet fyysisiksi. Tämä vaaditaan virtuaalimuistille sekä erillisille osoiteavaruuksille. Toinen ominaisuus on kyky määrittää erikoisominaisuuksia kuten Supervisor Only-, Write Protected- ja Caching-tila jokaiselle fyysiselle osoiteavaruudelle sivupohjaisesti, jolloin WHDLoadin käyttämä sivu on 4096 tavua. WHDLoad ei käytä loogisten osoitteiden muuntoa fyysiseksi. Se käyttää MMU:ta muistin suojaukseen, välimuistn hallintaan sekä erikoistoimintohin, kuten Snooping ja resload_Protect#?.
Käynnistettäessä WHDLoad tarkistaa nykyisen muistilistan ja rakentaa käännöspuun, johon kuuluu kaikki käytettävissä oleva muisti. Se merkitsee seuraavat osoiteavaruudet kelvollisiksi ja käytettäviksi: $0...BaseMem (perustuen Slaven tietoihin), $dff000...$dff200 (Custom-rekisterit), $bfd000...$bff000 (CIA-rekisterit) sekä Slaven ja WHDLoadin käyttämä muisti. Jos muistista löytyy jäädytysohjelma, myös sen käyttämä muisti merkitään kelvolliseksi. Kaikki muu muisti merkitään epäkelvoksi, ja tällaisen alueen käyttö (luku tai kirjoitus) luo Access Fault Exception -poikkeuksen ja tuottaa WHDLoadin kautta sopivan virheilmoituksen.
WHDLoad voi vaikuttaa MMU:hun kolmella eri tavalla.
ohita MMU: Tässä tilassa WHDLoad ei muuta MMU:n rekistereitä. Tämä voi olla hyödyllistä, jos käynnissä olevat ohjelmat kuormittavat MMU:ta ja haluat niiden toiminnan pysyvän ennallaan (esim. TK:n kaltainen ohjelmistopohjainen jäädytysohjelma). Varoitus: Koska WHDLoad ei ohjaa MMU:ta itse, voi ilmetä paljon ongelmia. Ongelmat voivat aiheuttaa kaatumista, väärää toimintaa tai muuta ennustamatonta käytöstä. Tässä on lueteltuna joitakin riskejä:
Enforcerin/CyberGuardin tai vastaavan työkalun käyttäminen jumittaa/kaataa koneen, koska WHDLoad luo useita Hittejä joka kerta, kun käyttöjärjestelmä kytketäään pois ja päälle. Nämä eivät ole WHDLoadin bugeja vaan normaalia toimintaa.
uudemmat 68060.libraryn versiot (alkaen v41.1:stä) siirtävät muistiosoitteet $0-$1000 (ensimmäisen sivun) Fast-muistiin MMU:n avulla. MMU:n ohitustilassa tämä osoitemuunnos jää voimaan, ja jos asennettu ohjelma yrittää käyttää tätä aluetta DMA-toimintoihin (esim. copperlistiin), lopputuloksia ei voi ennustaa, sillä suoritin lukee ja kirjoittaa Fast-muistia kun taas DMA toimii Chip-muistissa, jossa voi olla mitä tahansa tietoa.
jos käynnissä oleva MMU-ohjelma käyttää muistia (poikkeuskäsittelijä, käännöspuu jne.) asennetun ohjelman BaseMemin sisällä, se voi kaatua, sillä BaseMem ylikirjoitetaan (tilapäisesti) asennetun ohjelman suorituksen aikana
yleisesti ottaen jokainen ohjelma, joka muuttaa järjestelmän perustoimintoja (MMU:lla) voi olla ristiriidassa WHDLoadin kanssa...
kytke MMU pois: Tässä tilassa, jota voidaan käyttää vain 68030:llä, WHDLoad kytkee MMU:n pois päältä eikä MMU-toimintoja ole käytettävissä.
käytä MMU:ta: Tässä tilassa WHDLoad ottaa MMU:n täysin käyttöönsä ja toteuttaa muistinsuojauksen ja välimuistin hallinnan yllä kuvatulla tavalla.
68030:llä oletustila on kytke MMU pois. 68040/68060:llä oletus on käytä MMU:ta. Käytöstä voidaan ohjata kahdella valinnalla. MMU/S pakottaa WHDLoadin käyttämäänMMU:ta ja se vaaditaan 68030:llä, jotta MMU-ominaisuudet saadaan käyttöön. NoMMU/S kytkee WHDLoadin MMU:n käytön pois(ohita MMU).
Enforcer hit on Enforcer hit, se siitä. (Michael Sinz)