Расширенная память
Расширенная память (англ. expanded memory) — аппаратно-программная система, предоставляющая доступ DOS-приложениям к памяти, недоступной через адресное пространство основной памяти. Расширенная память адресуется странично через «окно», находящееся в верхней зарезервированной области памяти (UMA). Спецификация расширенной памяти (англ. Expanded Memory Specification, EMS) была разработана в 1984 году совместно Lotus Software, Intel и Microsoft, поэтому часто встречается сокращение LIM EMS. С конца 1980-х до середины 1990-х EMS активно использовалась в играх и коммерческих приложениях, однако с приходом спецификаций дополнительной памяти (XMS) стала использоваться реже.
Описание
правитьIBM PC/XT работает в реальном режиме, в котором доступно адресное пространство 1 Мбайт. IBM решила использовать 640 Кбайт для основной памяти, а оставшиеся 384 Кбайт зарезервировала для ПЗУ и дополнительных устройств (см.: UMA).
Однако, как правило, не вся UMA оказывается задействована, поэтому в ней можно выделить окно для организации страничного доступа к памяти, находящейся вне пределов доступного адресного пространства. Электронная схема под управлением программы-драйвера переключает страницы этой памяти таким образом, что в любой момент времени в окне отображается только одна страница, а остальные недоступны.
Изначально было выделено окно в 64 Кбайт, позднее схема управления была модифицирована: размер окна мог быть изменён в зависимости от конкретной системы и в нём могло отображаться одновременно несколько страниц.
Оборудование
правитьКарты расширения
правитьПервоначально расширенная память основывалась на картах расширения, которые устанавливались в ISA-слоты. Эти карты содержали как саму память, так и схемы управления. Наибольшее распространение в 1980-х получили карты AST RAMpage, IBM PS/2 80286 Memory Expansion Option, AT&T Expanded Memory Adapter и Intel Above Board.
Материнские платы
правитьПозднее на материнских платах на основе процессоров 80286 появилось место для установки микросхем и модулей памяти. Схема управления EMS также находилась на материнской плате. В BIOS Setup таких плат можно было выбрать, сколько памяти сделать доступной через EMS, остальное оставалось доступно как дополнительная память.
Программная эмуляция
правитьС появлением процессора 80386, имеющего встроенный менеджер памяти, появилась возможность эмулировать EMS исключительно программно.
Самыми известными менеджерами EMS можно назвать Quarterdeck EMM и Qualitas 386MAX. Qualitas 386MAX позднее был включён в MS-DOS 4.01 как EMM386.SYS.
См. также
правитьЛитература
править- PC System Programming for developers. 1989. ISBN 1-55755-035-2 (Book only) and ISBN 1-55755-036-0 (Book and diskette).
Ссылки
править- Lotus, Intel, Microsoft (October 1987). Expanded Memory Specification. Version 4.0 (недоступная ссылка)
- Lloyd Borrett. Understanding EMS 4.0 (англ.) Technical Cornucopia, January-February 1989