Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Логическое распределение оперативной памяти




 

Логическое распределение оперативной памяти определяется не только при­меняемой операционной системой, но и особенностями аппаратной реализа­ции IBM-совместимых PC. Знание строения ОЗУ необходимо для программ­ной оптимизации системы.

Можно выделить пять важнейших логических областей оперативной памяти:

 Стандартная оперативная память (Conventional Memory);

 ЕМS-память (Expanded Memory Specification) – дополнительная память;

 UMA (Upper Memory Area) – верхняя память;

 HMA (High Memory Area);

 XMS (Extended Memory Specification) – расширенная память

 

Стандартная оперативная память

 

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

В то время как внутри PC обычно все выражается в двоичной системе счисле­ния (0 или 1), для адресации памяти применяется шестнадцатеричная, харак­теризующаяся наличием символа “h” после значения.

Стандартная память начинается от адреса 0000:0000 и про­должается до адреса А000:0000, занимая 640Кбайт. Этот невысокий верхний предел был установлен процес­сорами 8088 и 8086. Эти процессоры имели 20-разрядную адресную шину и поэтому могли адресовать только 1 Мбайт памяти (220=l 048 576 байт). В пределах этой памяти выше уровня 640 Кбайт фирмой IBM были зарезер­вированы 384 Кбайта для выполнения внутренних функций, на которых мы остановимся ниже.

В стандартной памяти расположены таблица векторов прерываний, область данных BIOS, операционная система.

 

Таблица векторов прерываний

 

Само название говорит о том, что речь идет о таблице (состоящей из 256 элементов по 4 байта), в которой находятся вектора прерываний – адреса сервисных программ, входящих в состав операционной системы и BIOS. При этом речь идет о таких базовых функциях, как отображение символа на экране монитора или организация доступа к дисководу или жесткому диску и т. п. Но так как существуют различные операционные системы и версии BIOS, эти програм­мы-прерывания могут располагаться в различных местах стандартной опера­тивной памяти. В таблице прерываний указано их реальное местоположение. Таблица занимает место 1024 Байт (1 Кбайт) и начинается с адреса 0000h:0000h.

Область данных BIOS

 

Вслед за таблицей прерываний расположена область данных BIOS объемом 768 Байт. Здесь размещены, например, счетчик таймера, буфер клавиатуры и другая внутренняя информация.

 

Операционная система

 

Далее в стандартной оперативной памяти расположена опера­ционная систе­ма. Конечно же, она загружается в RAM не полностью, а только частично (ядро). Ядро ОС не имеет постоянного адреса памяти. Его местоположение и размер занимаемой им памяти зависят от операционной системы.

 

Основная область памяти

Далее до адреса A000h:0000h все принадлежит только программам и данным. Этот адрес известен как граница 640 Кбайт, с которой успешно справляются мно­гие PC с процессором выше 80286.

 

UMA

 

Верхняя память – участок памяти от 640Кб до 1 Мб.

Здесь находится информация, которая служит для сопряжения прикладных программ с раз­личными картами расширений, уста­новленными в PC. И поскольку иногда карты расширения, например, видеокарту, называют адаптером (Adapter), эту область памяти коротко называют сегментом адаптера или, поскольку речь идет об области памяти с более высокими адресами, UMA (Upper Memory Area). Эта верхняя память (Upper Memory) располагается по адресам от A0000h до FFFFFh (от 640 Кбайт до 1 Мбайт), ее размер составляет 384 Кбайт.

Рассматриваемая область памяти не однородна. В UMA размешается видеопа­мять и ПЗУ BIOS, а также могут находиться модули постоянной и оператив­ной памяти, конструктивно расположенные на картах расширения, подклю­ченных к PC. Поэтому среди этих блоков некоторые являются зарезервиро­ванными (пользователь не может их исполь­зовать), другие, напротив, свобод­ны. Свободные блоки, поскольку они находятся в верхней памяти, также называют UMB (Upper Memory Block).

 

EMS

 

Как уже упоминалось ранее, в верхней памяти имеются изрядные «дыры», которые представляют собой свободную память, самостоятельно не иденти­фицируемую системой. Пустуют, как правило, область расширения системно­го ROM BIOS или часть области под дополни­тельные модули ROM. Исполь­зовать эту память позволяет метод EMS (Expanded Memory Specification), появившийся прежде всего потому, что программы, использующие большое количество памяти, не могут разместиться в оперативной памяти до 640 Кбайт.

