double arrow

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

Структурно основная память состоит из миллионов отдельных однобайтовых ячеек памяти. Общая емкость основной памяти современных ПК обычно лежит в пределах от 16 Мбайт до 512 Мбайт. Емкость ОЗУ на один-два порядка превы­шает емкость ПЗУ: ПЗУ занимает 128 Кбайт, остальной объем — это ОЗУ. Каж­дая ячейка памяти имеет свой уникальный адрес. Для ОЗУ и ПЗУ отводится единое адресное пространство.

Адресное пространствоопределяет максимально возможное количество непо­средственно адресуемых ячеек основной памяти. Адресное пространство зависит



Глава 6. Запоминающие устройства ПК


от разрядности адресных шин, поскольку максимальное количество адресов опре­деляется разнообразием двоичных чисел, которые можно отобразить в п разря­дах, то есть адресное пространство равно 2", где п — разрядность адреса. За осно­ву в ПК взят 16-разрядный адресный код, равный по длине размеру машинного слова. При помощи 16-разрядного представления адреса можно непосредственно адресовать всего 216 = 65 536 = 64 Кбайт ячеек памяти. Это 64-килобайтовое поле памяти, так называемый сегмент, также является базовым в логической структу­ре ОП. Следует заметить, что в защищенном режиме размер сегмента может быть иным и значительно превышать 64 Кбайт.

Современные ПК (кроме простейших бытовых компьютеров) имеют основную память, емкостью существенно больше 1 Мбайт. Но память до 1 Мбайт является еще одним важным структурным компонентом ОП — назовем ее непосредствен­но адресуемой памятью (справедливо полностью только для реального режима). Для адресации 1 Мбайт = 220 = 1 048 576 ячеек непосредственно адресуемой па­мяти необходим 20-разрядный код, получаемый в ПК при помощи специальной структуризации адресов ячеек ОП.




Абсолютный (полный, физический) адрес (Ай(к) формируется в виде суммы не­скольких составляющих, чаще всего используемыми из которых являются: адрес сегмента и адрес смещения.

Адрес сегмента сегм) — это начальный адрес 64-килобайтового поля, внутри ко­торого находится адресуемая ячейка.

Адрес смещения см) — это относительный 16-разрядный адрес ячейки внутри сегмента.

Лсегм должен быть 20-разрядным, но если принять условие, что Лссгм должен быть обязательно кратным параграфу (в последних четырех разрядах должен со­держать нули), то однозначно определять этот адрес можно 16-разрядным ко­дом, «увеличенным» в 16 раз, что равносильно дополнению исходного кода спра­ва 4 нулями и превращению его, таким образом, в 20-разрядный код. То есть условно можно записать:



^абс = 16 X Лсегы + Аси.

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

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


Основная память



можно пояснить следующим образом. В регистре сегмента содержится не А, а некий селектор, имеющий структуру:

ИНДЕКС IF СЛ

где СЛ — вспомогательная служебная информация; F — идентификатор, опреде­ляющий тип таблицы дескрипторов для формирования Асеп1 (таблицы дескрип­торов создаются в ОП при виртуальной адресации автоматически):

О если F= О, то используется глобальная таблица дескрипторов (GDT ), общая для всех задач, решаемых в ПК в многозадачном режиме;

□ если F= 1, то используется локальная таблица дескрипторов (LDT), создавае­мая для каждой задачи отдельно.

В соответствии с индексом и идентификатором из GLT или LDT извлекается 64-битовая строка, содержащая, в частности, и адрес сегмента. Разрядность этого адреса зависит от размера адресного пространства микропроцессора, точнее рав­на разрядности его адресной шины. Подобная виртуальная адресация использу­ется в защищенном режиме работы микропроцессора. Для большей плотности размещения информации в оперативной памяти (уменьшения сегментированности, характерной для многозадачного режима) часто практикуется сегментно-странич-ная адресация, при которой поля памяти выделяются программам внутри сегмен­тов страницами размером от 2 до 4 Кбайт. Формирование сегментно-страничной структуры адресов выполняется автоматически операционной системой.

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

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



Глава 6. Запоминающие устройства ПК


При этом реально программа может размещаться частично в ОП, частично во внешней памяти на жестком диске.

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

□ страниц виртуальной памяти,

□ физического размещения страниц,

и устанавливает логические связи между ними (рис. 6.2).

Рис. 6.2. Таблица страниц

На рис. 6.2 видно, что физические страницы могут находиться в текущий момент времени как в оперативной, так и во внешней памяти. Из внешней памяти вир­туальные страницы автоматически перемещаются в оперативную только тогда, когда к ним происходит обращение. При этом они замещают уже отработавшие страницы. Страничные таблицы для каждой программы формируются операци­онной системой в процессе распределения памяти и изменяются каждый раз, когда физические страницы перемещаются из ВЗУ в ОП. Виртуальная память может иметь и сегментно-страничную организацию. В этом случае виртуальная память делится сначала на сегменты, а внутри них на страницы. Принцип орга­низации такой памяти аналогичен рассмотренному выше.


Основная память



Для ПК характерно стандартное распределение непосредственно адресуемой па­мяти между ОЗУ и ПЗУ (рис. 6.3).




Рис. 6.3. Непосредственно адресуемая память

Основная память в соответствии с методами обращения и адресации делится на отдельные, иногда частично или полностью перекрывающие друг друга области, имеющие общепринятые названия. В частности, обобщенно логическая структу­ра основной памяти ПК общей емкостью 64 Мбайт представлена на рис. 6.4.






Сейчас читают про: