Логическая структура основной памяти. Каждая ячейка памяти имеет свой уникальный, т

Каждая ячейка памяти имеет свой уникальный, т. е. отличный от всех других, адрес. При этом основная память имеет для оперативного и постоянного запоминающих устройств единое адресное пространство. Адресное пространство определяет максимально возможное количество ячеек основной памяти, которое может быть адресовано непосредственно. Оно зависит от разрядности адресных шин, т. к. максимальное количество разных адресов определяется разнообразием двоичных чисел, с помощью которых эти адреса представляются. В свою очередь, это разнообразие зависит от количества разрядов. Таким образом, адресное пространство равно , где – разрядность кодовой шины адреса.

Пример 3.5. Процессор Intel 8086 (1978 г.) имел кодовую шину адреса разрядности 20 бит. В этом случае может быть непосредственно адресовано 220 ячеек емкостью 1 байт каждая. Следовательно, адресное пространство будет равно 220 байт = 1 Мб.

Процессор Intel 80486 (1989 г.) имел кодовую шину адреса разрядности 32 бита. Его адресное пространство было равным 232 байт = 22·230 байт = 22 Гб = 4 Гб.

Начиная с процессора Intel Pentium Pro (1995 г.) появилась возможность использования режима Physical Address Extension (PAE), в котором для адресации используется 36 бит. В этом случае может быть адресовано 236 байт = 26·230 байт = 26 Гб = 64 Гб.

В компьютерах существуют два способа адресации памяти – реальный режим и защищенный режим. Реальный режим применялся в операционной системе MS DOS. Вычисление физического адреса в реальном режиме выполняется по правилу

CS16 · 1016 + IP16,

где CS, IP – значения сегмента и смещения, заданные в соответствующих регистрах процессора.

Таким образом, максимальный физический адрес равен

FFFF16 ·1016 + FFFF16 = FFFF016 + FFFF16 = 10FFEF16 = 111409510,

а адресное пространство – 1114096 байт = 1 Мб + 64 Кб – 16 байт.

Кроме того, это адресное пространство может быть ограничено разрядностью кодовой шины адреса процессора Intel 8086, т. е. числом 220 байт = 1Мб.

Та часть оперативной памяти, которая не может быть адресована непосредственно, называется расширенной памятью.

Пример 3.6. Компьютер на базе процессора Intel 80486 имеет оперативную память емкостью 16 Мб. Процессор может непосредственно адресовать 1 Мб + 64 Кб – 16 байт оперативной памяти. Тогда расширенная память будет составлять 16 Мб –
–(1 Мб + 64 Кб – 16 байт) = 15 Мб – 64 Кб + 16 байт.

Таким образом, соотношение между непосредственно адресуемой и расширенной памятью будет следующим:

1 114 096 байт : 15 663 120 байт или 6,64 : 93,36.

Следовательно, в реальном режиме работы более 90% оперативной памяти компьютера будут недоступны.

Существуют два способа доступа к расширенной памяти в реальном режиме работы компьютера. Однако они возможны лишь при использовании специальных программ – драйверов по спецификациям XMS и EMS.

Драйвер – специальная программа, управляющая работой оперативной памяти или внешнего устройства компьютера и организующая обмен информацией между процессором, оперативной памятью и внешними устройствами.

Примечание. Драйвер, управляющий работой памяти, называется диспетчером памяти.

Доступ к расширенной памяти согласно спецификации XMS (eXtended Memory Specification) организуется при использовании драйверов типа XMM (например, HIMEM.SYS). Согласно спецификации EMS (Expanded Memory Specification) доступ к расширенной памяти реализуется путем отображения по мере необходимости отдельных ее полей в определенную область непосредственно адресуемой памяти. При этом хранится не обрабатываемая информация, а лишь адреса, обеспечивающие доступ к ней. Для организации памяти по спецификации EMS используются драйверы EMM386.EXE или Quarterdeck EMM.

В защищенном режиме работы компьютера может быть непосредственно адресована память большей емкости, чем в реальном, за счет изменения механизма адресации. Благодаря защищенному режиму, в памяти может храниться только та часть программы, которая необходима в текущий момент времени. Остальная часть может храниться во внешней памяти компьютера, например, на жестком диске. При обращении к той части программы, которой в данный момент нет в памяти, операционная система приостанавливает работу программы, загружает из внешней памяти требуемый фрагмент программного кода, а затем возобновляет выполнение программы. Эта процедура называется подкачкой данных с жесткого диска. Таким образом, в защищенном режиме становится доступным выполнение программ, размер кода которых превосходит объем оперативной памяти компьютера.

Физический адрес в защищенном режиме формируется следующим образом. В сегментном регистре процессора хранится двухбайтовый селектор, который содержит следующую информацию:

■ индекс дескриптора (13 бит) в таблице дескрипторов;

■ флаг (1 бит), определяющий, к какой из двух таблиц дескрипторов (локальной или глобальной) будет выполняться обращение;

■ запрашиваемый уровень привилегий (2 бита).

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

Использование защищенного режима позволило адресовать процессором Intel 80286 (1982 г.) 224 байт = 24 · 220 байт = 16 Мб памяти, в то время как в реальном режиме адресное пространство по-прежнему ограничивалось 1 Мб.

Кроме увеличения адресного пространства, в защищенном режиме возможно параллельное исполнение нескольких программ (многозадачный режим). Многозадачный режим организуется с помощью многозадачной операционной системы (например, Microsoft Windows), которой процессор предоставляет мощный и надежный механизм защиты задач друг от друга с помощью четырехуровневой системы привилегий (рис. 3.7).

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

Рис. 3.7. Уровни привилегий при использовании многозадачного режима