Дополнительная память (Expanded Memory)
В 1983 году, ровно через два года после тою, как создание IBM PC сделало старые компьютеры с максимальной памятью 64К действительно устаревшими, собственный предел PC в 640К показал себя как шлагбаум на пути использования более сложных программ и больших объемов данных. Поэтому объединение компаний возглавляемое Lotus Development Corporation. Intel Cor-| poration и Microsoft Corporation, разработало так называемую Expanded Memory Specifikation. предназначенную для преодоления барьера 640К. Взаимозаменяемо ис-[ пользуются термины Expanded Memory, LIM Memory (по названиям компаний) или EMS. Эта технология использует метод переключения банков памяти, что позволяет микропроцессору адресовать также память, которая находится вне пределов его возможностей.
Переключение банков работает, разделяя дополнительную систему памяти на большое количество дискретных блоков или банков памяти, которые не связаны напрямую с микропроцессором. Вместо этого каждый банк стыкуется с программным обеспечением, контролирующим переключение аппаратных средств. Посредством специальных команд каждый блок может быть индивидуально подключен к адресуемой области и управлению микропроцессором. Общая память, содержащая банки памяти, может, таким образом, быть доступ через маленькую область адресов, называемую раде frame (рамка страницы), которая содержится в обычно? памяти. Поэтому, даже процессор типа 8088 может one-1 с несколькими мегабайтами памяти.
Используя последнее воплощение EMS - версию 4.0 можно использовать вплоть до 32 мегабайт через 16К-байтные банки, переключаемые в области обычных адресов. В то время, как первоначальная версия EMS использовала 64К-байтовое окно в верхней памяти, EMS 4.0 также позволяет блоку переключения банков располагаться внутри 640К-байтной адресной области DOS. Это очень важное различие, поскольку оно ставит EMS 4.0 в непрерывную адресную область DOS и позволяв! программному коду быть банкопереключаемым. Это позволяет специально написанным программам, превышающим 640К работать в системе 8088. Ранние спецификации EMS 3 2 обеспечивали только хранение данных в переключаемых банках памяти.
Дополнительная память не может быть использована непосредственно. Она требует добавления к вашей системе, как программного обеспечения, так и аппаратных средств. Почти каждый компьютер, базирующийся на 8088-м и 8086-м процессоре, также как и большинство 80286-х ПК, обычно требуют специальную плату EMS-памяти, для использования преимуществ дополнительной памяти LIM 4.0. Это происходит потому, что большинство ранних ПК не имеют средств для самостоятельного переключения банков. У них не хватает аппаратных средств для разбиения и переключения банков памяти. Плата EMS добавляет необходимую систему управления совместно с памятью, ориентированной на банки. В дополнение ко всему, необходимы программные драйверы для обеспечения соответствия ваших программ средствам EMS вашей системы. Помимо других вещей, драйверы указывают программам, какие средства EMS им предоставлены, и как их использовать, расположение рамки страниц (которое может варьироваться при использовании систем с различной конфигурацией) и объем предоставленной памяти. Окно, используемое для EMS-пла-ты, занимает 64К-ю область в верхней памяти, которая не может быть использована ни для каких других целей.
Некоторые 286-е компьютеры и все 386-е и более поздние машины могут эмулировать переключение банков, используя свои встроенные возможности по преобразованию памяти, большинство пакетов программ управления памятью содержат программный драйвер, необходимый для "превращения" extended memory в переключаемые банки EMS.
Программы, эмулирующие дополнительную память, иногда называемые UMulators, могут почти полностью имитировать EMS, даже на 8088-х машинах. На 286-х компьютерах эти программы эмулируют EMS, используя расширенную память на 8088-х машинах программы используют дисковую память для эмуляции EMS. В остальных случаях эмуляторы копируют коды из системы страниц на предоставленный диск или в расширенную память по необходимости. Операции копирования могут резко замедлить производительность, но они дают вам возможность использования больших наборов данных, когда это действительно необходимо вам.
Отметим, что ни 8088, ни стандартные 286-е компьютеры не могут полностью заменить EMS 4.0, используя только программное обеспечение. Некоторые функции EMS 4.0 реализуются техническими средствами, которые не могут быть заменены никакими программными эмуляторами. Как результат, некоторые программы не могут правильно оперировать с эмулированной EMS. Тем не менее, большинство драйверов, управляющих виртуальной памятью, укладываются достаточно точно в стандарт EMS 4.0, соответствия которому вы можете ожидать для основного количества ваших приложений, которые используют виртуальную EMS, как если бы она была реальной.
Некоторые аппаратные средства EMS 4.0 также имеют свои собственные ограничения. многие из них объясняются конструктивными особенностями, возникшими благодаря совместным усилиям большого числа производителей, каждый из которых преследует свои собственные интересы.