Диспетчер памяти (MMU) имеется в следующих
процессорах семейства 680xx: 68030, 68040, 68060.
Есть также, так называемые, EC-версии этих процессоров, в корорых MMU отсутствует.
Например, во всех стандартных компьютерах модели A4000/030 установлен
только процессор 68EC030. На акселераторах
сторонних призводителей могут устанавливаться
различные процессоры, поэтому для получения
информации о конкретном акселераторе слудует
обратиться к его документации. Насколько известно,
все модели 68040/68060, которые когда-либо
встраивались в Амиги, были полноценными версиями,
содержащими рабочий MMU (потому как burstmode и Zorro III требуют его для функций ввода/вывода).
Различия между полным центральным процессором и версией EC не могут быть устранены на уровне программного
обеспечения (по крайней мере, с приемлемой скоростью). Поэтому пользователь должен
самостоятельно установить соответствующие опции для WHDLoad.
Для 68020 существует внешний диспетчер памяти, называемый 68851, но в настоящее время он не
поддерживается программой WHDload.
Главная цель диспетчера памяти состоит в том, чтобы переводить логические адреса в физические. Это требуется для работы виртуальной памяти и для автономного адресного пространства. Другая возможность состоит в том, чтобы указывать такие свойства, как защиту от записи "только для супервайзера" ("Supervisor Only "), и режим кэширования для каждого участка физической памяти (WHDLoad использует размер таблицы равный 4096 байт). WHDLoad не использует перевод логических адресов в физические. Но зато использует MMU для защиты памяти, работы с кэшем и ещё для некоторых специальных возможностей (Snooping, resload_Protect *?).
При запуске, WHDLoad просматривает память, строит дерево перевода адресов, вклющее всю доступную память и отмечает следующие адреса как достоверные и доступные: $0... BaseMem (берёт информацию из Slave-модуля), $dff000... $dff200 (Custom-регистры), $bfd000... $bff000 (Cia-регистры) и память, используемую Slave-модулем и с самой программой WHDLoad. Если в памяти обнаружен отладчик, то память, используемая отладчиком, будет также помечена, как доступная. Вся другая память помечается как недоступная, и поэтому каждое обращение к такой области (чтение или запись), инициирует сообщение об ошибке доступа к памяти и WHDLoad завершит свою работу с выводом соответствующего сообщения.
Существует 3 режима взаимодействия WHDLoad с диспетчером памяти.
Для процессоров 68030 режимом по умолчанию
является Disable MMU.
Для процессоров 68040/68060 - Use MMU.
Существует два параметра для управления
состоянием диспетчера памяти:
MMU/S заставляет WHDLoad
использовать режим Use MMU и требуется на
системах с процессором 68030 для включения
возможностей диспетчера памяти.
NoMMU/S отключает
использование MMU программой WHDLoad (Ignore MMU).
An Enforcer hit is an Enforcer hit, period. (Michael Sinz)