Дополнительная память
🕛 28.12.2008, 20:58
Дополнительная память (expanded memory), часто называемая EMS(Expanded Memory Specification) или LIM (согласно разработчикам,
Lotus, Intel и Microsoft), представляет собой схему коммутации банков, которая позволяет процессору получить доступ к большому объему
памяти посредством окна размером 64 Кбайт. (Коммутация банков - способ управления памятью, когда физическая память разбита на несколько
сегментов (банков) длиной, равной размеру адресного пространства процессора. В каждый момент процессор работает с одним банком). Платы
EMS занимают по одной области размером 64 Кбайт адресного пространства выше границы 640 Кбайт. При рассмотрении будем ссылаться на область, расположенную в адресах D000h - E000h, поскольку она принята
по умолчанию для большинства плат. К этой области обращаются, как к
рамке страницы. Память EMS логически подразделяется на участки размером по 16 Кбайт, называемые страницами. Эти страницы отличаются от страниц размером 64 Кбайт в адресном
пространстве процессора 8086, хотя, так же как и страницы по 64
Кбайт, они не пересекаются. Платы дополнительной памяти имеют специальное аппаратное обеспечение, которое может переключаться на те четыре из этих страниц, к которым осуществляется доступ, когда процессор посылает команду чтения или записи, обращенную к памяти с адресами в рамке страницы. Передвигая это окно посредством программных команд, процессор может получить доступ к такому количеству памяти, которое имеется физически на плате, хотя в каждый момент доступен лишь
небольшой участок. Спецификация LIM 4.0 и ранние EEMS расширяли понятие, делая возможным передвигать не только рамку страницы, но (при
соответствующем аппаратном обеспечении) также и другие области адресного пространства 8086. При соответствующем аппаратном обеспечении
этот способ подкачки может быть использован для многозадачного режима
DESQview и Windows. Дополнительная память особенно полезна потому, что, в отличие от
расширенной памяти и HIMEM, она использует только адреса ниже границы
1MB; следовательно, она может использоваться на машинах с процессорами 8086/8088. Теперь к этой путанице карт и разной памяти присоединился микропроцессор 386, который обладает свими собственными средствами работы с памятью. Микропроцессор 386 поддерживает справочную таблицу,
которая позволяет различать физическую и логическую память; он может
определить, какая физическая память соответствует данной логической
памяти. Примером может служить дублирование ПЗУ. Видео-ПЗУ на многих
адаптерах работает значительно медленнее, чем ОЗУ компьютера с процессором 386. Можно программно скопировать ПЗУ в ОЗУ, затем привести
в соответствие справочные таблицы таким образом, чтобы обращения к
адресам, которые логически принадлежат ПЗУ, в действительности передавались копии, расположенной в значительно более быстродействующем
ОЗУ. Информация, которая, как будут считать программы, размещается в
нормальных адресах ПЗУ (логических адресах), будет в действительности
размещена в различных физических адресах ОЗУ. Спецификация LIM 4.0 является стандартной спецификацией организации дополнительной памяти. Для доступа к защищенной памяти существуют две спецификации: XMS (Extended Memory Specification), спецификация Microsoft, и VCPI (Virtual Control Program Interface). VCPI
дает возможность программе запрашивать защищенные ресурсы у программы
управления памятью в режиме виртуальной адресации (защиты), такой,
как 386max или QEMM. Программы, работающие в режиме виртуальной адресации (защиты), например, Mathematica и Interleaf, могут работать в
среде этих программ управления памятью только потому, что они поддерживают VCPI.