stringtranslate.com

Расширенная память

Несколько страниц расширенной памяти переключаются между банками в страничном фрейме , являющемся частью верхней области памяти .

В управлении памятью DOS расширенная память — это система переключения банков , которая предоставляла программам DOS дополнительную память сверх предела обычной памяти (640 КиБ).

Расширенная память — это общий термин для нескольких несовместимых вариантов технологий. Наиболее широко используемым вариантом была Спецификация расширенной памяти ( EMS ), которая была разработана совместно Lotus Software , Intel и Microsoft , так что эту спецификацию иногда называли « LIM EMS ». LIM EMS имело несколько версий. Первой широко реализованной версией была EMS 3.2, которая поддерживала до 8 МБ расширенной памяти и использовала части адресного пространства, обычно предназначенного для связи с периферийными устройствами ( верхняя память ), для отображения частей расширенной памяти. EEMS , стандарт управления расширенной памятью, конкурирующий с LIM EMS 3.x, был разработан компаниями AST Research , Quadram и Ashton-Tate («AQA»); он мог отображать любую область нижнего 1 МБ. В конечном итоге EEMS была включена в LIM EMS 4.0, которая поддерживала до 32 МБ расширенной памяти, а также обеспечивала некоторую поддержку многозадачности DOS. Однако IBM создала собственный стандарт расширенной памяти под названием XMA .

Использование расширенной памяти стало обычным явлением в играх и бизнес-программах, таких как Lotus 1-2-3, в конце 1980-х - середине 1990-х годов, но ее использование сократилось, поскольку пользователи перешли с DOS на операционные системы с защищенным режимом , такие как Linux , IBM. OS/2 и Microsoft Windows .

Фон

Раздел нижнего адресного пространства размером 1 МБ обеспечивает «окно» в несколько мегабайт расширенной памяти.

Процессор 8088 IBM PC и IBM PC/XT мог адресовать один мегабайт (МиБ или 2 20 байт) памяти. Он унаследовал это ограничение от 20-битной внешней адресной шины (и общей архитектуры адресации памяти) Intel 8086 . Разработчики ПК выделили нижние 640  КиБ (655 360 байт) адресного пространства для памяти программ чтения и записи (ОЗУ), называемой обычной памятью , а оставшиеся 384 КБ памяти были зарезервированы для таких целей, как системный BIOS , видеопамять и память на периферийных платах расширения.

Несмотря на то, что IBM PC AT , представленный в 1984 году, использовал чип 80286 , который мог адресовать до 16 МБ ОЗУ в качестве расширенной памяти , он мог делать это только в защищенном режиме . Нехватка программного обеспечения, совместимого с защищенным режимом (в нем не могли работать никакие стандартные приложения DOS ), означала, что рынок все еще был открыт для другого решения. [1]

Чтобы сделать больше памяти доступной, была разработана схема переключения банков , при которой в любой момент времени были доступны только выбранные части дополнительной памяти. Первоначально использовалось одно окно памяти размером 64 КиБ (2 16 байт), называемое страничным фреймом ; позже это стало более гибким. Программы нужно было писать особым образом, чтобы получить доступ к расширенной памяти. Окно между обычной памятью и расширенной памятью можно было настроить для доступа к различным областям расширенной памяти.

Первую попытку использовать технику переключения банков предприняла компания Tall Tree Systems со своими платами JRAM [2] , но она не прижилась. [1] (Позже Tall Tree Systems выпустила платы на базе EMS, используя ту же марку JRAM.)

Спецификация расширенной памяти (EMS)

Lotus Development , Intel и Microsoft сотрудничали для разработки стандарта EMS (также известного как LIM EMS). Первая общедоступная версия EMS, версия 3.0, позволяла получить доступ до 4 МБ расширенной памяти. [ нужна цитация ] В версии спецификации 3.2 этот размер был увеличен до 8 МБ. В финальной версии EMS, версии 4.0, максимальный объем расширяемой памяти увеличен до 32 МБ и поддерживается дополнительная функциональность.

Microsoft считала смену банка неэлегантной и временной, но необходимой временной мерой. Ударив кулаком по столу во время интервью , Билл Гейтс сказал о расширенной памяти: «Это чушь! Это кладж !… Но мы собираемся это сделать». Компании планировали представить стандарт на выставке COMDEX весной 1985 года , при этом многие компании, производящие карты расширения и программное обеспечение, заявили о своей поддержке. [3] [4]

Первая общедоступная версия стандарта EMS под названием EMS 3.0 была выпущена в 1985 году; Однако EMS 3.0 почти не имела аппаратных реализаций, прежде чем была заменена EMS 3.2. [1] EMS 3.2 использовала область размером 64 КиБ в верхних 384 КиБ ( верхняя область памяти), разделенную на четыре страницы по 16 КиБ, которые можно было использовать для отображения частей расширенной памяти. [1]

