Архитектура 16-битных микропроцессоров семейства Intel IA-32
Архитектура ЦП 80286: основные регистры, режимы работы, адресация памяти
Программная модель процессора 80286 включает 14 регистров ЦП 8086, пять новых регистров:
- GDTR - 40-разрядный регистр определяет размер и положение глобальной дескрипторной таблицы ;
- LDTR - 16-разрядный регистр определяет базовый адрес локальной дескрипторной таблицы ;
- IDTR - 40-разрядный регистр определяет начало и размер таблицы векторов прерываний;
- MSW - слово состояния программы (, если флаг PE = 1 в MSW, то процессор переключается в защищенный режим ).;
- TR - 16-разрядный регистр содержит селектор сегмента состояния задачи, используется для многозадачности,
и шесть программно недоступных регистров, связанных с CS, DS, ES, SS, GDTR, IDTR.
Режимы работы
С появлением Intel-286 впервые стали говорить о различных режимах работы IA-32. Это первый представитель данного семейства микропроцессоров, в котором были реализованы многозадачность и защищенная архитектура. Чтобы обеспечить совместимость с предыдущими представителями этого семейства (8086/88, 80186/188), в Intel-286 было реализовано два режима функционирования: режим реального адреса (режим эмуляции 8086) и защищенный режим, в котором используются все возможности МП. В последующих поколениях МП этого семейства защищенный режим становится основным режимом работы.
Формирование линейного адреса без участия селекторов
В режиме реального адреса используется упрощенная схема формирования линейного адреса.
В этом случае базовый адрес сегмента берется из сегментного регистра. Значение в сегментном регистре представляет собой биты 4-19 базового адреса сегмента. Из этого следует, что сегменты в этих режимах выровнены по 16-битной границе и все сегменты начинаются в пределах нижнего мегабайта линейного адресного пространства. Действительный физический адрес получается умножением на 16 базового адреса сегмента (рис. 2.2). Предел для всех сегментов одинаков. В режиме реального адреса предел сегмента - 64 Кбайт.
Формирование линейного адреса в защищенном режиме
Значения, помещаемые в сегментные регистры, называются селекторами. Селектор содержит индекс дескриптора, определяющий номер записи в дескрипторной таблице, бит TI, указывающий, к какой дескрипторной таблице производится обращение LDT (TI = 1) или GDT (TI = 0), а также запрашиваемые права доступа к сегменту - RPL (рис. 2.3.).
По указанному в селекторе номеру записи в соответствующей (бит TI селектора ) дескрипторной таблице определяется дескриптор сегмента.
Дескриптор - это 8-байтная единица описательной информации, распознаваемая устройством управления памятью в защищенном режиме, хранящаяся в дескрипторной таблице.
Дескриптор сегмента содержит базовый адрес описываемого сегмента, предел (размер) сегмента и права доступа к сегменту. В защищенном режиме сегменты могут начинаться с любого линейного адреса.
Для определения физического адреса базовый адрес сегмента суммируется со смещением.
Существуют две обязательных дескрипторных таблицы - глобальная (GDT) и дескрипторная таблица прерывания (IDT), - а также множество (до 8192) локальных дескрипторных таблиц (LDT), из которых в один момент времени процессору доступна только одна. Расположение дескрипторных таблиц определяется регистрами процессора GDTR, IDTR, LDTR.
Регистры GDTR и IDTR - содержат базовый адрес и предел дескрипторной таблицы.
Программно доступная часть регистра LDTR - 16 бит, которые являются селектором LDT. Дескрипторы LDT находятся в GDT. Однако, чтобы не обращаться каждый раз к GDT, в процессоре имеется теневая (программно недоступная) часть регистра LDTR, в которую процессор помещает дескриптор LDT при каждой перегрузке селектора в регистре LDTR.
Вопросы
- Какие устройства составляют системное ядро ПК?
- При инициализации ПК информация о проверке каких устройств выводится на экран дисплея?
- С какого процессора семейства х86 количественные изменения в архитектуре кристалла перешли в качественные?
- Какими регистрами дополнилась программная модель ЦП 80286?
- Что такое селектор? С чем связано его появление? Какова структура селектора?
- Как формируется линейный адрес в режиме реальных адресов и в режиме системного управления?
- Что такое дескриптор? Какова структура дескриптора?
- Как формируется линейный адрес в защищенном режиме?
- Что находится в регистрах GDTR, IDTR и LDTR?
- Каково содержимое регистра TR? Для чего он нужен?