Кафедра МОП ЭВМ Драйвер управления расширенной памятью HIMEM,SYS, страница 7

Распознать наличие аппаратной верхней памяти можно двумя способами:

1)  узнав общий размер оперативной памяти, из сообщений при ее тестировании во время загрузки DOS и сравнив с количеством, указанным в документации на ПК (аппартная верхняя память имеется, если протестированной памяти на 384 Кбайт меньше чем указано в документации);

2)  выдав команду MEM и проанализировав поле Total в строке Reserved отчета о статусе памяти (аппаратная верхняя память имеется, если в этом поле указано значение 384 К).

Первый способ основан на том, что BIOS не тестирует память, логически размещенную в UMA. Аналогичным первому способу можно считать сравнение сведений о размере расширенной памяти, отображаемых командой MEM, с общим ее количеством по документации.

ПК с процессорами 80386 и выше иногда способны аппаратно менять базовый адрес фрагмента расширенной памяти размером 384 Кбайт (только такого, но не меньшего размера). Тогда можно получить как аппаратную, так и программную верхнюю память. Верным признаком такой способности является поддержка теневой памяти (копии BIOS в оперативной памяти). Смена базового адреса обычно и происходит при изменении статуса поддержки теневой памяти, осуществляемом в среде встроенной в BIOS утилиты Setup. Правда, есть BIOS, которые, отключая теневую память, не перемещают высвободившиеся 384 Кбайт в ХМА, — это поле памяти оказывается неиспользуемым.

В дальнейшем речь пойдет только о программной верхней памяти.

Верхняя память выделяется блоками. Блок не может быть больше региона, в котором он формируется. В любом регионе может быть создано несколько блоков.

При использовании верхней памяти важно понимать, что драйверы и резидентные программы, загружаемые в нее, не обязаны использовать какие-либо специальные приемы для этого. Функция загрузки всецело ложится на «плечи» DOS, и она ее с честью реализует.

Обобщенные структуры памяти ПК

Различные классы ПК имеют неодинаковые структуры памяти, что определяется размером адресного пространства различных микропроцессоров, а также их возможностями по переадресации ячеек памяти.

В соответствии с этим. можно выделить три структуры памяти компьютеров:

1)  структура памяти ПК класса XT (рис. 3);


Рис. 3 Структура памяти ПК класса ХТ.

2)  структура памяти ПК класса AT (рис.4);

3)  структура памяти ПК на базе микропроцессора 80386, 80486 или Pentium (рис.5).

2. Использование средств управления памятью

Теперь мы знаем, какие типы памяти могут быть в IBM-совместимых ПК, и какие структуры памяти могут быть организованы на них при работе в среде DOS. Для полной реализации некоторой структуры памяти необходима адекватная аппаратная и программная поддержка.

2.1. Общие положения

Для поддержки полной структуры памяти на ПК класса XT (рис. 3), если он снабжен платой отображаемой памяти, следует подключить к системе драйвер, поставляемый вместе с этой платой. Такой драйвер будет выполнять функции EMM.

  

       Рис 4. Структура памяти ПК класса АТ.            Рис. 5. Структура памяти ПК на МП

                                                                                                             386 и выше

Чтобы реализовать полную структуру памяти на ПК класса AT (рис. 4) при наличии в нем расширенной памяти и платы отображаемой памяти, следует:

1)  подключить к системе драйвер HIMEM.SYS;

2)  подключить к системе драйвер, поставляемый вместе с платой отображаемой памяти.

Для загрузки резидентных модулей DOS в высокую память требуется указать в файле CONFIG.SYS команду DOS=HIGH.

Чтобы обеспечить поддержку полной структуры памяти на ПК с микропроцессором 80386. 80486 или Pentium (рис. 5), требуется:

1)  подключить к системе драйвер HIMEM.SYS;

2)  подключить к системе драйвер EMM386.БХЕ с переключателем RAM;

3)  специфицировать в файле CONFIG.SYS команду DOS=UMB.