Из Википедии, бесплатной энциклопедии
  (Перенаправлено из памяти EMS )
Перейти к навигации Перейти к поиску

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

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

Расширенная память - это общий термин для нескольких несовместимых вариантов технологий. Наиболее широко используемым вариантом была спецификация расширенной памяти ( EMS ), разработанная совместно Lotus Software , Intel и Microsoft , поэтому эту спецификацию иногда называли « LIM EMS ». У LIM EMS было несколько версий. Первой широко внедренной версией была EMS 3.2, которая поддерживала до 8 МБ расширенной памяти и использовала части адресного пространства, обычно предназначенные для связи с периферийными устройствами ( верхняя память ), для отображения частей расширенной памяти. EEMSстандарт управления расширенной памятью, конкурирующий с LIM EMS 3.x, был разработан AST Research , Quadram and 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 можно было бы рассмотреть один мегабайт (MIB, или 2 20 байт) памяти. Он унаследовал этот предел от 20-разрядной шины внешнего адреса Intel 8086 . Конструкторы ПК выделили нижние 640  КиБ (655 360 байт) адресное пространства для памяти программы чтения-записи (RAM), называемых «обычная памятью», а остальные 384 Кбайт пространства памяти были зарезервирован для использования , таких как система BIOS , видеопамять, и память о расширении периферийных платах .

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

Чтобы вместить потенциально гораздо больше памяти, чем позволяет 384 КиБ свободного адресного пространства, была разработана схема переключения банков , при которой только выбранные части дополнительной памяти будут доступны в любой момент времени. Первоначально было возможно единственное окно памяти размером 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 МБ расширенной памяти. [ необходима цитата ] Это было увеличено до 8 МиБ с версией спецификации 3.2. Последняя версия 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 Adapter (XMA); драйвером IBM DOS для этого был XMAEM.SYS. В отличие от EMS, к платам расширения IBM можно было обращаться как с использованием модели расширенной памяти, так и в качестве расширенной памяти . [6] Аппаратный интерфейс расширенной памяти, используемый платами XMA, однако, несовместим с EMS, [7] но драйвер XMA2EMS.SYS обеспечивает эмуляцию EMS для плат XMA. [6] Платы XMA были впервые представлены в моделях ПК 3270 (модернизированных) 1986 года . [7]

Реализации [ править ]

Платы расширения [ править ]

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

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

Наборы микросхем материнских плат [ править ]

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

Драйверы устройств [ править ]

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

Программная эмуляция [ править ]

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

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

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

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

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

Отклонить [ править ]

Использование расширенной памяти снизилось в 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 NT , OS / 2 и BSD / OS поддерживали защищенный режим «из коробки». Эти и подобные разработки сделали расширенную память устаревшей концепцией.

См. Также [ править ]

  • Обычная память
  • Управление памятью DOS
  • Расширенная память (XMS)
  • Область верхней памяти (HMA)
  • Верхняя область памяти (UMA)
  • Глобальная спецификация импорта EMM (GEMMIS)
  • сегментация памяти x86
  • Расширения адресного окна (AWE)
  • Расширение физического адреса (PAE)

Ссылки [ править ]

  1. ^ a b c d e Мендельсон, Эдвард (1989-12-12). «Слот, полный оперативной памяти» . Журнал ПК . Vol. 8 нет. 21. Ziff Davis Publishing Co., стр. 169–. Архивировано 8 февраля 2020 года . Проверено 8 февраля 2020 .
  2. ^ "Технические данные по системам для высоких деревьев" (Брошюра). Системы высоких деревьев. Октябрь 1983 г.
  3. ^ Махрон, Билл (1985-05-14). «Схема памяти нарушает 640К» . Журнал ПК . Vol. 4 шт. 10. Ziff Davis Publishing Co., стр. 33 . Проверено 28 октября 2013 .
  4. ^ "Самые памятные технические провалы" . Журнал ПК . Январь 2008. С. 88–89 . Проверено 5 сентября 2020 .
  5. ^ Рош, Винн Л. (1989-12-12). «EMS 4.0: стандарт, которого не было» . Журнал ПК . Vol. 8 нет. 21. Ziff Davis Publishing Co., стр. 174–175. Архивировано 8 февраля 2020 года . Проверено 8 февраля 2020 .
  6. ^ a b «Общее руководство по различным формам памяти» . Microsoft . Архивировано из оригинала на 2012-10-22.
  7. ^ a b Уэлч, Марк Дж. (1986-04-14). «3270 Спрос не ожидается роста» . InfoWorld . 8 (15). InfoWorld Media Group, Inc. стр. 5. ISSN 0199-6649 . Архивировано 8 февраля 2020 года . Проверено 8 февраля 2020 . 

Дальнейшее чтение [ править ]

  • «Спецификация расширенной памяти» . Версия 4.0. Лотус , Intel , Microsoft . Октябрь 1987. 300275-005. Архивировано 8 февраля 2020 года . Проверено 8 февраля 2020 .
  • Тишер, Майкл (1989). Системное программирование ПК для разработчиков . ISBN 1-55755-036-0.
  • Борретт, Ллойд Роберт (январь – февраль 1989 г.). «Понимание EMS 4.0» . Технический рог изобилия . Архивировано 8 февраля 2020 года . Проверено 8 февраля 2020 .