пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Расширение основной памяти IBM PC

Рабочая концепция фирмы IBM при создании IBM PC содержала гипотезу, что объем основной памяти ЭВМ, предназначенной для персонального использования не должен превышать 640 Кбайт. Поэтому в базовую модель IBM PC заложили 20-разрядную шину адреса системной магистрали. Наличие 20 линий в шине адреса позволяло адресовать память большего объема, чем было предусмотрено концепцией (220 = 1 Мбайт). «Излишек» адресного пространства в 384 Кбайт был поделен между видеопамятью (128 Кбайт) и ПЗУ (256 Кбайт).

Чтобы физически увеличить объем памяти необходимо подключить к системной магистрали дополнительные модули. Каж­дый байт дополнительной памяти должен иметь уникальный адрес, а адресного пространства для дополнительной памяти нет.

Существует несколько способов разрешения таких проблем. Один из них - банкирование памяти: вся память делится на блоки (банки), емкость которых не выходит за пределы допустимого адресного пространства; во время работы специальными командами можно переключать банки, делая активным любой из них или осуществляя групповую перепись информации из одного банка в другой.

В IBM PC XT фирма IBM применила другой способ: 256 Кбайт было сначала оставлено для ПЗУ, в котором размещалась базовая система ввода-вывода (BIOS). Анализ программ BIOS показал, что в оставленном для ПЗУ адресном пространстве (UMB - Upper Memory Block) имеются «окна» - неиспользуемые участки. Четыре таких участка (paqe frames) по 16 Кбайт были выделены и их адреса стали использоваться для адресации дополнительной памяти, подключенной к системной магистрали. Таким образом, общий объем ОП удалось увеличить на 64 Кбайта. Специальная программа (драйвер дополнительной памяти) «перехватывала» обращение к «окнам» ПЗУ и вместо них «подставляла» дополнительный модуль памяти (Expended Memory).

Дополнительная память не обязательно должна была иметь объем 64 Кбайта. Ее объем мог быть и большим (фирма IBM выпускала модули дополнительной памяти объемом 8 и 32 Мбайта). При этом драйвер дополнительной памяти делил ее на блоки по 16 Кбайт и «отображал» каждое окно UMB на один из блоков Expended Memory. Из-за этого память такого вида получила название отображаемой.

Но развитие персональных ЭВМ привело к необходимости более серьезной корректировки рабочей концепции. Поэтому в IBM AT с микропроцессором i80286 разрядность шины адреса увеличили до 24, что позволило увеличить объем ОП до 16 Мбайт. В МП i80386 разрядность шины адреса и адресных регистров микропроцессора увеличена до 32, в результате чего допустимый объем ОП увеличился до 4 Гбайт. Изменился принцип формирования абсолютного адреса ОП, в результате чего утрачена совместимость с программным обеспечением, разработанным для IBM PC XT. Чтобы обеспечить совместимость AT с XT, было решено реализовать два режима работы микропроцессоров, имеющих номер, больший 80286: реальный и защищенный.

В реальном режиме работают только 20 шин адреса системной магистрали, а дополнительные разряды шины адреса заблокированы, что обеспечивает совместимость с микропроцессором i8086 и позволяет использовать операционную систему MS DOS и программное обеспечение, разработанное для XT. Но при этом остается неиспользованной вся дополнительная память, находящаяся за пределами 1 Мбайта.

В защищенном режиме применяется другой принцип формирования абсолютного адреса ОП, благодаря чему возможно использование всей имеющейся в наличии дополнительной (расширенной) памяти, но возникают трудности с использованием программного обеспечения, разработанным для MS DOS.

