В каком процессоре впервые появился защищенный режим
В процессоре i286 было реализовано два режима работы — защищённый режим и реальный режим. В защищённом режиме процессор мог адресовать до 1 Гбайт виртуальной памяти (при этом объем реальной памяти составлял не более 16 Мбайт), за счёт изменения механизма адресации памяти. Переключение из реального режима в защищённый происходит программно и относительно просто, однако для обратного перехода необходим аппаратный сброс процессора. Для отслеживания текущего режима работы процессора используется регистр слово состояния машины (MSW). Программы реального режима без модификаций в защищённом режиме исполняться не могут, так же как и программы BIOS машины.
Суть защищённого режима заключается в следующем. Программист и разрабатываемые им программы используют логическое адресное пространство (виртуальное адресное пространство), размер которого может составлять 1024 Мбайт (для 80286). Логический адрес преобразуется в физический адрес автоматически с помощью схемы управления памятью (MMU). Благодаря защищённому режиму, в памяти можно хранить только ту часть программы, которая необходима в данный момент, а остальная часть могла храниться во внешней памяти (например, на жёстком диске). В случае обращения к той части программы, которой нет в памяти в данный момент, операционная система может приостановить программу, загрузить требуемую секцию кода из внешней памяти и возобновить выполнение программы. Следовательно, становятся допустимыми программы, размер которых больше объема имеющейся памяти. Другими словами, пользователю кажется, что он работает с большей памятью, чем на самом деле. Однако реализация системы виртуальной памяти была еще далека от совершенства. Для использования защищённого режима необходима многозадачная операционная система, например Microsoft Windows 3.0, IBM OS/2 или UNIX.
Физический адрес формируется следующим образом. В сегментных регистрах хранится селектор, содержащий индекс дескриптора в таблице дескрипторов (13 бит), 1 бит, определяющий к какой таблице дескрипторов будет производиться обращение (к локальной или к глобальной) и 2 бита запрашиваемого уровня привилегий. Далее происходит обращение к соответствующей таблице дескрипторов и соответствующему дескриптору, который содержал начальный, 24-битный, адрес сегмента, размер сегмента и права доступа. После чего вычислялся необходимый физический адрес, путём сложения адреса сегмента со смещением, хранящемся в 16-разрядном указательном регистре.
Особенности процессоров 80386-80486
С появлением 32-разрядных процессоров 80386 фирмы Intel процессоры могут работать в трех режимах: реальном, защищённом и виртуального процессора 8086.
В защищённом режиме используются полные возможности 32-разрядного процессора — обеспечивается непосредственный доступ к 4 Гбайт физического адресного пространства и многозадачный режим с параллельным выполнением нескольких программ (процессов). Собственно говоря, многозадачный режим организует многозадачная операционная система, однако микропроцессор предоставляет необходимый для этого режима мощный и надежный механизм защиты задач друг от друга с помощью четырехуровневой системы привилегий. Так же в этом режиме доступна страничная организация памяти, повышающая уровень защиты задач друг от друга и эффективность их выполнения.
В процессоре i386 компания Intel учла необходимость лучшей поддержки реального режима, потому что программное обеспечение времени его появления не было готово полностью работать в защищённом режиме. Поэтому, например, в i386, возможно переключение из защищённого режима обратно в реальный (при разработке 80286 считалось, что это не потребуется, поэтому на компьютерах с процессором 80286 возврат в реальный режим осуществляется схемно — через сброс процессора).
При включении микропроцессора в нем автоматически устанавливается режим реального адреса. Переход в защищённый режим осуществляется программно путем выполнения соответствующей последовательности команд. Программы, предназначенные для защищённого режима, должны быть написаны особым образом. Это означает, что реальный и защищённый режим не совместимы.
Описание презентации по отдельным слайдам:
Режимы работы процессора
Для архитектуры IA-32 определены следующие режимы работы
процессора:
Real mode (реальный режим) – это режим реальных адресов памяти.
В нем начинается работа процессора при включении.
Protected mode (защищенный режим) – это основной режим
работы в многозадачной среде с организацией защиты по
уровням привилегий и доступу к памяти
Virtual 8086 mode (режим виртуального процессора 8086) – это
режим для организации многозадачной работы программ для
защищенного режима совместно с программами для реального
режима
System management mode (SMM, режим системного управления) –
это режим для выполнения машинно-зависимых функций и/или
действий по защите системы
Логическая организация памяти
При описании логической организации памяти в архитектуре IA-32
рассматриваются следующие разновидности:
CMA - Conventional Memory Area (основная память,
стандартная память) – 0 – 640 kВ
UMA – Upper Memory Area (верхняя память) – 640 kB – 1MB
2.1. Video RAM Memory (видеопамять) – 640 kB – 768 kB
2.2. ПЗУ адаптеров и ОЗУ специального назначения –
768 kB – 896 kB
2.3. Read Only Memory Basic Input-Output System (ROM BIOS)
ПЗУ загрузки и ввода-вывода - 896kB – 1MB
2.3.1. Расширения BIOS – 896 kB – 960 kB
2.3.2. Основная BIOS – 960 kB – 1024 kB
HMA – High Memory Area (область верхних адресов,
высокая память, драйвер HYMEM.SYS) – 1024 kB – 1088 kB
XMS – eXtended Memory Specification (дополнительная память,
драйвер HYMEM.SYS) – 1 MB – U-1 B *
EMS – Expanded Memory Specification (расширенная память,
отображаемая память, драйвер EMM386.EXE) –
1 MB – 32 MB (спецификация LIM4.0)
*) U=16 MB (80286), 4GB (386DX - Pentium), 64 GB (Pentium Pro - …)
Карта памяти
CMA
000000
0A0000
100000
0C0000
0F0000
0E0000
110000
U -1
Video RAM
Adapters
Extentions
Main
ROM
BIOS
UMA
EMS
HMA
Линейный адрес
2000000
XMS
Virtual memory (swap file)
EMS
Frame
Типы данных по размеру (разрядности)
Старшее учетверенное
слово
Младшее учетверенное
слово
Двойное слово 0
Двойное слово 1
Двойное слово 2
Двойное слово 3
Упакованный тип данных
Старшее двойное слово
Младшее двойное слово
Слово 0
Слово 1
Слово 2
Слово 3
Учетверенное слово
Старшее слово
Младшее слово
Байт 0
Байт 1
Байт 2
Байт 3
Двойное слово
Младший байт
Слово
Старший байт
7 Биты 0
Байт
15
31
127
63
47
15
31
95
63
31
Типы данных по представлению (логической интерпретации)
Беззнаковый целый тип – двоичное значение без знака.
Диапазон значений определяется разрядностью:
1.1. Байт без знака – [0, 255];
1.2. Слово без знака – [0, 65535];
1.3. Двойное слово без знака – [0, 232-1 = 4 294 967 295]
2. Знаковый целый тип – двоичное значение со знаком. Знак
записывается в старший бит. Отрицательные числа
представляются в дополнительном коде. Диапазон значений
определяется разрядностью:
1.1. Байт со знаком – [-128, 127];
1.2. Слово со знаком – [-32768, 32767];
1.3. Двойное слово со знаком – [-231=2 147 483 648, 231-1=2 147 483 647].
3. Битовое поле – битовая последовательность, содержащая
до 32 независимых битов (флагов).
4. Ближний указатель – 32-разрядный логический адрес, задающий
относительное смещение в байтах от начала сегмента.
Сегмент – это независимая непрерывная область (блок) памяти,
со своим адресным пространством. Смещение – это адрес в пределах
адресного пространства сегмента.
6. Цепочка (байтовая строка) – это непрерывная последовательность
байтов, слов или двойных слов максимальной длиной до 4 ГБ.
7. Неупакованный двоично-десятичный тип – это байтовое
представление десятичной цифры.
Старшие 4 разряда (старший полубайт) установлены в 0.
Младшие 4 разряда (младший полубайт) хранят
двоичный код десятичной цифры (от 0000 до 1001).
8. Упакованный двоично-десятичный тип – это байтовое
представление двух десятичных цифр.
Старший полубайт хранит двоичный код (от 0000 до 1001) старшей
десятичной цифры, а младший полубайт – младшей цифры.
Логические типы данных сопроцессора
9. Двоичные целые числа:
9.1. Целое слово (16 битов), диапазон [-32768, 32767]
9.2. Короткое целое (32 бита), диапазон [-2 147 483 648, 2 147 483 647]
9.3. Длинное целое (64 бита),
диапазон [9 223 372 036 854 775 808, -9 223 372 036 854 775 807]
10. Упакованный знаковый двоично-десятичный целый тип – это
представление десятичного числа со знаком в виде
последовательности из 10 байтов.
Старший бит старшего байта кодирует знак, остальные 7 битов
старшего байта не используются.
В остальных 9 байтах последовательности хранится по
две десятичных цифры в двоичном коде.
Диапазон [-999 999 999 999 999 999, 999 999 999 999 999 999]
11. Вещественные числа – основные типы данных сопроцессора.
В записи чисел в вещественном формате старший бит определяет
знак числа, далее записывается характеристика, определяющая
порядок числа и младшие биты хранят значение нормализованной
мантиссы. Всего определено 3 формата:
11.1. Короткий вещественный тип (одинарная точность)
11.2. Длинный вещественный тип (двойная точность)
11.3. Расширенный вещественный тип.
Значение числа определяется как А=±М*2р,
где М – мантисса, p – порядок числа
Порядок числа определяется как p=q-f,
где q – характеристика, а f – фиксированное смещение, зависящее
от формата. Порядок может быть отрицательным.
В процессоре i286 было реализовано два режима работы — защищённый режим и реальный режим. В защищённом режиме процессор мог адресовать до 1 Гбайт виртуальной памяти (при этом объем реальной памяти составлял не более 16 Мбайт), за счёт изменения механизма адресации памяти. Переключение из реального режима в защищённый происходит программно и относительно просто, однако для обратного перехода необходим аппаратный сброс процессора. Для отслеживания текущего режима работы процессора используется регистр слово состояния машины (MSW). Программы реального режима без модификаций в защищённом режиме исполняться не могут, так же как и программы BIOS машины.
Суть защищённого режима заключается в следующем. Программист и разрабатываемые им программы используют логическое адресное пространство (виртуальное адресное пространство), размер которого может составлять 1024 Мбайт (для 80286). Логический адрес преобразуется в физический адрес автоматически с помощью схемы управления памятью (MMU). Благодаря защищённому режиму, в памяти можно хранить только ту часть программы, которая необходима в данный момент, а остальная часть могла храниться во внешней памяти (например, на жёстком диске). В случае обращения к той части программы, которой нет в памяти в данный момент, операционная система может приостановить программу, загрузить требуемую секцию кода из внешней памяти и возобновить выполнение программы. Следовательно, становятся допустимыми программы, размер которых больше объема имеющейся памяти. Другими словами, пользователю кажется, что он работает с большей памятью, чем на самом деле. Однако реализация системы виртуальной памяти была еще далека от совершенства. Для использования защищённого режима необходима многозадачная операционная система, например Microsoft Windows 3.0, IBM OS/2 или UNIX.
Физический адрес формируется следующим образом. В сегментных регистрах хранится селектор, содержащий индекс дескриптора в таблице дескрипторов (13 бит), 1 бит, определяющий к какой таблице дескрипторов будет производиться обращение (к локальной или к глобальной) и 2 бита запрашиваемого уровня привилегий. Далее происходит обращение к соответствующей таблице дескрипторов и соответствующему дескриптору, который содержал начальный, 24-битный, адрес сегмента, размер сегмента и права доступа. После чего вычислялся необходимый физический адрес, путём сложения адреса сегмента со смещением, хранящемся в 16-разрядном указательном регистре.
Страничная организация памяти
Основная мысль сводится к формированию таблиц описания памяти, которые определяют состояние её отдельных сегментов/страниц и т. п. При нехватке памяти операционная система может выгрузить часть данных из оперативной памяти на диск, а в таблицу описаний внести указание на отсутствие этих данных в памяти. При попытке обращения к отсутствующим данным процессор сформирует исключение (разновидность прерывания) и отдаст управление операционной системе, которая вернёт данные в память, а затем вернёт управление программе. Таким образом для программ процесс подкачки данных с дисков происходит незаметно.
ПЛАН ЛЕКЦИИ
1. Режимы работы микропроцессора
2. Защищенный режим
3. Реальный режим
4. Режим системного управления
5. Переключение между режимами
1. Режимы работы микропроцессора
Впервые о различных режимах работы процессоров стали говорить с появлением процессора 80286. Это был первый представитель данного семейства процессоров, в котором были реализованы многозадачность и защищенная архитектура. Чтобы обеспечить совместимость с предыдущими представителями этого семейства (8086/88, 80186/188) в процессоре 80286 было реализовано два режима функционирования: режим эмуляции 8086 (режим реального адреса) и защищенный режим, в котором используются все возможности процессора. В последующих поколениях процессоров этого семейства защищенный режим становится основным режимом работы.
В новых поколениях процессоров Intel появился еще один режим работы - режим системного управления. Впервые он был реализован в процессорах 80386SL и i486SL. Начиная с расширенных моделей Intel486, этот режим стал обязательным элементом архитектуры IA-32. С его помощью прозрачно даже для операционной системы на уровне BIOS реализуются функции энергосбережения.
2. Защищенный режим ( Protected Mode )
Основным режимом работы микропроцессора является защищенный режим. Ключевыми особенностями защищенного режима являются: виртуальное адресное пространство, защита и многозадачность.
В защищенном режиме программа оперирует адресами, которые могут относиться к физически отсутствующим ячейкам памяти, поэтому такое адресное пространство называется виртуальным . Размер виртуального адресного пространства программы может превышать емкость физической памяти и достигать 64Тбайт. Для адресации виртуального адресного пространства используется сегментированная модель, в которой адрес состоит из двух элементов: селектора сегмента и смещения внутри сегмента. С каждым сегментом связана особая структура, хранящая информацию о нем, - дескриптор. Кроме "виртуализации" памяти на уровне сегментов существует возможность "виртуализации" памяти при помощи страниц - страничная трансляция . Страничная трансляция предоставляет удобные средства для реализации в операционной системе функций подкачки, а кроме того в процессорах P6+ обеспечивает 36-битную физическую адресацию памяти (64Гбайт).
Встроенные средства переключения задач обеспечивают многозадачность в защищенном режиме. Среда задачи состоит из содержимого регистров МП и всего кода с данными в пространстве памяти. Микропроцессор способен быстро переключаться из одной среды выполнения в другую, имитируя параллельную работу нескольких задач. Для некоторых задач может эмулироваться управление памятью как у процессора 8086. Такое состояние задачи называется режимом виртуального 8086 ( Virtual 8086 Mode ) . О пребывании задачи в таком состоянии сигнализирует бит VM в регистре флагов. При этом задачи виртуального МП 8086 изолированы и защищены, как от друг друга, так и от обычных задач защищенного режима.
Защита задач обеспечивается следующими средствами: контроль пределов сегментов , контроль типов сегментов , контроль привилегий , привилегированные инструкции и защита на уровне страниц . Контроль пределов и типов сегментов обеспечивает целостность сегментов кода и данных. Программа не имеет права обращаться к виртуальной памяти, выходящей за предел того или иного сегмента. Программа не имеет права обращаться к сегменту данных как к коду и наоборот. Архитектура защиты микропроцессора обеспечивает 4 иерархических уровня привилегий, что позволяет ограничить задаче доступ к отдельным сегментам в зависимости от ее текущих привилегий. Кроме того, текущий уровень привилегий задачи влияет на возможность выполнения тех или иных специфических команд (привилегированных инструкций). Функции страничной трансляции, впервые появившиеся в МП Intel386, обеспечивают дополнительные механизмы защиты на уровне страниц.
3. Реальный режим ( Real Mode )
В реальном режиме микропроцессор работает как очень быстрый 8086 с возможностью использования 32-битных расширений. Механизм адресации, размеры памяти и обработка прерываний (с их последовательными ограничениями) МП Intel386 в реальном режиме полностью совпадают с аналогичными функциями МП 8086. В отличие от 8086 микропроцессоры 286+ в определенных ситуациях генерируют исключения, например, при превышении предела сегмента, который для всех сегментов в реальном режиме - 0FFFFh.
Имеется две фиксированные области в памяти, которые резервируются в режиме реальной адресации:
· область инициализации системы
· область таблицы прерываний
Ячейки от 00000h до 003FFH резервируются для векторов прерываний. Каждое из 256 возможных прерываний имеет зарезервированный 4-байтовый адрес перехода. Ячейки от FFFFFFF0H до FFFFFFFFH резервируются для инициализации системы.
4. Режим системного управления ( System Management Mode )
При возврате из SMM (по инструкции RSM) процессор восстанавливает свой контекст из SMRAM. Обработчик может программно внести изменения в образ контекста процессора, тогда процессор перейдет не в то состояние, в котором произошло SMI. Если SMI было получено во время выполнения инструкции HLT, то дальнейшие действия при выходе из SMM определяются значением поля " Auto HALT Restart ": процессор может снова вернуться к инструкции останова или перейти к выполнению следующей команды. Если SMI произошло при выполнении инструкции ввода-вывода, то в зависимости от значения поля "I/O Instruction Restart " возможен рестарт инструкции ввода вывода.
Эти особенности режима системного управления позволяют использовать его для реализации системы управления энергосбережением компьютера или функций безопасности и контроля доступа.
5. Переключение между режимами
Рис. 1. Схема переключения между режимами
После инициализации процессор находится в реальном режиме. Процессор может быть переведен в защищенный режим установкой бита 0 ( Protect Enable ) в регистре CR0:
Второй вариант "достался в наследство" от 16-разрядной архитектуры 80286, для совместимости с которой ее регистр MSW ( Machine Status Word ) отображается на младшее слово регистра CR0.
Вернуться в режим реального адреса процессор может по сигналу RESET или (в отличие от 80286) сбросив бит PE:
Для совместимости с 80286 инструкция LMSW бит PE не сбрасывает.
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
Столичный центр образовательных технологий г. Москва
Получите квалификацию учитель математики за 2 месяца
от 3 170 руб. 1900 руб.
Количество часов 300 ч. / 600 ч.
Успеть записаться со скидкой
Форма обучения дистанционная
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
311 лекций для учителей,
воспитателей и психологов
Получите свидетельство
о просмотре прямо сейчас!
Защищенный режим
Структура сегментного регистра и селектора в защищенном режиме
В отличие от реального режима, когда в сегментном регистре находится базовый адрес сегмента, в защищенном режиме [8,9] в нем находится более сложная информация, которая называется селектором. Селектор служит для поиска дескриптора (описателя) сегмента в таблице. Относительный номер дескриптора в таблице называется INDEX . Его значение указывается в селекторе с 3 по 15 разряд. Остальные разряды используются следующим образом.
RPL – уровень прав доступа вызывающей программы. TI – тип дескрипторной таблицы: 0 - глобальная дескрипторная таблица, 1 - локальная дескрипторная таблица.
. Дополнительные регистры процессора
Для осуществления защищенного режима процессор имеет следующие дополнительные регистры.
GDTR - регистр глобальной дескрипторной таблицы.
Регистр имеет 6 байт. Младшие два байта регистра содержат размер сегмента памяти с таблицей, а старшие четыре байта - его базовый адрес. Для работы с GDTR используются команды: LGDT - команда загрузки регистра, SGDT - команда чтения содержимого этого регистра.
LDTR – регистр локальной дескрипторной таблицы.
Так как дескриптор этой таблицы приводится в глобальной дескрипторной таблице, то его поиск осуществляется также как и для любого сегмента, то есть с помощью селектора. Отсюда следует, что структура LDTR c овпадает со структурой сегментных регистров и имеет в своем составе INDEX , RPL и TI . Для работы с LDTR используются команды. LLDT - команда загрузки регистра. SLDT - команда чтения содержимого этого регистра.
TR – регистр задач.
Этот регистр используется в многозадачном режиме. В этом режиме для описания каждой задачи используется сегмент состояния задачи TSS . Дескриптор этого сегмента находится в глобальной дескрипторной таблице, поэтому структура TR , также как и структура LDTR , совпадает со структурой селектора. Для работы с регистром TR используются команды LTR и STR .
IDTR – регистр таблицы прерываний.
Его структура позволяет размещать таблицу векторов прерывания в любом месте памяти, а не только в начале, как это в реальном режиме. Для размещения таблицы используется сегмент памяти, описание которого аналогично описанию сегмента глобальной дескрипторной таблицы. Отсюда следует, что структура IDTR совпадает со структурой GDTR и содержит базовый адрес и размер сегмента, где размещается таблица векторов прерывания. Для работы с регистром IDTR используются команды: LIDT – команда загрузки регистра, SIDT – команда чтения регистра.
MSW – регистр слова состояния машины. Отдельные разряды этого слова позволяют не только узнать состояние машины, но и управлять ею. Например, нулевой разряд ( PE ) позволяет переключить схему процессора в защищенный режим, т.е. если PE : =1, то процессор переключится в защищенный режим. В исходном состоянии процессора PE =0, что соответствует реальному режиму. Для работы с регистром MSW используются команды: LMSW - команда загрузки регистра, SMSW - команда чтения регистра. В частности, команда LMSW используется для инициализации (разрешения) перевода процессора в защищенный режим. Перейти обратно в реальный режим этой командой нельзя - нужна последовательность команд. После команды LMSW нужна команда межсегментного перехода ( JMP FAR ), чтобы сбросить старую очередь команд в буфере процессора и загрузить селектор кодового сегмента, то есть того участка программы, который будет выполняться уже в защищенном режиме. Более полно процедура переключения режимов рассмотрена в методическом пособии соответствующей лабораторной работе.
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
Видеолекции для
профессионалов
- Свидетельства для портфолио
- Вечный доступ за 120 рублей
- 311 видеолекции для каждого
«Как закрыть гештальт: практики и упражнения»
Свидетельство и скидка на обучение каждому участнику
Особенности процессоров 80386-80486
С появлением 32-разрядных процессоров 80386 фирмы Intel процессоры могут работать в трех режимах: реальном, защищённом и виртуального процессора 8086.
В защищённом режиме используются полные возможности 32-разрядного процессора — обеспечивается непосредственный доступ к 4 Гбайт физического адресного пространства и многозадачный режим с параллельным выполнением нескольких программ (процессов). Собственно говоря, многозадачный режим организует многозадачная операционная система, однако микропроцессор предоставляет необходимый для этого режима мощный и надежный механизм защиты задач друг от друга с помощью четырехуровневой системы привилегий. Так же в этом режиме доступна страничная организация памяти, повышающая уровень защиты задач друг от друга и эффективность их выполнения.
В процессоре i386 компания Intel учла необходимость лучшей поддержки реального режима, потому что программное обеспечение времени его появления не было готово полностью работать в защищённом режиме. Поэтому, например, в i386, возможно переключение из защищённого режима обратно в реальный (при разработке 80286 считалось, что это не потребуется, поэтому на компьютерах с процессором 80286 возврат в реальный режим осуществляется схемно — через сброс процессора).
При включении микропроцессора в нем автоматически устанавливается режим реального адреса. Переход в защищённый режим осуществляется программно путем выполнения соответствующей последовательности команд. Программы, предназначенные для защищённого режима, должны быть написаны особым образом. Это означает, что реальный и защищённый режим не совместимы.
Страничная организация памяти
Основная мысль сводится к формированию таблиц описания памяти, которые определяют состояние её отдельных сегментов/страниц и т. п. При нехватке памяти операционная система может выгрузить часть данных из оперативной памяти на диск, а в таблицу описаний внести указание на отсутствие этих данных в памяти. При попытке обращения к отсутствующим данным процессор сформирует исключение (разновидность прерывания) и отдаст управление операционной системе, которая вернёт данные в память, а затем вернёт управление программе. Таким образом для программ процесс подкачки данных с дисков происходит незаметно.
Читайте также: