Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к экзамену,3 лабы(4 вар) / Ответы Гуров 2011 (1).doc
Скачиваний:
71
Добавлен:
10.05.2014
Размер:
1.01 Mб
Скачать

Формирование линейного адреса

В защищённом режимесегментные регистры содержат селекторы, которыеуказывают на дескриптор данного сегмента. Дескрипторы хранятся в специальных таблицах: GDT (доступны всем задачам) иLDT(доступен только данной задачи)

Формат селектора

INDEX– номер дескриптора в соответствующей таблице дескрипторов (максимум 213дескриптора)

RPL– уровень привилегий запроса, который при обращении сравнивается с уровнем привилегий дескриптора DPL, к которому происходит обращение.

МП на аппаратном уровне различает 4 уровня привилегий.

Формат дескриптора

G– определяет, в каких единицах измеряется длинна сегмента

D– размерность операндов и адресов по умолчанию

X– может использовать ОС

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

Поле DPL– показывает, командам с каким уровнем привилегий можно обращаться к данному сегменту.

Поле P– бит присутствия.P=0Сегмент отсутствует в ОП, при этом остальные поля дескриптора игнорируются.

Поле A– бит обращения. Устанавливается в 1 при любом обращении к данному сегменту.

Тип:

  • Сегмент кода;

  • Сегмент данных (данные + стек);

  • Системные объекты (Дескриптор локальной таблицы дескрипторов (LDT); сегмент состояния задач)

Обращение к глобальной таблице дескрипторов

Чтобы найти i дескриптор надо знать:

  • Начало таблицы

  • Смещение

При последующем обращении к тому же сегментному регистру, обращение идёт через регистровую память в МП. Таблицы GDTиIDTдолжны быть определены при начале работы.

В Глобальной таблице дескрипторов, дескриптор 0 не определён, обращение к 0 адресу вызывает прерывание. Если таблицы не определены, то происходит обращение к 0 дескриптору. Если смещение больше предела, то выходим за границу таблицы.

Обращение к локальной таблице дескрипторов

Если селектор TI=1 => дескриптор находится в локальной таблице регистров.

Регистр LDTR(16 разрядов) – обычный селектор (INDEX=0)

2– находим начало Локальной таблицы дескрипторов.

Если смещение больше предела, то выходим за границы таблицы.

В GDT дескриптор 0не определен. Обращение по нулевому адресу вызывает прерывание.

При переводе микропроцессора в защищенный режим должны быть 2 таблицы: GDTиIDT.

Два обращения к ОП => для последующих обращений к этому же сегменту, обращение идёт к теневым регистрам.

Основой сегментного преобразования является логический адрес, состоящий:

  • селектор сегмента, находящегося в сегментном регистре;

  • смещение в сегменте.

По селектору находим дескриптор сегмента в GDTилиLDT. Базовый адрес сегмента извлекаемый из его дескриптора складывается со смещением, в результате получаемлинейный адрес.

Если страничный механизм выключен(PGCR0=0), тофизическийадрес, выдаваемый на адресные шины,равен линейному.

Если страничный механизм включен(PGCR0=1), то происходиттрансляция линейного адреса в физическийблоком страничной адресации MMU (блок управления памятью)

Кэширование дескрипторов.

Кэширование осуществляется с использованием теневых регистров внутри МП. Необходимо для уменьшения числа обращений к ОП за дескриптором. В случае сегментно-страничного преобразования используется TLB.

  1. Структура расширенного кода командыx86. Вычисление смещения

Постбайт– используется для указания режима адресации операторов. По крайней мере, один из операндов должен находиться в РОН (№ которого кодируется в полеREG(3 порядка)). Режим адресации другого операнда задаётся полями:MD=2разряда,R/M– 3 разряда.

Если R/M= 100, то это означает что за постбайтом следуетSIB байт.

D– разрядность операндов. Чтобы работал режим (8-16) используемOperandSIZE (8-16 или 8-32)

Формат sib-байта:

При использованииSib-байта смещение находится в сегменте и вычисляется:

, ({}-необязательные поля). При использовании всех трех полей получаем относительную базово-индексную адресацию.

Особенность расширенного кода команды

  1. Возможность использования любого из РОН, для формирования адреса (для 16 разрядов использовались: для INDEX = регистр SI DI, Base = BX BP).

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

  1. Виртуальная память. Страничное ЛАП. Структура линейного адреса в страничном ЛАП. Назначение каталога таблиц страниц и таблиц страниц.

Страничное преобразование адреса

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

Виртуальн адрес

Каждая стр обрабат 2 машинных такта (в Intel). 1 стр имеет объем – 4 Кбайта(2^12 байт).

Стратегии преобразования адреса

Недостатки одноэтапного преобразования адреса:

Необходимо постоянно хранить в ОП таблицу преобразований для каждой из задач.

Рассмотрим на примере страницу объемом 4 кб, тогда виртуальный адрес

Для каждой программы требуется таблица объёмом 220строк по 4 байта в каждой (4 Мб). И эти таблицы должны быть постоянно в ОП.

Двухэтапное_преобразование

Достоинства:

КТС постоянно находится в ОП, табл стр могут вытесняться во внешн пам и загружаться из неё, т.е. в ОП должно обязательно храниться 4кб КТС и 4кб активной стр, что экономит ОЗУ, но при этом каждое страничн преобразов требует двух дополн обращений к ОП. Для сокращен врем страничн преобразов используется буфер ассоциативной трансляции страничного адреса (TLB)

  1. Трансляция линейного адреса в физический при страничной организации памяти. Структура элемента каталога таблиц страниц и элемента таблицы страниц. Буфер ассоциативной трансляции: назначение, структура, механизм замещения.