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

WHDLoad и диспетчер памяти (MMU)

Диспетчер памяти (MMU) имеется в следующих процессорах семейства 680xx: 68030, 68040, 68060. Есть также, так называемые, EC-версии этих процессоров, в корорых MMU отсутствует. Например, во всех стандартных компьютерах модели A4000/030 установлен только процессор 68EC030. На акселераторах сторонних призводителей могут устанавливаться различные процессоры, поэтому для получения информации о конкретном акселераторе слудует обратиться к его документации. Насколько известно, все модели 68040/68060, которые когда-либо встраивались в Амиги, были полноценными версиями, содержащими рабочий MMU (потому как burstmode и Zorro III требуют его для функций ввода/вывода). Различия между полным центральным процессором и версией EC не могут быть устранены на уровне программного обеспечения (по крайней мере, с приемлемой скоростью). Поэтому пользователь должен самостоятельно установить соответствующие опции для WHDLoad.
Для 68020 существует внешний диспетчер памяти, называемый 68851, но в настоящее время он не поддерживается программой WHDload.

Возможности диспетчера памяти и его использование в WHDLoad

Главная цель диспетчера памяти состоит в том, чтобы переводить логические адреса в физические. Это требуется для работы виртуальной памяти и для автономного адресного пространства. Другая возможность состоит в том, чтобы указывать такие свойства, как защиту от записи "только для супервайзера" ("Supervisor Only "), и режим кэширования для каждого участка физической памяти (WHDLoad использует размер таблицы равный 4096 байт). WHDLoad не использует перевод логических адресов в физические. Но зато использует MMU для защиты памяти, работы с кэшем и ещё для некоторых специальных возможностей (Snooping, resload_Protect *?).

Защита памяти в WHDLoad

При запуске, WHDLoad просматривает память, строит дерево перевода адресов, вклющее всю доступную память и отмечает следующие адреса как достоверные и доступные: $0... BaseMem (берёт информацию из Slave-модуля), $dff000... $dff200 (Custom-регистры), $bfd000... $bff000 (Cia-регистры) и память, используемую Slave-модулем и с самой программой WHDLoad. Если в памяти обнаружен отладчик, то память, используемая отладчиком, будет также помечена, как доступная. Вся другая память помечается как недоступная, и поэтому каждое обращение к такой области (чтение или запись), инициирует сообщение об ошибке доступа к памяти и WHDLoad завершит свою работу с выводом соответствующего сообщения.

Управление диспетчером памяти в WHDLoad со стороны пользователя

Существует 3 режима взаимодействия WHDLoad с диспетчером памяти.

  1. Ignore MMU (игнорирование диспетчера памяти):
    При этом способе WHDLoad не изменяет регистров диспетчера памяти. Это бывает полезным, если имеется еще какая-то программа, также работающая   в данный момент с диспетчером памяти (например, такая как системный монитор TK) и вы не хотите повлиять на функционирование этой программы. Предупреждение: поскольку WHDLoad самостоятелно не управляет диспетчером памяти, то возможна масса проблем. Эти проблемы могут создать крах системы или как-то нарушить нормальное функционирование системы. Вот список возможных проблем:
  2. Disable MMU (отключение диспетчера памяти):
    Этот способ возможен только на процессорах 68030. Диспетчер памяти будет выключен и WHDLoad не сможет использовать возможности MMU.
  3. Use MMU (использование диспетчера памяти):
    При этом способе WHDLoad берет полный контроль над MMU и осуществляет защиту памяти и управление кэшем центрального процессора, как объяснялось выше.

Для процессоров 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)


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