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

WHDLoad en de MemoryManagementUnit (MMU)

Een MMU is aanwezig in de volgende van de 68000 familie: 68030, 68040, 68060. Er zijn ook zogeheten EC versies van deze processors welke een gebroken niet werkende MMU hebben. Bijvoorbeeld, alle standaard A4000/030 hebben alleen een 68EC030 CPU. Van derde partij acceleratiekaarten varieert dit, kijk in de geschikte documentatie om hier over te lezen. Zo ver dat bekend is, zijn alle 68040/68060's ooit gebouwd in een Amiga, zijn volle CPU'S die beschikking hebben over een werkende MMU. Dit is omdat Zorro III het MMU mappen van IO ruimte nodig heeft. Het onderscheid tussen een volle CPU en een EC versie kan niet gemaakt worden met software. Daarom moet de gebruiker dit doen door gebruik te maken van de juiste opties in WHDLoad.
Voor de 68020 is er een externe MMU genaamd 68851, maar dit wordt momenteel niet ondersteund in WHDload.

Eigenschappen van een MMU en het gebruik er van in WHDLoad

Het voornaamste doel van de MMU is om de logische adressen te vertalen naar fysieke adressen. Dit is nodig voor virtuele geheugen en gescheiden adres ruimtes. Een andere eigenschap is om speciale eigenschappen zoals Supervisor Only, Tegen schrijven Beschermd en Cache mode voor elk fysiek adres, configureert op een pagina basis, waar een pagina gebruikt in WHDLoad een grootte heeft van 4096 bytes. WHDLoad gebruikt geen logische naar fysieke adress vertaling. Maar het gebruikt van de MMU voor geheugen bescherming, cache management en een paar speciale eigenschappen (Snooping, resload_Protect#?).

Geheugen bescherming in WHDLoad

Tijdens het opstarten, scant WHDLoad de geheugenlijst en bouwt een vertaalboom wat alle toegankelijke geheugen bevat. Het markeert de volgende adres ruimtes als geldig en toegankelijk:$0...BaseMem (gebruikmakend van de informatie van de Slave), $dff000...$dff200 (Custom registers), $bfd000...$bff000 (CIA registers) en het geheugen gebruikt door de Slave en WHDLoad. Als een Freezer is gevonden in het geheugen, word het geheugen gebruikt door de Freezer ook gemarkeerd als geldig. Alle andere geheugen word gemarkeerd als ongeldig, en daarom met elke toegang tot zo'n gebied (Lezen of Schrijven) word er een Toegangs Fout Uitzondering gemaakt welke eindigt in een geschikte foutvenster door WHDLoad

Gebruikers controle van de MMU afhandeling in WHDLoad

Er zijn 3 verschillende modes hoe WHDLoad invloed heeft op een bestaande MMU.
  1. negeer MMU:
    In deze mode verandert WHDLoad niet één MMU gerelateerde register. Dit kan handig zijn als u programma's draait welke de MMU doen dichtslaan en u de functies van deze programma's intact wilt laten (bijvoorbeeld een software freezer zoals TK).
    Waarschuwing: Omdat WHDLoad niet de MMU zelf bestuurt zijn er een heleboel problemen mogelijk. Deze problemen kunnen crashes, gebreken of andere onvoorziene misdragingen veroorzaken. Hier is een lijst van mogelijke risico's:
  2. Schakel MMU uit:
    In deze mode, welke alleen mogelijk is op de 68030, zal de MMU uitgeschakeld worden door WHDLoad, geen MMU gerelateerde eigenschappen zijn beschikbaar.
  3. gebruik MMU:
    In deze mode neemt WHDLoad de gehele controle over de MMU en realiseert geheugen bescherming en cache management zoals beschreven hierboven.
Op de 68030 is de standaard mode disable MMU. Op de 68040/68060 is de standaard use MMU. Er zijn opties om dit gedrag te beinvloeden. MMU/S forceert WHDLoad om gebruiken te maken van MMU en is vereist op 68030 systemen om de MMU eigenschappen te krijgen. NoMMU/S schakelt het MMU gebruik uit door WHDLoad (negeer MMU).

Een Enforcer hit is een Enforcer hit, punt. (Michael Sinz)


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