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

WHDLoad i la Unitat de Gestió de Memòria (MMU, Memory Management Unit)

Els següents processadors de la família 68k: 68030 , 68040, 68060 contenen una MMU. També existeixen les anomenades versions EC (econòmiques) d'aquests processadors que disposen d'una MMU no funcional. Per exemple, tots els A4000/030 estàndard disposen d'una CPU 68EC030. En plaques acceleradores de tercers això varia, consulti la documentació apropiada per a aprendre sobre aquest tema. Fins a on jo sé, tots els 68040/68060 utilitzats en Amiga són CPU's complertes que contenen una MMU funcional. Això és degut a que el bus Zorro III requereix mapeig de l'espai d'E/S mitjançant MMU. La distinció entre una CPU complerta i una versió EC no pot fer-se per programari i per tant l'usuari ha de fer-ho configurant les opcions correctes a WHDLoad.
Per al 68020 existeix una MMU externa anomenada 68851, però actualment no està suportada per WHDLoad.

Funcionalitats d'una MMU i el seu ús a WHDLoad

El propòsit principal de la MMU és traduir adreces lògiques a adreces físiques. Això es requereix per a la memòria virtual i espais d'adreces separats. Una altra característica és per a especificar propietats especials com Solament Mode Supervisor, Protecció Contra Escriptura i Mode de Caché per a cada espai d'adreça física, configurat en base a pàgines, on cada una a WHDLoad té un tamany de 4096 bytes. WHDLoad no empra la traducció d'adreces lògiques a físiques. Però sí utilitza la MMU per a protecció de memòria, gestió de la caché i algunes funcionalitats especials (Snooping, resload_Protect#?).

Protecció de memòria a WHDLoad

Durant l'arrencada, WHDLoad recorre la llista de memòria i construeix un arbre de traducció que inclou tota la memòria accessible. Marca els següents espais d'adreces com vàlids i accessibles: $0...BaseMem (usant la informació de l'Esclau), $dff000...$dff200 (registres Custom), $bfd000...$bff000 (registres CIA) i la memòria utilitzada per l'Esclau i WHDLoad. Si es troba un Congelador en memòria (freezer), la memòria que utilitzi el congelador també serà marcada com a vàlida. Tota altra memòria serà marcada com a invàlida i per tant qualsevol accés a aquesta àrea (Lectura o Escriptura) ocasionarà una Excepció de Falla d'Accés que acabarà amb el quadre de diàleg d'error apropiat creat per WHDLoad.

Control per part de l'usuari de la gestió de MMU a WHDLoad

Hi ha 3 modes diferentes en què WHDLoad pot afectar una MMU :
  1. Ignorar la MMU:
    En aquesta mode WHDLoad no canviarà cap registre relacionat amb la MMU. Això pot ser útil si s'estant executant programes que modifiquen la MMU i es vol que la funcionalitat d'aquests programes romangui intacta (per exemple un congelador per programari com TK).
    Precaució: Atès que WHDLoad no pren control per sí mateix de la MMU, poden aparéixer un munt de problemes. Aquests problemes poden causar caigudes del sistema, mal funcionament o altres comportaments inesperats. Aquí hi ha una llista dels riscos existents:
  2. Desactivar la MMU:
    En aquest mode, que és possible només en un 68030, la MMU serà desactivada per WHDLoad i no estaran disponibles funcionalitats relacionades amb la MMU.
  3. Utilitzar la MMU:
    En aquest mode WHDLoad prèn el control total sobre la MMU i realitza la protecció de memòria i gestió de la caché tal com s'ha explicat anteriorment
Al 68030 el mode per defecte és Desactivar la MMU. Als 68040/68060 el mode per defecte és utilitzar la MMU. Es disposa de dos opcions per a controlar aquest comportament: MMU/S força WHDLoad a emprar la MMU i és requerit en sistemes basats en 68030 per a utilitzar les funcionalitats de la MMU. NoMMU/S desactiva l'ús de la MMU per part de WHDLoad (ignorar la MMU).

Un hit d'Enforcer és un hit d'Enforcer, punt. (Michael Sinz)


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