Режимы работы процессоров семейства Х86

Страницы работы

Содержание работы

IX. РЕЖИМЫ   РАБОТЫ  ПРОЦЕССОРОВ  СЕМЕЙСТВА Х86

                                   1. Общие сведения

Современные процессоры семейства Х86 могут быть использованы в трех  рабочих режимах функционирования:

1)  реальном – R-режиме (RealMode - RM), или режиме R86;

2)  виртуальном – V-режиме (VirtualMode - VM), или режиме V86;

3)  защищенном – P-режиме (Protected Mode - PM).

Кроме того, в них предусмотрен также  дополнительный, специальный режим системного управления - SMM (SystemManagementMode).

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

·  Аппаратно поддерживаемый многозадачный режим функционирования.

·  Введение виртуальной памяти (до 64 терабайт).

·  Страничная организация памяти, позволяющая более эффективно использовать адресное пространство.

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

Основной смысл введения реального и виртуального режима работы заключается в реализации преемственности всех процессоров семейства Х86 с базовым процессором этого семейства – МП 8086, для которого было разработано, в свое время, большое количество программного обеспечения.

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

Непосредственно после включения напряжения питания процессора, или же активного сигнала, поданного на вход процессора RESET, осуществляется аппаратный сброс процессора (hardware reset), в результате которого процессор сначала переходитв так называемый вспомогательный режим начальной фазы. В процессе реализации этого режима начальной фазы, процессор, прежде всего, считывает конфигурационную информацию с некоторых входных линий и определяет конфигурацию компьютера: объем основной памяти, состав устройств ввода/вывода, состав внешней памяти. Затем, распределяет системные ресурсы (память, порты ввода/вывода, входы запросов прерывания, входы прямого доступа к памяти), тестирует большую часть оборудования процессора и памяти, устанавливает начальные состояние целого ряда регистров, производит еще целый ряд вспомогательных операций и только после этого автоматически переходит в реальный режим работы.

2. Реальный режим (R86)

Таким образом, первым рабочим режимом, после вспомогательного, в который устанавливается процессор после включения питания, или перезагрузки по входу RESET, является реальный режим (R - режим, или режим RM).   После этого, архитектура любого процессора этого семейства по умолчанию, становится практически идентичной  архитектуре процессора 8086. Поэтому, для пользователя все процессоры семейства Х86 более поздних моделей, в реальном режиме представляются просто как более быстродействующие процессоры 8086 с некоторыми особенностями, к которым относятся следующие.

1.  Возможность использования 32-разрядных адресов и операндов, используя соответствующие префиксы размеров адресов и операндов. Правда, при этом следует учитывать, что  при использовании 32-разрядных адресов, адресация не должна выходить за рамки сегмента 64 Кбайт, предусмотренные в МП 8086, или же за границы адресного пространства 1 Мбайт + 64 Кбайт, при формировании физического адреса. В ином случае, процессор уходит на прерывание (реализуется прерывание тип 13).

2.  Возможность использования несколько расширенной системы команд.

3.  Возможность использования дополнительных регистров GS и FS, а также системных регистров управления, отладки, проверки, и регистров математического сопроцессора.

Следует также отметить, что при инициализации реального режима процессора, уровень привилегий CPL всех сегментов автоматически устанавливается равным  0.

Если же появляется необходимость осуществить переход в реальный режим работы процессора, работающего в защищенном режиме (P – режиме), то он осуществляется командой MOV, загружающей в управляющий регистр CR0 слово, в котором значение нулевого бита (бита PE – Protection Enable) равно 0.

При этом, предварительно, необходимо отключить механизм страничного преобразования адресов, перейдя к использованию линейных адресов в качестве физических. Для этого следует в регистр CR0 занести слово, в котором 31- й бит (бит PG – Paging Enable), был бы равен 0. Кроме того, необходимо для всех сегментов установить размер, равный 64 Кбайт и выполнить ряд других операций.

После  сброса бита PE в регистре CR0, следует перейти на программу, выполняемую в реальном режиме, с помощью команды межсегментного перехода JMP, очищающей очередь команд.

Второй вариант перевода процессора из защищенного режима в реальный – сброс процессора по входу RESET.

3. Защищенный режим (P – режим)

Для переключения в P – режим необходимо, прежде всего, создать минимальный набор системных структур данных. Создать дескрипторные таблицы, определить минимум потребующихся сегментов кода, данных и стека и т.д. Для этого необходимо: в регистр  GDTR командой LGDT загрузить базовый адрес и предел  таблицы GDT; в регистр IDTR с помощью команды LIDT загрузить базовый адрес и предел таблицы IDT; при необходимости организации многозадачного режима функционирования – инициализировать и регистр задачи TR. Если задачи достаточно объемны, целесообразно создать локальные дескрипторные таблицы LDT.

Сам переход в защищенный режим осуществляется путем установки в единичное состояние бита PE в регистре управления CR0. Это можно сделать либо командой MOV CR0, либо командой LMSW. (Напомним, что регистр слова состояния машины MSW является младшей половиной регистра CR0).

Для очистки очереди команд, начинать работу в защищенном режиме надо  также с команды межсегментного перехода. 

   4. Виртуальный режим (V86)

При виртуальном режиме происходит эмуляция (моделирование) функционирования процессора 8086 в операционной среде основного процессора i386+, работающего в многозадачном режиме, как одной из его возможных задач. При этом обеспечивается ряд средств защиты и возможность страничной организации  памяти. Поэтому, часто говорят, что в режиме V86 микропроцессор работает как виртуальный процессор 8086, состоящий из аппаратных средств основного процессора i386+, системного программного обеспечения, представляющего собой специальную программу – монитор V86 в среде основной ОС и прикладного программного обеспечения, разработанного для 8086. Сам же монитор V- режима (V86) представляет собой программу Р - режима, которая выполняется на уровне привилегий 0.

Таким образом, задача в виртуальном режиме имеет сложную структуру: обычная пользовательская программа 8086, вложена в программу-монитор V86, которая, в свою очередь, является задачей защищенного режима базового процессора i386+, выполняемой на уровне привилегий 0. Но программа-монитор V86 может, например, эмулировать средства MS-DOS. В этом случае структура задачи получается еще более сложной: обычная задача 8086 вкладывается в MS-DOS, а сама MS-DOS – в монитор V86.

Все задачи виртуального режима V86 выполняются на уровне привилегий 3 (CPL = 3). Этим виртуальный режим отличается от реального режима работы, при котором всем программам представляется наиболее привилегированный уровень CPL = 0. Поскольку в виртуальном режиме, как и в реальном дескрипторы не используются, то в нем определены только некоторые способы защиты, а именно:

·  При использовании страничной организации памяти, в случае нарушения правил доступа к странице, реализуется прерывание типа 14 (отказ страницы).

·  При появлении привилегированных команд, которые выполняются в защищенном режиме только при CPL = 0 (команды LIDT, LGDT, LMSW, CLTS, HLT, а также команда MOV при обращении к регистрам управления, тестирования и отладки),  возникает прерывание типа 13 (нарушение защиты).

Похожие материалы

Информация о работе