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

Очевидно, размер адресного пространства ограничивает емкость памяти, которой может комплектоваться машина. Так, если он составляет 16 Мбайт, то бессмысленно оборудовать ПК памятью большей емкости, – к  излишку доступ организовать будет невозможно, если не прибегать к специальным аппаратно-программным ухищрениям.

Адресное пространство IBM-совместимых  ПК логически делится на три области (рис. 1).

1)  область стандартной памяти (СМА – Conventional Memory Area);

2)   область верхней памяти (UMA — Upper Memory Area);

3)   область расширенной памяти (ХМА —  eXtended Memory  Area).

СМА имеет диапазон адресов от 0 до 640К – 1 (где К=1024). В ней логически размещается стандартная память (conventional memory). Очевидно, размер стандартной памяти не может превышать 640 Кбайт (сейчас он, как правило, равен этой величине), что для ряда приложений, однако, явно недостаточно. Стандартная память имеется в ПК всегда. Её часто называют обычной памятью или памятью DOS. Термин же «основная память», который иногда используется, здесь неприемлем, поскольку под основной памятью понимают совсем другое — либо просто оперативную память, либо совокупность оперативной и постоянной памяти.

UMA находится в диапазоне адресов от 640Кдо 1М – 1 (где М=1024К), ее размер равен 384 Кбайт. В этой области логически содержатся видеопамять и постоянная память с BIOS, а также могут размещаться дополнительные модули постоянной и оперативной памяти, конструктивно находящиеся в адаптерах ПУ. В настоящее время реально используется лишь небольшая часть UMA. Ниже мы рассмотрим, в каких целях и как могут задействоваться свободные фрагменты данной области, UMA по-другому называют резервной (точнее было бы говорить, зарезервированной) памятью или областью старших адресов DOS.

ХМА располагается в интервале адресов от 1М до UB—1,  где UB — количество ячеек (битов) в адресном пространстве микропроцессора (или самого IIK). Для процессоров 8088/86 UB равно 1М (поэтому ХМА ими не поддерживается), для изделий 80286 и 80386SX оно составляет 16М, а для  процессоров 80386DX и выше - 4Г (где Г:=1024M). Если адресное пространство допускает ХМА, то в нем логически может содержаться расширенная память (extended memory). Её емкость обычно составляет несколько Мбайт, хотя стандартная комплектация ПК класса AT, поставляемых в Россию, включает всего 384 Кбайт такой памяти. Итого получается, что размер всей памяти равен 1 Мбайт (сюда не входят модули памяти из UMA).

Сама DOS, без дополнительных драйверов-«примочек», способна адресовать только 1 Мбайт адресное пространство. Это, скорее, недостаток не самой DOS, а того микропроцессора (8088/86), для которого она была первоначально разработана. Более современные микропроцессоры при работе в среде DOS вынуждены имитировать (эмулировать) процессор 8088/86 со всеми присущими ему ограничениями. Вы, видимо, знаете, что такой режим работы называется реальным. В другой же, защищенный, режим, где используются все возможности современных микропроцессоров (особенно возможность адресации всей имеющейся памяти), переключиться не просто, но гораздо сложнее вернуться из него в реальный режим без потери данных. Правда, некоторые программные продукты, а отчасти и сама DOS с подключенными внешними драйверами, «умудряются» эту процедуру проделывать.

Теперь становится понятным, почему повышенный интерес вызывают свободные фрагменты UMA, которые можно адресовать непосредственно.

В среде тех операционных систем, которые используют защищенный режим работы микропроцессора (DOS + Windows, Windows NT, OS/2, UNIX и дp.), расширенная память доступна наравне со стандартной. При этом между двумя областями однородной памяти по-прежнему остается UMA. Данное обстоятельство не позволяет избежать фрагментации оперативной памяти, которая не сулит ничего хорошего. Если бы фирма IBM, разрабатывая архитектуру своего первого ПК, учла в ней возможности расширения адресного пространства, то обязательно разместила бы UMA не над, а под СМА, и никаких проблем бы не возникало, Вот яркий пример того, какие последствия может повлечь за собой реализация плохо продуманных основополагающих концепций. Теперь же что-либо делать уже поздно, так как изменение архитектуры ПК воспрепятствует совместимости со всеми вытекающими из этого последствиями.