В свою очередь, EMS 3.2 была усовершенствована группой из трех других компаний: AST Research, Quadram и Ashton-Tate, которые создали собственный стандарт Enhanced EMS (EEMS). EEMS позволяла сопоставить любую область размером 16 КиБ в младшей оперативной памяти с расширенной памятью, если она не была связана с прерываниями или выделенной памятью ввода-вывода, такой как сеть или видеокарты. Таким образом, целые программы можно было включать и вынимать из дополнительной оперативной памяти. В EEMS также добавлена ​​поддержка двух наборов регистров сопоставления. Эти функции использовались ранними многозадачными программами DOS, такими как DESQview . Выпущенная в 1987 году спецификация LIM EMS 4.0 включала практически все функции EEMS. [1]

Новая функция, добавленная в LIM EMS 4.0, заключалась в том, что платы EMS могли иметь несколько наборов регистров сопоставления страниц (до 64 наборов). Это позволило реализовать примитивную форму многозадачности DOS . Однако предостережение заключалось в том, что стандарт не указывал, сколько наборов регистров должна иметь плата, поэтому в этом отношении между аппаратными реализациями существовали большие различия. [5]

Спецификация расширенной памяти (EMS) — это спецификация, описывающая использование расширенной памяти. Функции EMS доступны через программное прерывание 67h. Программы, использующие EMS, должны сначала установить наличие установленного диспетчера расширенной памяти (EMM), проверив наличие драйвера устройства с именем устройства EMMXXXX0 .

Адаптер расширенной памяти (XMA)

IBM разработала собственный стандарт памяти под названием Expanded Memory Adaptor (XMA); драйвером IBM DOS для него был XMAEM.SYS. В отличие от EMS, к платам расширения IBM можно обращаться как с использованием модели расширенной памяти, так и с использованием расширенной памяти . [6] Аппаратный интерфейс расширенной памяти, используемый платами XMA, однако, несовместим с EMS, [7] но драйвер XMA2EMS.SYS обеспечивает эмуляцию EMS для плат XMA. [6] Платы XMA впервые были представлены для (обновленных) моделей 3270 PC 1986 года . [7]

Реализации

Платы расширения

Плата памяти Emulex Persyst 4 МБ ISA

Эта вставка окна памяти в периферийное адресное пространство изначально могла быть осуществлена ​​только с помощью специальных плат расширения, подключенных к шине расширения ISA компьютера. Известными платами расширенной памяти 1980-х годов были AST RAMpage, IBM PS/2 80286 Memory Expansion Option, AT&T Expanded Memory Adaptor и Intel Upper Board. Учитывая цену оперативной памяти в тот период до нескольких сотен долларов за МиБ, а также качество и репутацию вышеупомянутых торговых марок, плата расширенной памяти стоила очень дорого.

Чипсеты материнских плат

Позже в некоторых наборах микросхем материнских плат компьютеров на базе Intel 80286 была реализована схема расширенной памяти, не требующая дополнительных плат, особенно в наборе микросхем NEAT . Обычно программные переключатели определяют, какой объем памяти следует использовать в качестве расширенной памяти , а какой объем следует использовать в качестве расширенной памяти .

Драйверы устройств

Плата расширенной памяти, будучи аппаратным периферийным устройством, нуждалась в программном драйвере устройства , который экспортировал бы ее службы. Такой драйвер устройства назывался менеджером расширенной памяти . Его имя было переменным; ранее упомянутые платы использовали REMM.SYS (AST), PS2EMM.SYS (IBM), AEMM.SYS (AT&T) и EMM.SYS (Intel) соответственно. Позже это выражение стало ассоциироваться с программными решениями, требующими процессора Intel 80386 , например QEMM от Quarterdeck , 386 MAX от Qualitas или EMM386 по умолчанию в MS-DOS, PC DOS и DR-DOS.

Программная эмуляция

Начиная с 1986 года встроенные функции управления памятью процессора Intel 80386 свободно моделировали адресное пространство при запуске устаревшего программного обеспечения реального режима, что делало ненужными аппаратные решения. Расширенную память можно смоделировать программно.

Первой программной программой управления (эмуляцией) расширенной памяти была CEMM , доступная в сентябре 1986 года в виде утилиты для Compaq Deskpro 386 . Популярным и многофункциональным коммерческим решением стало QEMM компании Quarterdeck. Претендентом был 386 MAX компании Qualitas . Функциональность позже была включена в MS-DOS 4.01 в 1989 году и в DR DOS 5.0 в 1990 году как EMM386 .

