Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia1 (1).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.64 Mб
Скачать

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

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

При разработке архитектуры первых IBM PC в нее было заложено ограничение на общий объем адресуемой памяти в 1 Мб. Поэтому логиче­ская организация ОЗУ до сих пор несет на себе признаки этого ограниче­ния. Таким образом, вся оперативная память PC разбивается на следую­щие области (рис. 2.3.1):

  • Conventional Memory (стандартная память)-640 Кб.

  • UMA (Upper Memory Area)— верхняя память-384 Кб.

  • HMA (High Memory Area)— высокая память-64 Кб.

  • XMS (Extended Memory)— расширенная память. В этой облас­ти может располагаться эмулируемая память (EMS- Expanded Memory, фактически отображаемая через блоки UMA).

Первые три логических компонента обусловлены первоначальным ограничением на объем адресуемой памяти, а последний появился при расширении адресного пространства.

Рис. 2.3.1. Логическая организация памяти IBM PC.

Стандартная память (Conventional Memory, Base Memory) начина­ется с нулевого адреса и занимает 640 Кб. Этот невысокий верхний предел был установлен процессорами 8088 и 8086. Эти процессоры имели 20-раз­рядную адресную шину и поэтому могли адресовать только 1 Мб памяти. В пределах этой памяти выше уровня 640 Кб фирмой IBM были зарезер­вированы 384 Кб для выполнения внутренних функций.

Таблица векторов прерываний занимает 1024 байта, начиная с нуле­вого адреса [4]. Само название говорит, что речь идет о таблице (состоя­щей из 256 элементов по 4 байта), в которой находятся вектора прерыва­ний— адреса сервисных программ, входящих в состав операционной сис­темы и BIOS. При этом речь идет о таких базовых функциях, как отобра­жение символа на экране монитора, организация доступа к дисководу или жесткому диску и т.п. Так как существуют различные операционные сис­темы и версии BIOS, эти программы-прерывания могут располагаться в различных местах стандартной оперативной памяти.

Область данных BIOS объемом 768 байт расположена за таблицей прерываний. Здесь размещены, например, счетчик таймера, буфер клавиа­туры и другая внутренняя информация. Далее в стандартной оперативной памяти расположено ядро операционной системы. Ядро DOS не имеет по­стоянного адреса памяти. Его местоположение и размер памяти, занимае­мой им, зависит от версии операционной системы. Впрочем, имеется воз­можность оптимизировать стандартную память, поместив ядро операци­онной системы в другие области памяти. Остальное пространство до адре­са A0000 принадлежит только программам и данным.

Верхняя память (UMA, Upper Memory Area). Следующая за пер­выми 640 Кб область памяти по характеру загружаемой в нее информации может быть названа "аппаратной". Эта информация служит для сопряже­ния прикладных программ с различными картами расширений, установ­ленными в PC. Данную область памяти называют верхней памятью или UMA. Она располагается по адресам от A0000 до FFFFF (от 640 Кб до 1 Мб), ее размер составляет 384 Кб. Рассматриваемая область памяти не од­нородна. В UMA могут размещаться ROM BIOS, а также модули посто­янной и оперативной памяти (виртуально), конструктивно расположенные на картах расширения. Логически верхняя память делится на блоки. Среди этих блоков некоторые являются зарезервированными (пользователь не может их использовать), а другие свободны. Свободные блоки называют UMB (Upper Memory Block), так как они находятся в верхней памяти. Область памяти графической карты занимает 128 Кб. Конструктивно она располагается на видеокарте, а логически помещена в адресное про­странство PC. В памяти видеокарты хранится изображение. Соответст­вующая программа обращается к нему через "окно" размером 64 Кб. При этом программа управляет значением в специальном индексном регистре, которое показывает, какие 64 Кб видеопамяти отображаются в окне. Далее располагается VGA BIOS (размером 32 Кб), где записаны основные функ­ции для представления изображений.

Некоторые прикладные программы охотно обращаются к VGA BIOS, потому что доступ к программам BIOS в области памяти сегмента адаптера намного быстрее, чем к соответствующим программам, находя­щимся в ROM BIOS видеокарты. Выше адреса C8000 находятся несколько свободных блоков, которые могут быть использованы различным образом. Можно использовать эту память для операционной системы (ее можно поместить туда с помощью драйверов HIMEM.SYS, EMM386.ЕХЕ, вхо­дящих в поставку ОС), драйверов или резидентных программ. Кроме того, 64 Кб резервируются для страниц EMS-памяти, если она будет использо­ваться. В последних 64 Кб сегмента адаптера выше адреса F0000 распола­гается ROM BIOS. Здесь, например, находится информация, занесенная в CMOS Setup, при конфигурировании PC.

Как уже упоминалось ранее, в верхней памяти имеются "дырки", ко­торые представляют собой свободную память, самостоятельно не иденти­фицируемую системой. Пустуют, как правило, область расширения сис­темного ROM BIOS или часть области под дополнительные модули ROM. Можно организовать загрузку ОС в UMA, включив в файл config.sys команды:

Device=C:\Windows\HIMEM.SYS/hmamin=64

DOS=HIGH,UMB

Использовать "дыры" в верхней памяти позволяет метод EMS (Ex­panded Memory), появившийся прежде всего потому, что программы, ис­пользующие большое количество памяти, не могут разместиться в опера­тивной памяти до 640 Кб. Использование данной спецификации памяти возможно при добавлении в config.sys, например, следующей команды

Device=C:\Windows\EMM386.EXE auto ram

В этом случае, после загрузки ОС блоки EMS (эмулируемой па­мяти), расположенные фактически в расширенной (XMS) памяти будут отображаться через "окна", организованные в UMA.

Высокая память (HMA, High Memory Area). Первый блок величи­ной 64 Кб непосредственно выше границ 1 Мб оперативной памяти обо­значают как НМА (High Memory Area). Своему существованию эта об­ласть целиком обязана несколько "ущербной" эмуляции процессора 8088 процессором 80286. Дело состоит в следующем. Вся стандартная память, помимо того, что может быть представлена в виде 16 неперекрываемых блоков размером 64 Кб каждая (0— F), также может быть представлена и в виде перекрываемых 64-Кб об­ластей, называемых сегментами. Макси­мальный полный адрес в виде сегмент: смещение, по которому может об­ратиться процессор i8088— это FFFF:000Fh (20 адресных линий). При увеличении этого значения хотя бы на единицу произойдет циклический перенос, и значение адреса станет 0000:0000. Для CPU 80286 и выше в общем случае этого не случится, так как адресная шина этих процессоров больше 20 разрядов, но адрес памяти при этом превысит 1Мб. Чтобы ис­править эту ошибку, фирма IBM разработала аппаратные средства, застав­ляющие процессор 80286 выполнять переход на низшие адреса, как это было при работе процессора 8088 (Real Mode). Однако такой переход мо­жет быть отменен программным путем. Таким образом, PC с CPU не ниже 80286 в реальном режиме может адресовать дополнительно практически целый сегмент размером 64 Кб минус 16 байт. Необходимую программ­ную поддержку выполняет специальный драйвер HIMEM.SYS, специфи­кации XMS. В HMA можно загрузить резидентную часть ОС.

Расширенная память (XMS, Extended Memory). Последний тип па­мяти. В ней можно сформировать память согласно спецификации EMS и разместить данные.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]