CPU i386 допускает работу в четырех режимах:
- RM - реальном,
- РМ - защищенном,
- VM-86 - виртуальном и
- РРМ - страничном.
1. RM - режим реальной адресации, соответствует работе системы i8086 и используется только в MS DOS. Область адресов, шириной в 1 Мбайт, не защищена, реализовано до 20 адресных линий (из 32-х, возможных для микропроцессора i386), режим однопользовательский. Для работы с 32-разрядными операндами и реализации дополнительных режимов адресации используется префикс переадресации, двухбайтовый адрес не превышает границы сегмента в 64 Кбайт (0000 - FFFF), иначе фиксируется особая ситуация с прерыванием типа 13h. Для доступа к 1 Мбайт адресного пространства используются линии адреса [A19-А02] и /BE0 - /BE3. Страничный механизм доступа к памяти отключен, исполнительный адрес всегда соответствует физическому, все сегменты могут находиться в состоянии записи, считывания или выполнения.
2. РМ - защищенный режим, или режим виртуальной адресации. При включении РС всегда устанавливается режим RM, а для перевода его в РМ используются системные команды LMSW и SMSW. При установке бита PF=1 в MSW, CPU переходит в РМ. В режиме РМ реализуется доступ к 4 Гбайт ОЗУ в 32-битовом пространстве исполнительных адресов, а доступ к 64 Тбайт ОЗУ реализуется в логическом (виртуальном) адресном пространстве. Виртуальная адресация - это способ организации доступа к информации, большая часть которой располагается не в физическом ОЗУ, а во внешней (дисковой) памяти, откуда она, по мере необходимости, перекачивается в ОЗУ (swapping), но программа видит иллюзию размеров ОЗУ в 64 Тбайт. Предусмотрена защита памяти по многоуровневому принципу защиты ОС и прикладных программ и реализуется мультипрограммность. Для обратного перевода из режима РМ в RM, команды LMSW и SMSW не используются, а система должна быть перезагружена либо аппаратно ("холодный" рестарт), либо аппаратно-программно - через порты 64h и 60h контроллера 8048 (KBD), командой OUT и далее, через сигнал RS и узел Shut Down, - к входу RESET CPU, как при "теплом" рестарте, осуществляемом нажатием комбинации клавиш Ctrl+Alt+Del.
Для программного перехода из режима PM в RM может быть также использована ассемблерная команда MOV CR0 (LCR0).
3. VM-86 - это режим виртуальной адресации i86. Режим устанавливает исполнительную среду i8086 внутри многозадачной среды PM CPU i386. При этом поддерживается выполнение всех программ для предыдущих поколений микропроцессоров ix86. Сначала, в рамках VM86, формируется 20-разрядный линейный адрес по системе RM, но включается механизм страничной адресации и система двухуровневой защиты памяти. Адрес, шириной в 1 Мбайт, может быть разбит на 256 страниц по 4 Кбайт каждая и размещен в физическом адресном пространстве до 4 Гбайт. В этом объеме адресов ОЗУ можно, в окнах (frame) по 1 Мбайт, расположить множество копий MS DOS, или других ОС и пользовательских программ, представляющих отдельные виртуальные машины, работающие в многозадачном режиме.
Вход и выход в режим VM86 возможен следующими способами:
- загрузкой регистра флагов EFLAGS [17];
- переключением с задачи на задачу с использованием сегмента состояния задачи (TSS);
- в процедуре прерывания (команда IRET);
- ассемблерной командой POPF.
4. РРМ - режим страничной адресации. Это режим управления памятью, позволяющий разделить большие объемы информации на компактные блоки по 4 Кбайт.
Для реализации режима РРМ в CPU i386 дополнительно включается страничный механизм, транслирующий линейный адрес - в физический.
Переход из RM в РРМ - программный, командами LMSW, SMSW, MOV CR0, MOV CR3. Обратный переход осуществляется либо перезагрузкой, либо программно, с помощью бита 31 в регистре CR0.
Контрольные вопросы.
1. Что представляет собой и для чего предназначен режим RM CPU i386?
2. Что такое виртуальная адресация в режиме РМ CPU i386?
3. Для чего предназначен режим VM86 CPU i386?
4. Какой режим устанавливается при включении CPU i386?
5. Как можно перейти из режимов РМ, РРМ в режим RM?