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

WHDLoad y la Unidad de Gestión de Memoria (MMU)

Una MMU esta contenida en los siguientes procesadores de la familia 68k: 68030, 68040, 68060. También existe la llamada versión EC de dichos procesadores los cuales tienen una unidad MMU rota, no funcional. Por ejemplo, todas las A4000/030 estándar tienen solamente una CPU 68EC030. En placas aceleradores de terceros esto varía, mire la documentación apropiada para informarse sobre el particular. Hasta donde se sabe, todos los 68040/68060 utilizados internamente en Amiga son CPUs completas conteniendo una MMU operativa. Esto se debe a que Zorro III requiere mapeo del espacio de E/S mediante MMU. La distinción entre una CPU completa y una versión EC no puede hacerse por software. Por lo tanto el usuario debe hacer esto configurando las opciones correctas en WHDLoad.
Para el 68020 existe una MMU externa llamada 68851, pero actualmente no esta soportada por WHDLoad.

Funcionalidades de una MMU y su uso en WHDLoad

El propósito principal de la MMU es traducir direcciones lógicas a direcciones físicas. Esto se requiere para la memoria virtual y espacios separados de memoria. Otra funcionalidad es especificar propiedades especiales como Solamente Supervisor, Protección Contra Escritura y modo de Caché para cada dirección física en el espacio de direcciones, configuradas por páginas, donde una página usada por WHDLoad tiene un tamaño de 4096 bytes. WHDLoad no usa la traducción de direcciones lógicas a físicas. Pero si usa la MMU para protección de memoria, gestion de la caché y algunas funcionalidades especiales (Snooping, resload_Protect#?).

Protección de memoria en WHDLoad

Durante el arranque, WHDLoad recorre la lista de memoria y construirá un árbol de traducción que incluirá toda la memoria accesible. Marca los siguientes espacios de direcciones como válidos y accesibles: $0...BaseMem (usando la información del Esclavo), $dff000...$dff200 (registros Custom), $bfd000...$bff000 (registros CIA) y la memoria usada por el Esclavo y WHDLoad. Si se encuentra un Congelador en memoria, la memoria usada por el congelador también será marcada como válida. Toda otra memoria será marcada como inválida, y por lo tanto cualquier acceso a dicha área (Lectura o Escritura) ocasionará una Excepción de Falla de Acceso que terminará con el cuadro de diálogo de error apropiado creado por WHDLoad.

Control del usuario de la gestión de MMU en WHDLoad

Hay 3 modos diferentes en los cuales WHDLoad afectara una MMU existente.
  1. ignorar la MMU:
    En este modo WHDLoad no cambiará ningún registro relacionado con la MMU. Esto puede ser útil si Ud. esta ejecutando programas que modifican la MMU y Ud. quiere que la funcionalidad de dichos programas permanezca intacta (por ejemplo un congelador por software como TK).
    Precaución: Dado que WHDLoad no toma control por si mismo de la MMU un montón de problemas son posibles. Estos problemas pueden causar caídas del sistema, mal funcionamiento u otros comportamientos no esperados. Aquí hay una lista de los riesgos existentes:
  2. desactivar la MMU:
    En este modo, que es posible solamente en un 68030, la MMU será desactivada por WHDLoad, no estarán disponibles funcionalidades relacionadas con la MMU.
  3. usar la MMU:
    En este modo WHDLoad toma control total sobre la MMU y realiza la protección de memoria y gestión de la caché tal y como se ha explicado arriba
En el 68030 el modo por defecto es desactivar la MMU. En los 68040/68060 el modo por defecto es usar la MMU. Hay dos opciones para controlar este comportamiento. MMU/S fuerza WHDLoad a usar la MMU y se requiere en sistemas 68030 para usar las funciones de la MMU. NoMMU/S desactiva el uso de la MMU por WHDLoad (ignorar la MMU).

Un hit de Enforcer es un hit de Enforcer, punto. (Michael Sinz)


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