Для того чтобы преодолеть этот барьер, фирмы Lotus, Intel и Microsoft (отсюда название LIM) создали стандарт, который основывается на так называемом переключении банков (Bank Switchings), или блоков (страниц), памяти. В об­ласти UMB между видеобуфером и системным ROM BIOS выделяется неза­нятое «окно» (page frame) размером 64 Кбайт, разделенное на 4 логические страницы по 16 Кбайт. С помощью специального драйвера, например ЕММ386.ЕХЕ, строятся «ото­бражения» до четырех произвольных физических страниц из дополнительной (Expanded) памяти, расположенной на специаль­ной карте расширения, в логические. Поэтому эту память часто называют отображаемой памятью. При необходимости обращения к данным, располо­женным в дополнительной памяти, с помощью драйвера выбирается соответ­ствующее ранее построенное «отображение» физических страниц в логичес­кие. Когда процессор обращается к области памяти, входящей в «окно» (адрес памяти которого ниже 1 Мбайт), аппаратно происходит обращение к соответствую­щим страницам дополнительной памяти на плате расширения. Таким обра­зом, посредством адресации, реализуемой драйвером EMS, можно обращать­ся к 8 Мбайт (стандарт LIM 3.2) или к 32 Мбайт (стандарт LIM 4.0) дополнительной памяти, которая конструктивно расположена на отдельной карте расширения. На PC с процессорами 80386 и выше такая отдельная карта не нужна. EMS здесь может эмулироваться с помощью соответствующих драй­веров.

Для того чтобы использовать EMS-память, необходимо выполнение двух условий:

 прикладные программы должны уметь обращаться к драйверу EMS-па­мяти;

 необходим специальный менеджер памяти (Expanded Memory Manager), со­кращенно EMM, который организует страницы и управляет ими. Ранее, для старых материнских плат, соответствующий драйвер поставлялся на отдельной дискете. В настоящее время этот драйвер входит в стандарт­ные поставки DOS и Windows, в этом случае он соответствует последне­му стандарту LIM и представляет собой файл ЕММ386.ЕХЕ. Этот драй­вер позволяет программно эмулировать дополнительную (Expanded) па­мять в расширенной (Extended) памяти.

 

НМА

 

Первый блок величиной 64 Кбайта непосредственно выше границы 1 Мбайт оперативной памяти обозначают как НМА (High Memory Area). Своему сущест­вованию эта область целиком обязана несколько «ущербной» эмуляции процес­сора 8088 процессором 80286. Дело состоит в следующем. Вся стандартная па­мять, помимо того, что может быть представлена в виде 16 неперекрываемых блоков размером 64 Кбайта каждая (0–F), также может быть представлена и в виде перекрываемых 64 Кбайтных областей, называемых сегментами, которые, вообще говоря, могут начинаться через каждые 16 байт. Максимальный пол­ный адрес в виде сегмент: смещение, по которому может обратиться процессор 8088, – это FFFF:000Fh (20 адресных линий). Если увеличить это значение хотя бы на единицу, то произойдет циклический перенос (wrap around) и значе­ние адреса станет 0000:0000. Для процессора 80286 и выше в общем случае этого не случится, так как адресная шина этих процессоров больше 20 разрядов, но адрес памяти при этом превысит границу 1 Мбайт. Чтобы исправить эту ошибку, фир­ма IBM предусматривает на материнских платах PC специальные аппаратные средства, «заставляющие» процессор 80286 выполнять переход на низшие адре­са, как это было при работе процессора 8088. Однако такой переход может быть отменен чисто программным путем. Таким образом, PC с процессором не ниже 80286 в реальном режиме может дополнительно адресовать память в пределах FFFF:0010-FFFF:FFFFh, т.е. практически целый сегмент размером 64 Кбайт минус 16 байт. Особенно важным для понимания является тот факт, что область НМА доступна, по сути, в реальном режиме работы процессора.

XMS

 

В 1982 году появилась возможность использования расширенной памяти.

Расширенная память – часть оперативной памяти в компьютерах с микропроцессорами Intel-80286, расположенная выше первого мегабайта.

XMS (eXtended Memory Specification) обозначает всю память выше границы 1 Мбайт, включая также НМА.

Чтобы иметь доступ к этой памяти, необходим специальный драйвер, с помо­щью которого данные пересылаются из стандартной памяти в расширенную и обратно. Выполнение программ, размещенных в расширенной памяти, не предусмотрено. Драйвер, реализующий XMS, переводит процессор в защищенный режим, т. е. режим, в котором можно адресовать всю память.

 





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 2026 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. © Аристотель
==> читать все изречения...

2223 - | 2174 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.