В IBM PC XT 20-битный адрес формировался из двух машинных слов: базового адреса сегмента (16 бит) и смещения (16 бит). Это было связано с тем, что вся ОП делилась на сегменты емкостью по 64 Кбайта. Адресация байтов внутри сегмента начиналась с О и заканчивалась адресом FFFF. Внутрисегментный адрес байта называется смещением (т.е. смещением относительно начала сегмента). Начало же сегмента (т.е. его базовый 20-битный адрес) однозначно определялся 16-битным адресом, который преобразовывался в 20-битный адрес дописыванием справа четырех нулей. В машинных командах абсолютный (физический) адрес задавался либо прямым указанием базового адреса сегмента и смещения (которые разделялись двоеточием, например, 0A12:F4B2, где 0А120 - 20-битный адрес начала сегмента; F4B2 - 16-битное смещение внутри сегмента), либо по умолчанию (базовые адреса сегментов программы, данных, стека запоминаются в специальных регистрах микропроцессора), либо указанием регистра, в котором содержится необходимый базовый адрес (например, если регистр называется CS, то абсолютный адрес в машинной команде может быть задан в виде: CS : F4B2).

Начиная с МП i80386 благодаря увеличению длины всех регистров для смещений до 32 бит реализована возможность работы «с плоской памятью», не разделяемой на сегменты. Это допускает адресацию 232 байт или 4 Гбайт ОП. Физический адрес основной памяти при этом стал иметь длину 4 байта (или 8 шестнадцатеричных символов, например 729bd000).

Желание использовать в реальном режиме всю фактически имеющуюся в наличии дополнительную память привело к созданию двух виртуальных режимов, один из которых - стандарт EMS (Expended Memory Specifications - спецификация расширенной памяти), реализующий принцип банкирования дополнительной памяти. Вся дополнительная память делится на страницы (банки), емкостью по 16 Кбайт; выбираются четыре страницы и объявляются активными. Выбранные активные страницы отображаются на четыре окна UMB, теперь при обращении к одному из окон UMB вместо него подставляется отобра­женная на него страница дополнительной памяти. Поскольку любое окно UМВ можно отобразить на любую страницу дополнительной памяти (объявив ее активной), то изменяя отображение в процессе работы, можно использовать всю дополнительную память любого объема.

Стандарт EMS реализуется программным путем - с помощью драйвера дополнительной памяти, который «перехватывает» каждое обращение к окну, имеющемуся в адресном пространстве ПЗУ и «подставляет» вместо ПЗУ соответствующий участок дополнительной памяти.

В соответствии с этим стандартом работают драйверы XMA2EMS.SYS, EMM386.SYS и др.

Стандарт EMS несколько снижает производительность системы, но не накладывает никаких ограничений на размещение в дополнительной памяти программ и данных.

Другой виртуальный режим основан на том, что за счет разблокирования на время дополнительных (по сравнению с XT) линий шины адреса системной магистрали удается увеличить доступное MS DOS адресное пространство еще почти на 64 Кбайта, начиная с адреса FFFFF (т.е. за пределами адресного пространства 1 Мбайт). Эта область адресного пространства (64 Кбайта, начиная с 1 Мбайта) получила название НМА (Hiqh Memory Area) старшая область памяти. Ее также можно использовать, работая в MS DOS, для хранения и программ, и данных.

Блоки памяти, расположенные выше границы НМА, называются ЕМВ (Extended Memory Blocks) дополнительные блоки памяти, хотя часто дополнительной памятью (ЕМ - Extended Memory) называют всю дополнительную память, расположенную в адресном пространстве выше 1 Мбайта, иногда выделяя в ней область НМА.

Кратковременное разблокирование дополнительных линий шины адреса системной магистрали позволяет реализовать стандарт XMS (extended Memory Specification - спецификация дополнительной памяти), при котором разделенная на страницы ЕМ отображается на НМА, но в этом стандарте программные модули могут располагаться только в НМА, а остальная память может использоваться лишь для хранения данных. Стандарт ХМА реализуется драйвером HIMEM.SYS, кото­рый способен работать с шиной адреса, имеющей до 32 линий.


02.12.2014; 19:29
хиты: 73
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь