Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 151

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 145 146 147 148 149 150 < 151 > 152 153 154 155 156 157 .. 528 >> Следующая

пространстве. Процессор объединяет три фрагмента поля База из формата
дескриптора для образования единого адреса.
Дескрипторы, используемые для кодовых сегментов прикладных программ и
сегментов данных 31 23 15 70
База 31-24 G X 0 AVL Предел 19-16 Р DPL 1 Тип
А База 23-16
База сегмента 15-0 Предел сегмента 15-0

Дескрипторы, используемые для специальных системных сегментов
31 23 15 7 0
База 31-24 G X 0 AVL Предел 19-16 Р DPL 0 Тип
А База 23-16
База сегмента 15-0 Предел
сегмента 15-0
Рис. 3.14. Общий формат дескриптора сегмента (A-доступность; AVL-пригоден
для использования прикладными программами; DPL-уровень привилегий
дескриптора; G-дробность; Р-присутствие сегмента)
258
ФУНКЦИОНИРОВАНИЕ ПАМЯТИ
31 15 7 0
Пригодны 0 I DPL S I Тип Пригодны
Пригодны
Рис. 3.15. Формат неприсутствующего дескриптора
Предел: задает размер сегмента. В результате объединения процессором двух
частей поля предела дескриптора получается 20-разрядное значение.
Процессор интерпретирует поле предела двояко, в зависимости от состояния
разряда дробности G:
• в байтах, для задания границы до 1 Мбайта;
• в 4-Кбайтных единицах для задания предела до 4 Гбайт. При загрузке
предел сдвигается влево на 12 разрядов, и младшие 12 разрядов
устанавливаются в "1".
Разряд дробности (G): указывает единицы, в которых интерпретируется
предел. Когда разряд нулевой (G = 0), предел интерпретируется в байтах,
когда установлен (G = 1) - предел интерпретируется в единицах по 4
Кбайта.
Тип: устанавливает различия между разными видами дескрипторов.
DPL (уровень привилегий дескриптора): используется механизмом защиты.
Разряд присутствия сегмента (Р): если этот разряд нулевой, дескриптор не
пригоден для преобразования адресов; процессор вырабатывает исключение в
то время, когда селектор для этого дескриптора загружается в сегментный
регистр. На рис. 3.15. приведен формат дескриптора для случая нулевого
значения разряда присутствия. Операционная система может использовать
поля, помеченные как "пригодны". Операционная система, которая использует
идею сегментированной виртуальной памяти, устанавливает разряд Р в "0" в
одном из двух случаев:
• когда линейное адресное пространство, занимаемое сегментом, не
преобразуется механизмом страничной организации;
• когда сегмента нет в основной памяти.
Разряд доступа (А): процессор устанавливает этот разряд тогда, когда
осуществляется обращение к сегменту, т. е. когда селектор для этого
дескриптора загружается в сегментный регистр или когда селектор этого
дескриптора используется командой проверки селектора. Операционная
система, которая использует виртуальную память на уровне сегментов,
может, периодически проверяя и очищая этот разряд, контролировать частоту
использования сегмента. Создание и сопровождение дескрипторов входит в
компетенцию системного ПО и обычно осуществляется по запросам
компиляторов, загрузчиков, компоновщиков и систем управления процессами.
Таблицы дескрипторов. Дескрипторы сегментов хранятся в таблицах двух
видов:
1) глобальной таблице дескрипторов (GDT);
2) локальной таблице дескрипторов (LDT).
Таблица дескрипторов - это просто массив из 8 байтовых записей, которые
содержат дескрипторы, как показано на рис. 3.16. Таблица дескрипторов
имеет переменную длину и может содержать до 8192 (213) дескрипторов.
Однако первая запись GDT (ИНДЕКС = 0) не используется для размещения
дескриптора.
Процессор размещает GDT и текущую LDT в памяти посредством регистров GDTR
и LDTR. Эти регистры хранят базовые адреса таблиц в линейном адресном
пространстве, а также пределы сегментов таблиц. Команды LGDT и SGDT
обеспечивают доступ к регистру GDTR, команды же LLDT и SLDT-доступ к
LDTR.
259
ИСПОЛЬЗОВАНИЕ КЭШ-ПАМЯТИ И ОРГАНИЗАЦИЯ ОСНОВНОЙ ПАМЯТИ
Селекторы. Область селектора из логического адреса задает дескриптор,
специфицируя таблицу дескрипторов и индексируя дескриптор внутри этой
таблицы. Селекторы могут быть "видны" прикладным программам как поле
внутри изменяющихся указателей команд, но значения селекторов обычно
вырабатываются редакторами связей и загрузчиками. На рис. 3.17.
представлен формат селектора.
Индекс, задает один из 8192 дескрипторов в таблице дескрипторов.
Процессор просто умножает значение индекса на 8 (длина дескриптора) и
прибавляет этот результат к базовому адресу таблицы дескрипторов для
доступа к соответствующему дескриптору сегмента в таблице.
Индикатор таблицы (TI): определяет, на какую таблицу дескрипторов
ссылается селектор: нуль указывает GDT, единица -текущую LDT. а
Запрашиваемый уровень привилегий: используется механизмом защиты. '
Так как первая запись GDT не используется процессором, селектор с
индексом "О" и нулевым указателем таблицы (т. е. селектор, который
определяет первую запись GDT), может быть использован как нуль-селектор.
При загрузке сегментного регистра (кроме CS или SS) нуль-селектором
процессор не вырабатывает исключения. Это свойство полезно при
Предыдущая << 1 .. 145 146 147 148 149 150 < 151 > 152 153 154 155 156 157 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed