WHDLoad a Memory Managment Unit (MMU)

MMU je v nasledujicich procesorech 68000 rodiny: MC68030, MC68040, MC68060. Existuji take takzvane EC verze procesoru, ktere maji nefunkcni MMU. Napr. vsechny standartni A4000/030 maji MC68EC030 CPU. Na turbokartach se to lisi (informujte se v jejich dokumentaci). Pokud vim, vsechny existujici 68040/68060 jsou plnohodnotna CPU s funkcnim MMU (protoze burst mod a Zorro 3 vyzaduji MMU pro mapovani IO). MMu nemuze byt nahrazeno softwarove.
Pro MC68020 je externi MMU MC68851, ale WHDLoad ho v soucasnosti nepodporuje.

Schopnosti MMU a pouziti ve WHDLoad

Hlavni ucel MMU je prelozit logicke adresy na fyzicke. Je to treba pro virtualni pamet a oddelene adresove prostory (napr. v multi vykonnem systemu). Dalsi schopnost je zadat zvlastni proporce jako Supervisor Only, Write Protected a Caching mod pro kazdou fyzickou adresu/misto (na podstate stranek, kde stranka pouzita ve WHDLoad ma velikost 4096 bajtu). WHDLoad nepouziva preklad logicka->fyzicka adresa. Ale pouziva MMU pro ochranu pameti, cache managment a specialni schopnost (Snooping, resload_Protect#?).

Ochrana pameti ve WHDLoad

Na zacatku WHDLoad scanuje list pameti a vytvori translation tree, ktery obsahuje univerzalne pristupnou pamet. Oznaci nasledujici adresovy prostor jako legalni a pristupny: $0...BaseMem (velikost urcena ve slave), $dff000...$dff200 (Custom registry), $bfd000...$bff000 (Cia registry) a pamet pouzita slavem a WHDLoad. Jestli je v pameti nalezen freezer, pamet kterou pouziva bude take legalni. Vsechna ostatni pamet je nelegalni a kazdy pristup do ni vytvori vyjimku Access Fault, ktera skonci prislusnym chybovym hlasenim WHDLoadu.

Uzivatelova kontrola MMU ve WHDLoad

Jsou tri odlisne mody, jak WHDLoad ovlivnuje existujici MMU.
  1. ignorovat MMU:
    V tomto modu WHDLoad nevytvori zadny MMU registr, to se hodi pro programy, ktere nemaji opravene chyby a MMU jim nedovoluje pokracovat v behu. Patri mezi ne i freezer TK.
    Varovani: protoze WHDLoad neovlada MMU sam, mohou se vyskytnout problemy - sekani, nefunkcnost... tady je seznam problemu, o kterych vime:
  2. vypnout MMU:
    Tento mod je mozny jen na 68030. WHDLoad MMU vypne a zadna z jeho MMU moznosti nebude k dispozici.
  3. pouzit MMU:
    V tomto modu WHDLoad prebira kontrolu nad MMU a umoznuje ochranu pameti a cache management jak jsem vysvetlil nize.
Na 68030 je standartne MMU vypnuto. Na 68040/68060 je zapnuto. Zmenit se to da pomoci MMU/S (aktivuje MMU, na 68030 musi byt zapnuta) NoMMU/S MMU vypne.