Архитектура ЭВМ и систем. Коваль А.С - 75 стр.

UptoLike

Составители: 

75
Virtual-8086 Mode (VM, 17 бит) – Включает/выключает режим V86 в
защищенном режиме.
Resume Flag (RF, 16 бит) – Флаг возобновления исполнения при отлад-
ке.
Nested Task (NT, 14 бит) – Флаг вложенной задачи. Устанавливается,
когда текущая задача связана с прерванной задачей, очищается, если
такой связи нет.
I/O Privilege Level (IOPL, 12-13 биты) – определяет уровень привилегий
ввода/вывода для текущей задачи.
Сегментные регистры CS, SS, DS, ES, как и
в процессорах 8086/8088,
имеют разрядность 16 бит. К ним добавлены регистры FS и GS – дополни-
тельные сегментные регистры данных.
В реальном режиме, в котором процессор находится сразу после вклю-
чения питания или сброса, сегментные регистры определяют 64Кб сегмен-
ты, как и в 16-разрядных процессорах, а в защищенном режиме содержат
указатели (т.н. селекторы) на
описатели сегментов (64-разрядные дескрип-
торы), находящиеся в памяти в виде таблиц.
Дескриптор, помимо базового адреса, содержит предельный размер
сегмента и атрибуты сегмента (права доступа). Дескрипторы являются ос-
новой защиты и мультизадачности. В защищенном режиме сегменты могут
начинаться с любого линейного адреса и иметь любой предел вплоть до
4Гбайт. Существуют две
обязательные дескрипторные таблицы - глобаль-
ная (GDT) и дескрипторная таблица прерывания (IDT), а также множество
(до 8192) локальных дескрипторных таблиц (LDT), из которых в один мо-
мент времени процессору доступна только одна. Дескрипторы сегментов
могут находиться в GDT или LDT. Расположение дескрипторных таблиц
определяется регистрами процессора GDTR (Global Descriptor Table Regis-
ter), IDTR (Interrupt Descriptor Table Register), LDTR (Local Descriptor Table
Register). Регистры GDTR и IDTR - 6-байтные, они содержат 32 бита ли-
нейного базового адреса
дескрипторной таблицы и 16 бит предела табли-
цы. Программно доступная часть регистра LDTR - 16 бит, которые явля-
ются селектором LDT. Дескрипторы LDT находятся в GDT. Однако чтобы
не обращаться каждый раз к GDT, в процессоре имеется теневая (про-
граммно недоступная) часть регистра LDTR, в которую процессор поме-
щает дескриптор LDT при каждой перегрузке селектора в регистре LDTR.
Значение сегментного регистра (
селектор) содержит индекс дескрипто-
ра в дескрипторной таблице; бит, определяющий, к какой дескрипторной
таблице производится обращение (LDT или GDT); а также запрашиваемые
права доступа к сегменту. Таким образом, селектор выбирает дескриптор-
ную таблицу, выбирает дескриптор из таблицы, а по дескриптору опреде-
ляется положение сегмента в линейном пространстве памяти. Однако об-
ращение к дескрипторным
таблицам происходит только при загрузке се-
лектора в сегментный регистр. При этом процессор помещает дескриптор в
                                     75
• Virtual-8086 Mode (VM, 17 бит) – Включает/выключает режим V86 в
  защищенном режиме.
• Resume Flag (RF, 16 бит) – Флаг возобновления исполнения при отлад-
  ке.
• Nested Task (NT, 14 бит) – Флаг вложенной задачи. Устанавливается,
  когда текущая задача связана с прерванной задачей, очищается, если
  такой связи нет.
• I/O Privilege Level (IOPL, 12-13 биты) – определяет уровень привилегий
  ввода/вывода для текущей задачи.
   Сегментные регистры CS, SS, DS, ES, как и в процессорах 8086/8088,
имеют разрядность 16 бит. К ним добавлены регистры FS и GS – дополни-
тельные сегментные регистры данных.
   В реальном режиме, в котором процессор находится сразу после вклю-
чения питания или сброса, сегментные регистры определяют 64Кб сегмен-
ты, как и в 16-разрядных процессорах, а в защищенном режиме содержат
указатели (т.н. селекторы) на описатели сегментов (64-разрядные дескрип-
торы), находящиеся в памяти в виде таблиц.
   Дескриптор, помимо базового адреса, содержит предельный размер
сегмента и атрибуты сегмента (права доступа). Дескрипторы являются ос-
новой защиты и мультизадачности. В защищенном режиме сегменты могут
начинаться с любого линейного адреса и иметь любой предел вплоть до
4Гбайт. Существуют две обязательные дескрипторные таблицы - глобаль-
ная (GDT) и дескрипторная таблица прерывания (IDT), а также множество
(до 8192) локальных дескрипторных таблиц (LDT), из которых в один мо-
мент времени процессору доступна только одна. Дескрипторы сегментов
могут находиться в GDT или LDT. Расположение дескрипторных таблиц
определяется регистрами процессора GDTR (Global Descriptor Table Regis-
ter), IDTR (Interrupt Descriptor Table Register), LDTR (Local Descriptor Table
Register). Регистры GDTR и IDTR - 6-байтные, они содержат 32 бита ли-
нейного базового адреса дескрипторной таблицы и 16 бит предела табли-
цы. Программно доступная часть регистра LDTR - 16 бит, которые явля-
ются селектором LDT. Дескрипторы LDT находятся в GDT. Однако чтобы
не обращаться каждый раз к GDT, в процессоре имеется теневая (про-
граммно недоступная) часть регистра LDTR, в которую процессор поме-
щает дескриптор LDT при каждой перегрузке селектора в регистре LDTR.
   Значение сегментного регистра (селектор) содержит индекс дескрипто-
ра в дескрипторной таблице; бит, определяющий, к какой дескрипторной
таблице производится обращение (LDT или GDT); а также запрашиваемые
права доступа к сегменту. Таким образом, селектор выбирает дескриптор-
ную таблицу, выбирает дескриптор из таблицы, а по дескриптору опреде-
ляется положение сегмента в линейном пространстве памяти. Однако об-
ращение к дескрипторным таблицам происходит только при загрузке се-
лектора в сегментный регистр. При этом процессор помещает дескриптор в