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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 89 90 91 92 93 94 < 95 > 96 97 98 99 100 101 .. 528 >> Следующая

реализуется исключение типа #GP.
Бит направления расширения Е определяет размещение сегмента данных
относительно заданной границы сегмента. При Е = 0 (расширение вверх)
данные в сегменте размещаются от базового адреса ВА, задающего нижний
предел сегмента до верхнего предела, определяемого суммой базового адреса
и границы сегмента: (BA+L). Таким образом, сегмент размещается вниз от
границы - в направлении уменьшения адресов до базового.
При Е = 1 (расширение вниз) данные располагаются, начиная с адреса
(BA+L+1), определяющего нижний предел сегмента. Остальные ячейки
размещаются в направлении возрастания адресов (вниз от границы) до
верхнего предела, задаваемого адресом (ВА+М). Верхний предел сегмента в
этом случае равен базовому адресу, увеличенному на М = FFFFh (размер
сегмента до 64 Кбайт) или на М = FFFFFFFFh (размер сегмента до 4 Гбайт) в
зависимости от значения бита разрядности D/В в байте 6 дескриптора (см.
рис. 2.42). Размер сегмента будет равен (М-L), и его максимальное
значение достигается, когда заданная граница L = 0. Отметим, что для
сегментов с расширением вниз значения битов дробности и разрядности
должны быть равными: G = D/B.
Таким образом, при расширении вверх (бит Е = 0) относительный адрес
выбираемой ячейки должен быть меньше или равен границе сегмента, при
расширении вниз (бит Е = 1) относительный адрес должен быть больше
границы сегмента.
Формат байта доступа для системных дескрипторов (S = 0) приведен на рис.
2.43, в. Поле TYPE определяет тип системного дескриптора в соответствии с
табл. 2.58. Можно выделить три основных класса системных дескрипторов.
Таблица 2.58
Типы системных дескрипторов
i'F
ог
•'V т - и

TYPE Тип системного дескриптора
0000 Резервировано
0001 TSS, 16-разр. (доступен)
0010 LTD
0011 TSS, 16-разр. (занят)
0100 Шлюз вызова подпрограммы, 16-разр.
0101 Шлюз вызова задачи
0110 Шлюз вызова прерываний, 16-разр.
0111 Шлюз вызова ловушки, 16-разр.
1000 Резервировано
1001 TSS, 32-разр. (доступен)
1010 Резервировано
1011 TSS, 32-разр. (занят)
1100 Шлюз вызова подпрограммы, 32-разр.
1101 Резервировано
1110 Шлюз вызова прерываний, 32-разр.
1111 Шлюз вызова ловушки, 32-разр.
РАБОТА ПРОЦЕССОРА В ЗАЩИЩЕННОМ И РЕАЛЬНОМ РЕЖИМАХ
Дескрипторы таблиц LDTобеспечивают обращение к локальной таблице
дескрипторов для выбора сегментов, используемых при выполнении текущей
программы.
Дескрипторы сегментов TSS используются при переключении задач в
многозадачном режиме. При этом бит 3 поля TYPE байта доступа указывает,
решается ли вызываемая задача с использованием 16- или 32-разрядных
адресов и данных. Бит В в байте доступа сегмента TSS называется битом
занятости и указывает, является ли вызываемый сегмент занятым
(соответствующая задача находится в процессе выполнения) или доступным
(задача еще не поступила на выполнение). Переключение на занятую задачу
вызывает исключение типа #GP ("нарушение защиты"). Отметим, что
дескрипторы LDT и TSS всегда должны иметь значение бита разрядности D/В =
0 (см. рис. 2.42).
Дескрипторы шлюзов используются для реализации специальных правил доступа
при обращении к программам и задачам, а также при обработке прерываний и
ловушек.
Дескрипторы сегментов, использующих 16-разрядные адреса и операнды при
размере сегментов до 1 Мбайт (значения битов G = D/В = 0), имеют нулевые
значения байтов 5 и 6 дескриптора (см. рис. 2.42). Такие дескрипторы
использовались в 16-разрядных микропро-цесорах 80286. Остальные биты и
поля дескрипторов для процессоров 80286 полностью соответствуют форматам,
приведенным на рис. 2.42, 2.43. Поэтому процессоры семейства Р6, как и
более ранние модели, обеспечивают полную программную совместимость с 16-
разрядным микропроцессором 80286, выполняя сегменты команд (программы),
написанные для 80286, без какой-либо модификации. Отличие состоит только
в разрядности базового адреса, которая для 80286 равна 24 битам (ВА23-0 в
байтах 2,3,4 дескриптора), и границе сегмента, которая не должна
превышать 64 Кбайт (L15-0 в байтах 0,1 дескриптора). Дробность и
разрядность для этих сегментов устанавливается байтами G, D/B
дескриптора, которые имеют нулевое значение.
Если системные дескрипторы имеют нулевые значения старших байтов 6,7
дескриптора (дескрипторы, аналогичные используемым для процессора 80286),
то старший бит в поле TYPE байта доступа (см. рис. 2.43, в) всегда должен
иметь нулевое значение. При этом допускается использование только тех
типов системных дескрипторов, которые указаны в восьми верхних строках
табл. 2.58.
2.7.2. СТРАНИЧНАЯ ОРГАНИЗАЦИЯ ПАМЯТИ
Страничная организация памяти реализуется процессором только в защищенном
режиме, если в регистре управления CR3 установлено значение бита PG = 1.
Размер страниц может составлять 4 Кбайт или 4 Мбайт при использовании 32-
разрядных адресов и 4 Кбайт или 2 Мбайт при использовании расширенных 36-
разрядных адресов. В отличие от сегментов, которые могут иметь различные
Предыдущая << 1 .. 89 90 91 92 93 94 < 95 > 96 97 98 99 100 101 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed