Фантазии о Вселенной и мой личный сайт
Обзор режимов микропроцессоров IA-32

Обзор режимов микропроцессоров IA-32

Процессоры IA-32 могут работать в четырёх режимах: режиме реальных адресов, защищённом режиме, режиме виртуального процессора 8086 и режиме системного управления. Теперь более подробно об этих режимах.

  • Режим реальных адресов (real address mode). Также вы могли встречать термин "реальный режим", что должно обозначать то же самое, хотя, это немного не правильно и ещё одно название этого режима, встречающееся в документации Intel: R-Mode. Режим реальных адресов – это режим, в котором процессор работает как "XT" (8086), но позволяет пользоваться большинством своих технологий (MMX, 32-разрядные регистры общего назначения, регистры управления и отладки и пр.). После аппаратного сброса процессор переходит в этот режим и начинает выполнять программную инициализацию из BIOS-а. Вообще говоря, режим реальных адресов в современных процессорах предназначен для запуска компьютера и подразумевается, что операционная система будет работать в защищённом режиме (поэтому оптимизация по производительности для процессоров IA-32 производится для защищённого режима).

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

  • Защищённый режим (protected mode или P-Mode). Как утверждает Intel, это "родной" (native) режим 32-разрядного процессора.

    В защищённый режим процессор надо переводить специальными операциями над системными регистрами и войти в этот режим процессор может только из режима реальных адресов. При работе в защищённом режиме процессор контролирует практически все действия программ и позволяет разделить операционную систему, драйвера и прикладные программы разными уровнями привилегий. Благодаря этому ОС может ограничить области памяти, выделяемой программам, запретить или разрешить ввод/вывод по любым адресам, управлять прерываниями и многое другое. При попытке программы выйти за допустимый диапазон адресов памяти, выделенной ей, либо при обращении к "запрещённым" для неё портам процессор будет генерировать исключения – специальный тип прерываний. Грамотно оперируя исключениями, операционная система может контролировать действия программ, организовать систему виртуальной памяти, мультизадачность и другие программные технологии.

    В защищённом режиме максимально доступны все ресурсы процессора. Например, R-Mode максимальный диапазон адресов памяти ограничен одним мегабайтом, а в защищённом режиме он расширен до 4 Гб для процессоров 386 и 486 и 64 Гб для Pentium-ов.

  • Режим виртуального процессора 8086 (virtual-8086 mode) или V-Mode, или "виртуальный режим" (что, вообще говоря, не совсем правильно).

    В V-Mode можно войти только из защищённого режима. В этом режиме процессор эмулирует работу 8086 процессора (1 Мб адресного пространства, "обычные" прерывания и пр.), но при этом процессор сохраняет все средства контроля, присущие защищённому режиму.

    Обычно, V-Mode используется в операционных системах для запуска программ, рассчитанных на процессор 8086 (так называемая, "обратная совместимость ПО"). V-Mode реализуется как отдельная задача в мультизадачной среде и она может взаимодействовать с другими задачами, если, конечно же, ей позволит это операционная система.

  • Режим системного управления (system management mode) или S-Mode. Режим исполнения на процессорах x86/x86-64, при котором приостанавливается исполнение другого кода (включая операционные системы и гипервизор), и запускается специальная программа, хранящаяся в SMRAM в наиболее привилегированном режиме.