Программные менеджеры расширенной памяти в целом предлагали дополнительные, но тесно связанные функции. Примечательно, что они позволили использовать части верхней области памяти (UMA) (верхние 384 КиБ адресного пространства реального режима), называемые верхними блоками памяти (UMB), и предоставили инструменты для загрузки небольших программ, обычно резидентных программ, которые завершаются и остаются. внутри («LOADHI» или «LOADHIGH»).

Взаимодействие между расширенной памятью , эмуляцией расширенной памяти и расширителями DOS в конечном итоге регулировалось спецификациями XMS, виртуального программного интерфейса управления (VCPI), интерфейса защищенного режима DOS (DPMI) и служб защищенного режима DOS (DPMS).

Некоторые программы эмуляции, в просторечии известные как LIMulators, вообще не полагались на материнскую плату или функции 80386. Вместо этого они зарезервировали 64 КБ базовой оперативной памяти для окна расширенной памяти, куда они копировали данные либо в расширенную память, либо на жесткий диск и обратно, когда прикладные программы запрашивали переключение страниц. Программно это было легко реализовать, но производительность была низкой. Этот метод был предложен компанией «AboveDisk» компании «Above Software» и несколькими условно-бесплатными программами.

Также возможно эмулировать EMS, используя память XMS на 286 процессорах с помощью сторонних утилит, таких как EMM286 (драйвер .SYS).

Отклонить

Использование расширенной памяти снизилось в 1990-х годах. IBM AT Intel 80286 поддерживал 24 бита адресного пространства (16 МБ) в защищенном режиме , а 386 поддерживал 32-битные адреса или 4  гигабайта (2 32 ) ОЗУ — в 4096 раз больше адресного пространства, чем исходный 8086. Сама DOS напрямую не поддерживал защищенный режим, но Microsoft в конечном итоге разработала DPMI , и на его основе было опубликовано несколько расширителей DOS . Программы DOS, такие как Doom , могут использовать расширения, такие как DOS/4G , для работы в защищенном режиме, при этом используя DOS API . В начале 1990-х новые операционные системы, такие как Linux , Windows 9x , Windows NT , OS/2 и BSD/OS, поддерживали защищенный режим «из коробки». Эти и подобные разработки сделали концепцию расширенной памяти устаревшей.

Похожие концепции

Другие платформы реализовали ту же базовую концепцию — дополнительную память за пределами основного адресного пространства — но технически несовместимыми способами:

Смотрите также

Рекомендации

  1. ^ abcde Мендельсон, Эдвард (12 декабря 1989). «Слот, полный оперативной памяти». Журнал ПК . Том. 8, нет. 21. Ziff Davis Publishing Co., стр. 169–. Архивировано из оригинала 08 февраля 2020 г. Проверено 8 февраля 2020 г.
  2. ^ «Техническое описание продукта для систем высоких деревьев» (брошюра). Системы высоких деревьев. Октябрь 1983 года.
  3. ^ Макроне, Билл (14 мая 1985 г.). «Схема памяти нарушает 640 КБ». Журнал ПК . Том. 4, нет. 10. Зифф Дэвис Паблишинг Ко. с. 33 . Проверено 28 октября 2013 г.
  4. ^ «Самые запоминающиеся технические провалы». Журнал ПК . Январь 2008 г., стр. 88–89 . Проверено 05 сентября 2020 г.
  5. ^ Рош, Винн Л. (12 декабря 1989). «EMS 4.0: стандарт, которого не было». Журнал ПК . Том. 8, нет. 21. Издательство Ziff Davis Publishing Co., стр. 174–175. Архивировано из оригинала 08 февраля 2020 г. Проверено 8 февраля 2020 г.
  6. ^ ab «Общее руководство по различным формам памяти». Майкрософт . Архивировано из оригинала 22 октября 2012 г.
  7. ^ Аб Уэлч, Марк Дж. (14 апреля 1986 г.). «Спрос на 3270 не вырастет». Инфомир . Том. 8, нет. 15. InfoWorld Media Group, Inc. с. 5. ISSN  0199-6649. Архивировано из оригинала 08 февраля 2020 г. Проверено 8 февраля 2020 г.
  8. ^ Сакаки, ​​М.; Самукава, Х.; Хондзё, Н. (1988). «Эффективное использование большой виртуальной памяти IBM 3090 в интенсивных численных вычислениях ab initio молекулярных орбиталей». IBM Systems Journal . 27 (4): 528–540. дои : 10.1147/sj.274.0528. ISSN  0018-8670.
  9. ^ «IBM: Настройка хранилища». www.vm.ibm.com . Проверено 03 мая 2023 г.

дальнейшее чтение