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

WHDLoad ja muistinhallintayksikkö (MMU)

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

Muistin suojaus WHDLoadissa

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.

Käyttäjän ohjaus WHDLoadin MMU-käsittelyyn

WHDLoad voi vaikuttaa MMU:hun kolmella eri tavalla.
  1. 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ä:
  2. 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ä.
  3. 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ään MMU: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)


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