Организация памяти в компьютерах типа ibm pc, страница 7

процессоре 80286 ситуация изменилась, поскольку стало возможным адресовать физически более 1 Мб ОЗУ. Таким образом,  когда процессор 80286 работает как 8086 и пытается получить доступ к одному из сегментов, лежащих близко к вершине адресного пространства, то адрес, полученный в результате операции будет лежать за пределами 1 Мб и, следовательно, возникает возможность обращаться к 64-килобайтной области (точнее, к 64 Кб минус 16 байт), лежащей за пределами 1 Мб, причем делать это в режиме реальной адресации, без каких-либо средств расширения DOS. Адресуемая подобным образом область размером почти в 64 Кб, лежащая в диапазоне 1024 Кб – 1088 Кб, получила название области верхней памяти (High Memory Area – HMA). В настоящее время типичным применением области HMА стало размещение в ней ядра DOS, что позволяет освободить дополнительно часть памяти ниже 640 Кб для пользовательских программ.

Чтобы ликвидировать разногласия в случаях, когда  микропроцессор  80286  работает как  микропроцессор  8086, в шину были встроены специальные средства (так называемый мост A20 – A20 Gate), которые заставляют память в режиме реального времени переходить циклически на низшие адреса,  как это  происходит  в  8086/8088. Одним из применений драйвера HIMEM.SYS является отмена действия моста A20, что позволяет программам, написанным особым образом, обращаться к области HMA.

 


Рис 2. Особенности адресации в процессорах Intel 8086 (a) и Intel 80286 и старших (б)

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

Память в высших адресах или верхняя память (High Memory) – это область объемом 384 Кбайт, расположенная  между  границами 640 Кбайт и 1 Mбайт (адреса A000 до FFFF), зарезервированная IBM для системного аппаратного обеспечения – для  видеопамяти, BIOS и прочего. Во многих случаях она, однако, используется не полностью, и в ней образуются «дыры» – свободные участки, которые не используются в служебных целях, но к которым не имеют прямого доступа программы, работающие в 640 Кб основной памяти.  Посредством расширителей памяти – таких как  EMM386 (производства Microsoft), QEMM  (производства  Quarterdeck)  и  386MAX  (производства Qualitas)  можно управлять этой областью зарезервированной памяти и перенести туда резидентные программы из основной памяти, тем  самым освобождая  больше  обычной памяти под прикладные программы.