Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорные системы.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
905.02 Кб
Скачать

Недостатки сегментной организации памяти режима реального адреса.

28.02.2013

  1. Небольшой размер сегмента - 64 килобайта.

  2. Отсутствие аппаратных средств контроля за правильным размещением сегментов. В общем случае могут частично либо полностью перекрываться.

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

  4. Наличие эффекта заворачивания адреса

Сегментная организация памяти в защищенном режиме.

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

63 47 0

ЛБА

G

D

X

U

Предел (4 б)

AR

ЛБА

31 15 0

ЛБА

предел

7 AR 0

P

DPL (2 б)

S

Тип (3 б)

А

ЛБА (2,3,4,7) – определяет линейный базовый адрес сегмента в 4-гб линейном пространстве.

20-битное поле ПРЕДЕЛА предназначено для хранения максимально возможного размера адреса смещения, что фактически определяет размер сегмента.

Если G = 0, то единица измерения 1 байт. Следовательно не больше 1 Мб. Если равен 1, то единица измерения – страница (4 Кб), соответственно 1 Мб*4Кб = 4Гб.

Бит D (размер по умолчанию) определяет совместимость с 16-разрядным процессором. При =0, операнды считаются имеющие 16 бит, при =1 – 32-разрядня адресация.

Х – резервный бит.

U – пользовательский бит.

AR – байт прав доступа.

Бит A – доступа. Устанавливается в 1 автоматически. При поддержке использования режима виртуальной памяти.

Поле ТИПА (3 бита) справа налево: 1 бит определяет, что находится в соответствующем сегменте (0 – данные, 1 - код);

  • для сегмента данных 2 бит – бит расширения вниз (0 – обычный сегмент данных, 1 – сегмент стека); 3 бит 0 – разрешает чтение-запись, 1 – только чтение (для сегмента стека 3 бит только 0, для данных и 0 и 1).

  • для кодового сегмент 2 бит называется битом подчиненности (0 – обычный кодовый, 1 – подчиненный (не имеет собственного уровня привилегий) кодовый сегмент); 3 бит 0 – чтение/исполнение соответствующего кода, 1 – только исполнение.

Бит системы S – предназначен для описания системного объекта, т.е. соответствующий дескриптор описывает системный объект.

Двухбайтное поле привилегии дескриптора DPL - определяет уровень привилегий дескриптора. С каждым сегментом ассоциируется уровень привилегий. Всего 4 уровня:

00 – 0

01 – 1

10 – 2

11 – 3

Наиболее привилегированным является 0 уровень, 3 – уровень пользовательских программ – наименее привилегированный.

Бит Р – бит присутствия. При =1, когда описываемый дескриптором сегмент находится в физической памяти. При выгрузке дескриптора в область файла подкачки, бит сбрасывается в 0. Если генерируется обращение к сегменту, который выгружен на диск, т.е. Р=0, то в этом случае генерируется исключение, в процессе обработки которого сегмент отыскивается и загружается в оперативную память. Нормальный механизм поддержки виртуальной памяти.

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

Команда les помещает базовый адрес источника s в соответствующий регистр es, а адрес смещения в указанный приемник, т.е. соответственно будут помещены не базовые адреса, а селекторы. Размер зависит от выбора адресации.

Mov d, offset s

Mov d, seg (сегментный адрес) s