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

Принцип действии отображаемой памяти основан на техническом приеме, известном как переключение страниц памяти: внутри UMA, используемой не полностью. Выделяется 64 - Кбайт окно, в котором отображаются четыре произвольных 16-Кбайт страницы дополнительной памяти, необходимые в данный момент. Тем самым микропроцессор «вводится и заблуждение», поскольку с помощью виртуальной адресации он обращается к хранимым в окне данным, хотя на самом деле их физические адреса даже не принадлежат адресному пространству микропроцессора. Отображение страниц памяти в окне можно интерпретировать как отображение логических адресов в физические. Естественно, соответствие логических адресов физическим в любой момент можно изменить, на основе чего и обеспечивается доступ ко всему содержимому отображаемой памяти.

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

Спецификация LIM EMS 4.0 допускает страницы нестандартного размера (большие или меньшие 16 Кбайт, но такие, чтобы в одной нестандартной странице содержалось целое число стандартных, или чтобы в одной стандартной странице содержалось целое число нестандартных страниц).

EMS может поддерживаться на любых IBM-совместимых ПК, включая машины класса XT

Для этого в компьютерах класса XT или AT надо иметь специальную плату памяти, удовлетворяющую требованиям EMS: и программный драйвер, который управляет отображаемой памятью. Платы для ПK класса XT и AT различаются. При выборе платы дополнительно к этому всегда надо учитывать соотношение ее быстродействия и тактовой частоты микропроцессора ПК. Некоторые платы отображаемой памяти (обычно аппаратно) могут быть сконфигурированы и таким образом, что размещенная на них память будет непосредственно рассматриваться как память с адресами свыше 1 М, то есть как расширенная память. Драйвер, управляющий отображаемой памятью и поэтому называемый администратором отображаемой памяти (EMM – Expanded Memory Manager), поставляется н комплекте с платой и в состав DOS не входит, поскольку сильно «привязан» к конкретному оборудованию, то есть к самой плате.

ПК с микропроцессорами 80386 (SX или DX) и выше не требуют специальных плат, так как обладают встроенными возможностями отображения логических (виртуальных) адресов в физические. Поэтому при наличии в таком ПК расширенной памяти достаточного размера и подключении к DOS специального драйвера можно осуществить эмуляцию отображаемой памяти. В состав DOS входит реализованный в виде драйвера администратор (диспетчер, менеджер) памяти EMM386.ЕХЕ, решающий эту задачу. Эмуляция отображаемой памяти требует переключения микропроцессора в защищенный режим.

Отображаемая  память используется исключительно специально разработанными для этого, причем только устаревающими, системными и прикладными программами, а не любыми программами автоматически. Для управления отображаемой памятью EMM предлагает в распоряжение программистам набор функций, доступных по прерыванию 21Н.

Аналогично стандартной, отображаемая память выделяется блоками. Выделение блока осуществляется по запросу от программы, в котором указывается число требуемых страниц.  Программы, выдавшая такой запрос, получает в свое распоряжение обработчик, или манипулятор (handle) выделенного для неё блока, и этот обработчик используется ею во всех операциях чтения из блока и записи в него. Манипулятор представляет собой небольшую информационную структуру, хранящую все необходимые сведения о блоке памяти. Таким образом, обмен данными между стандартной и отображаемой памятью на логическом уровне реализуется аналогично обмену между стандартной и внешней памятью. Первый блок отображаемой памяти используется самим EMM для своих собственных нужд.

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