Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по АрхЭВМ для 27 гр.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
319.49 Кб
Скачать

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

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

Существует два режима работы процессора: реальный и защищенный.

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

Формирование физического адреса в реальном режиме

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

  • Диапазон изменения физического адреса — от 0 до 1 Мбайт. Эта величина определяется тем, что шина адреса i8086 имела 20 линий.

  • Максимальный размер сегмента — 64 Кбайт. Это объясняется 16-разрядной архитектурой i8086. В регистры могут быть записаны значения от 0 до 216-1, что применительно к памяти и определяет размер сегмента 216байт=26210байт=64 Кбайт.

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

В сегментном регистре содержатся только старшие 16 битов физического адреса начала сегмента. Недостающие младшие четыре бита 20-разрядного адреса получаются сдвигом значения в сегментном регистре влево на 4 разряда. Эта операция сдвига выполняется аппаратно и для программного обеспечения абсолютно прозрачна. Получившееся 20-разрядное значение и является настоящим физическим адресом, соответствующим началу сегмента. Что касается второго компонента (смещения), участвующего в образовании физического адреса некоторого объекта в памяти, то он представляет собой 16-разрядное значение. Это значение может содержаться явно в команде либо косвенно в одном из регистров общего назначения. В процессоре эти две составляющие складываются на аппаратном уровне, в результате получается физический адрес памяти размерностью 20 бит (рис. 8).

Рис. 8. Механизм формирования физического адреса в реальном режиме.

Недостатки реального режима:

  • сегменты бесконтрольно размещаются с любого адреса кратного 16, и, как следствие, программа может обращаться по любым адресам, в том числе и реально несуществующим;

  • сегменты имеют максимальный размер 64 Кбайт;

  • сегменты могут перекрываться другими сегментами.

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

Формирование физического адреса в защищенном режиме

Защищенный режим впервые появился в процессоре Intel 80286. Основная идея защищенного режима — защитить исполняемые процессором программы от взаимного влияния. В защищенном режиме процессор поддерживает два типа защиты — по привилегиям и по доступу к памяти.

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

Ключевым объектом защищенного режима является специальная структура - 8-байтовый дескриптор сегмента, содержащий атрибуты. На рисунке 9 приведена структура дескриптора сегмента для 32-разрядных процессоров с 32-разрядной шиной адреса.

Рис. 9. Структура дескриптора сегмента защищенного режима процессора.

Назначение некоторых полей дескриптора сегмента:

limit_l (16 разрядов) и limit_2 (4 разряда) — 20-разрядное поле, определяющее размер сегмента;

base_l (16 разрядов), base_2 (8 разрядов) и base_3 (8 разрядов) — 32-разрядное поле, определяющее значение физического адреса начала сегмента в памяти;

AR — байт, поля которого определяют права доступа к сегменту;

G — бит гранулярности.

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

  • глобальная дескрипторная таблица (Global Descriptor Table, GDT), ее адрес хранится в регистре процессора GDTR;

  • локальная дескрипторная таблица (Local Descriptor Table, LDT), ее адрес хранится в регистре процессора LDTR.

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

Схема, показанная на рисунке 10, иллюстрируют принцип формирования физического адреса в защищенном режиме.

Рис. 10. Сегментированная модель памяти в защищенном режиме