разработчиков программного обеспечения учли этот факт и продолжа-
ли создавать менеджеры расширенной памяти, которые не требуют ни-
какого специального оборудования расширенной памяти. Эти менедже-
ры расширенной памяти, на которые обычно ссылаются как на эмуля-
торы или имитаторы расширенной памяти, моделируют расширенную па-
мять путем своппинга данных из/на обычной памяти на диск или в
расширенную память, присутствующие на многих системах, совмести-
мых с PC/AT.
Появление систем, совместимых с PC/AT и PS/2, которые ис-
пользуют микропроцессор Intel 80386, сделало возможным создание
менеджера расширенной памяти другого типа, который использует
усовершенствованную аппаратуру управления памятью, существующую в
каждом 80386. Фирма COMPAQ в настоящее время включает в каждую
свою модель Deskpro 386 менеджер расширенной памяти, базирующийся
на этой возможности, именуемый CEMM.
В то время как каждый вариант менеджера расширенной памяти
реализует спецификацию расширенной памяти LIM, каждый тип также
характеризуется набором показателей стоимости, производительности
- 7-21 -
и затрат по обеспечению совместимости, которые важны для Вас как
для разработчика приложения спецификации расширенной памяти. Вам
требуется знать соображения разработки и программирования, кото-
рые будут влиять на способность Вашего программного обеспечения
правильно функционировать с приемлемой производительностью на
различных системах расширенной памяти. Если стоимость разработки
является главным фактором, например, вложение средств в относи-
тельно недорогую программу имитатора расширенной памяти позволит
Вам создавать, тестировать и выполнять программы, которые пользу-
ются расширенной памятью без вложения сотен долларов в новую ап-
паратуру.
В следующих разделах описываются конкретные достоинства и
недостатки, связанные с каждым типом реализации расширенной памя-
ти, по отношению к совместимости, производительности и стоимости.
Оборудование и программное обеспечение расширенной памяти
Вне зависимости от конкретных подробностей конструкции платы
менеджер расширенной памяти управляет динамическим переключением
памяти в и из прямо адресуемую память через набор регистров отоб-
ражения на плате. Регистры отображения реализуются последователь-
ностью портов ввода/вывода, где-то в пространстве ввода/вывода
компьютера. Плата и поддерживающий ее менеджер расширенной памяти
должны конфигурироваться при установке для приспособления к поль-
зованию адресного пространства ввода/вывода и адресов выше 640К
адаптерами видео и ввода/вывода, а также ПЗУ BIOS.
Достоинства
Скорость - можно отображать страницу расширенной памяти в
страничный кадр спецификации расширенной памяти за примерно 100
микросекунд.
Широкая доступность - доступны платы для систем с шинной ар-
хитектурой PC, PC/AT и Microchannel.
Недостатки
Дорого - платы расширенной памяти большого объема могут сто-
ить столько, сколько целый компьютер.
Пространство - требуется одно или более гнезд шины в блоке
компьютера.
Совместимость - не каждая плата спецификации расширенной па-
мяти будет работать в каждой компьютерной системе. Пользователи
высокопроизводительных PC/AT должны обращать внимание, чтобы по-
купать платы спецификации расширенной памяти, способные работать
на скорости шины их системы.
Аппаратура и программное обеспечение 80386
Возможно использовать оборудование управления памятью, при-
сутствующее в каждом микропроцессоре 80386, в сочетании с вирту-
альным режимом 8086, имеющимся в 80386. Детали работы управления
памятью 80386 и режима виртуального 8086 слишком сложны для объ-
яснения здесь. Достаточно сказать, что их хватает для выполнения
функций отображения, обслуживаемых регистрами отображения страниц
на сложной плате расширенной памяти.
Достоинства
Скорость - отображения страниц можно выполнять за несколько
микросекунд.
Недорого - предполагается, что у Вас уже есть машина 80386 с
большим количеством расширенной памяти.
- 7-22 -
Недостатки
Дорого - предполагается, что у Вас еще нет машины на базе
80386 или что у нее нет большого объема расширенной памяти. Сов-
местимость - другое программное обеспечение, использующее защи-
щенный режим 80386, такое как некоторые многозадачные среды или
"Расширители DOS", может конфликтовать с использованием менедже-
ром расширенной памяти средств защищенного режима, таких как
страничный режим и виртуальный режим 8086. Тестирование менеджера
расширенной памяти 80386 с фактическим сочетанием аппаратуры и
программного обеспечения, с которым он будет применяться, может
быть единственным способом, гарантирующим успех.
Только программное обеспечение
На ЦВМ на базе 8086 менеджер расширенной памяти эмулирует
память спецификации расширенной памяти путем своппинга данных
между кадром страниц, расположенным в обычной памяти, и гибким
или жестким диском. На ЦВМ на базе 80286 с расширенной памятью
(совместимые с PC/AT и модели 50 и 60 PS/2) менеджер расширенной
памяти может эмулировать расширенную память путем своппинга стра-
ниц спецификации расширенной памяти между расширенной памятью и
кадром страниц спецификации расширенной памяти в обычной памяти.
Достоинства
Недорого - менеджер расширенной памяти требует только те ре-
сурсы, которые обычно в наличии на базовом оборудовании.
Недостатки
Производительность - перенос данных из обычной памяти в рас-
ширенную и обратно занимает в десятки и сотни раз больше времени,
чем при отображении страниц на настоящей плате расширенной памя-
ти. Для жесткого диска требуется в сотни и тысячи раз больше вре-
мени. Если все, чем Вы обладаете - гибкий диск, потребуется при-
мерно в миллион раз больше времени. Возможно удивительно, однако
существуют определенные приложения памяти спецификации расширен-
ной памяти, которые не требуют производительности платы расширен-
ной памяти, такие как сохранение текста или графических экранов
для последующего повторного вызова или своппинг TSR в и из памяти
по запросу.
Совместимость
На настоящей плате (или эмуляторе типа 80386) логическая
страница спецификации расширенной памяти может отображаться бо-
лее, чем в одну физическую страницу спецификации расширенной па-
мяти в один и тот же момент времени, с помощью метода, именуемого
совмещение имен (который будет рассмотрен подробнее далее в гла-
ве). Поскольку имитаторы копируют страницы памяти, а не "отобра-
жают" их в различные области адресного пространства, приложения,
которые полагаются на совмещение данных, не могут работать с та-
ким типом менеджера расширенной памяти. На практике большинство
приложений, которые используют спецификацию расширенной памяти,
не полагаются на совмещение для работы.
IBM PS/2 80286 опция увеличенной памяти
Кратко документированное средство опции увеличенной памяти
IBM 80286 для моделей 50 и 60 PS/2 обеспечивает набор регистров
субадресации, доступный через средство выбора программируемой оп-
ции архитектуры шины микроканала, которое может быть запрограмми-
ровано, для того чтобы работать подобно регистрам отображения на
настоящей плате расширенной памяти.
- 7-23 -
Очевидно, эти регистры субадресации были спроектированы,
чтобы позволить программам самотестирования при включении питания
в ПЗУ BIOS переотображать любые отказавшие физические блоки памя-
ти на старшие адреса памяти (и отображать хорошие блоки на прост-
ранство, оставшееся после этого в младших адресах), так чтобы ма-
шина могла работать, даже после отказа одной или нескольких БИС
памяти.
Также возможно отображение памяти платы увеличенной памяти в
пространство ниже 640К для предоставления отображаемой обычной
памяти, разрешаемое усовершенствованной спецификацией расширенной
памяти AQA и спецификацией расширенной памяти LIM 4.0. К сожале-
нию, целый мегабайт памяти, присутствующей на планарных платах
моделей 50 и 60 PS/2, должен быть при этом отключен.
Достоинства
Недорого - подразумевается, что у Вас уже есть модели 50 или
60 IBM PS/2 с опцией увеличения расширенной памяти IBM. Другие
платы увеличения памяти для PS/2 могут поддерживать или не под-
держивать средство субадресации.
Производительность - менеджер расширенной памяти, написанный
для пользования этими регистрами, может точно также работать на
сложной плате расширенной памяти.
Недостатки
Дорого - подразумевается, что у Вас еще нет PS/2 с опцией
увеличения расширенной памяти IBM.
Интерфейс прикладной программы спецификации расширенной памяти
Продвигаясь вперед от общего рассмотрения структуры и функ-
ций менеджера расширенной памяти, теперь мы может объяснить, как
выдавать запросы расширенной памяти для менеджера расширенной па-
мяти из Вашей программы на ассемблере или языке высокого уровня и
как понимать ответы менеджера расширенной памяти на эти запросы.
Программирование на языке ассемблера спецификации
расширенной памяти
Программисты на языке ассемблера, привыкшие к интерфейсу
системных вызовов DOS, найдут, что менеджер расширенной памяти
представляет практически идентичную ситуацию:
1. Поместить код функции для требующейся функции специфика-
ции расширенной памяти в регистр AH.
2. Поместить другие аргументы, необходимые для выбранной
функции, и/или структуры данных в память, как определено специфи-
кацией расширенной памяти LIM.
3. Передать управление менеджеру расширенной памяти путем
выдачи программного прерывания 67h.
4. Менеджер расширенной памяти возвращает управление прог-
рамме, выдавшей запрос, перезаписывая код функции, помещенный в
регистр AH на шаге, кодом состояния для запрошенной операции. Код
состояния 00h сигнализирует об успешном завершении функции; любое
другое значение показывает, что менеджер расширенной памяти на-