- •Глава 1. Принципы построения современных эвм.
- •Формы представления чисел
- •Арифметические операции над двоичными числами с фиксированной запятой
- •Арифметические операции над числами с плавающей запятой
- •Находим характеристику частного путем сложения с дополнением .
- •, При переходе к прямому коду, получим Теперь находим частное деления мантисс, используя схему деления без восстановления остатка. Коды мантиссы делителя
- •Таким образом, окончательный результат равен . Так же, как и впредудущих случаях проверим результат:
- •Логические основы построения эвм Элементы алгебры логики
- •Основные законы алгебры логики и формы логических функций
- •Синтез логических схем
- •Принципы построения современных эвм
- •Системы команд и методы адресации, применяемые в эвм
- •Постоянная память
- •Логическая организация оперативной памяти
- •Кэширование оперативной памяти
Логическая организация оперативной памяти
Рассмотрим логическую организацию памяти на примере 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 (Expanded 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, хотя в настоящее время наметился негласный отход от этой поддержки.
