Верхня пам’ять

Верхня пам’ять (Upper Memory Area) займає адресний простір, що міститься безпосередньо над стандартною пам’яттю, вище 640 Кбайтів. На цей адресний простір відображено відео-пам’ять та BIOS. Частина адресного простору, що залишилася, може бути розподілена між іншими програмами. Вона розбивається на фрагменти розміром 64 Кбайти, що отримили назву “вікна” відображуваної пам’яті. Їх можна заповнити розширеною пам’яттю, якщо забезпечити відображення їх адрес на фізичні адреса, більші 1 Мбайту. Це можна робити на МП 80386, оскільки ці процесори реалізують перетворення одних адрес (логічних) в інші адреси (фізичні). Ця можливість використовується аналогічно тому, як емулюється відображення пам’яті з використанням розширеної, але:

1. Неможливо використати пам’ять, яка перевищує розміри “вікна” (не підтримується механізм перемикання сторінок).

2. У заповнені пам’яттю “вікна” можна завантажувати не тільки дані, але й драйвери та резидентні програми (що вивільнює стандартну пам’ять).

Пам’ять, що заповнює “вікна” в UMA, або UMB-пам’ять (Upper Memory Blocks – блоки верхньої пам’яті), складається з декількох фрагментів – регіонів. Деякі функції керування зафіксовані в XMS і реалізуються в HIMEM.SYS, але повна підтримка забезпечується тільки драйвером ЕММ386.ЕХЕ.

Пам’ять такого типу – це програмна пам’ять, оскільки вона формується програмними засобами при наявності відповідної апаратної підтримки.

Деякі моделі ПК різних класів мають апаратну верхню пам’ять, тобто оперативну пам’ять розміром 384 Кбайти в UMA. В такому випадку ці регіони доступні з самого початку.

Завантаженням в верхню пам’ять повністю керує DOS.

Для підтримки повної структури пам’яті мікропроцесорами типу 386, 486 та Pentium необхідно в командному файлі CONFIG.SYS:

1) підключити драйвер HIMEM.SYS (перед усіма іншими підключеннями);

2) підключити драйвер EMM386.EXE з параметром RAM;

3) встановити команду DOS = HIGH, UMB – для завантаження резидентних модулів DOS у високу пам’ять;

4) встановити команду DEVICEHIGH – для завантаження зовнішніх драйверів в верхню пам’ять;

У командному файлі AUTOEXEC.BAT за допомогою команди LOADHIGH завантажити резидентні програми у верхню пам’ять.