Начальные сведения о защищенном режиме работы процессора.

10/25/94 04:46pm zr_vved.lek
А.В.Фролов, Г.В.Фролов "Защищенный режим процессоров Intel 80286/80386/80486. Практическое руководство по использованию защищенного режима" БСП том 6 М "Диалог-МИФИ" 1993
В.Б.Бродин, И.И.Шагурин "Микропоцессор i486. Архитектура, программирование, интерфейс" М "Диалог-МИФИ" 1993

Начальные сведения о защищенном режиме работы процессора.

Первоначально в персональных компьютерах фирмы IBM использовались микропроцессоры i8086 или i8088. Эти процессоры были 16-ти разрядными и могли адресовать 1Мбайт памяти, из которыэ ОЗУ занимало неболее 640Кбайт.

Совершенствование оборудования шло по двум направлениям: увеличение быстродействия и повышение помехоустойчивости (с программной точки зрения) вычислительной системы в целом.

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

  1. РЕАЛЬНЫЙ РЕЖИМ - процессор является полным аналогом i8086, но имеет большее быстродействие. В этот режим процессор переключается после аппаратного сброса;

  2. ЗАЩИЩЕННЫЙ РЕЖИМ - процессор использует иной метод адресации памяти, большее адресное пространство (i286 - 16Мбайт, i386 и i486 -4Гбайта), встроенную поддержку мультизадачных ОС и изолированные адресные пространства выполняемых задач. Переход в защищенный режим осуществляется специальной командой.

Помимо этого МП i386 и i486 реализованна концепция ВИРТУАЛЬНОЙ ПАМЯТИ. Она заключается в том, что не вся информация нужна в каждый конкретный момент.

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

Концепцию виртуальной памяти не следует путать с ВИРТУАЛЬНЫМ РЕЖИМОМ, также реализованном в МП i386 и i486. Этот режим используется в рамках защищенного режима для выполнения программ, подготовленных для i8086 и называется V86.

ПРИМЕЧАНИЕ При рассмотрении защищенного режима за основу взят микропроцессор i286. Представленная информация может с успехом применена на более поздних микропроцессорах. Все отличия будут оговорены отдельно.

Формирование физического адреса.

В вычислительных системах адрес выбираерой ячейки передается по группе проводов, образующих ШИНУ АДРЕСА. Информация передаваемая по ней однозначно определяет (дальнейшего преобразования не производится) требуемый регистр внешнего устройства и называется ФИЗИЧЕСКИМ АДРЕСОМ. Программы при работе оперируют с ЛОГИЧЕСКИМИ АДРЕСАМИ.

В РЕАЛЬНОМ РЕЖИМЕ логический адрес состоит из двух частей:

  1. Сегментного регистра - хранящего значение адреса с точностью до 16-ти байт (адрес границы параграфа);

  2. Регистра смещения - хранящего значение смещения требуемой ячейки от границы параграфа.

Физический адрес формируется путем сложения по модулю 2^20 частей логического адреса после предварительного преобразования:

В ЗАЩИЩЕННОМ РЕЖИМЕ логический адрес образуют две компаненты:

  1. Селектор - являющийся индексом в таблице, содержащей базовые физические адреса сегментов;

  2. Смещение - значение смещения от начала базового адреса.

Физический адрес получается путем сложения базового адреса, извлеченного при помощи значения селектора из таблицы, и смещения:

Значение селектора берется из сегментного регистра, но рассматривается оно не как в реальном режиме. Как индекс (Index) в таблице используется только старшая часть, три младших бита имеют специальное назначение:

Дескриптор с нулевым индексом называется НУЛЕВЫМ ИНДИКАТОРОМ при работе не используется, а обращение к нему вызывает прерывание.

Таблица базовых адресов (ТАБЛИЦА ДЕСКРИПТОРОВ) может быть ЛОКАЛЬНОЙ (Local Descriptor Table) - кодируется TI=1 и ГЛОБАЛЬНОЙ (Global Descriptor Table) TI=0. Таблица дескрипторов помимо базового физического адреса содержит информацию, описывающую адресуемый сегмент. Глобальная таблица используется операционной системой и она должна существовать в одном варианте, а локальная создается для каждой прикладной программы отдельно. Таблица может иметь размер от 8 байт до 64 Кбайт и содержать до 8192 дескрипторов.

Кроме локальной и глобальной таблиц существует отдельная таблица для дескрипторов прерываний (Interrupt Descriptor Table).

Процессор имеет специальные регистры (GDTR, LDTR и IDTR) для хранения ссылок на соответствующие таблицы и их размер (сами таблицы располагаются в ОП машины). Загрузить регистры можно командами LGDT, LLDT и LIDT, а выгрузить командами SGDT, SLDT и SIDT.


Stay-at-home