Диспетчер пам'яті (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)