Архитектура режима реальных адресов и защищенного режима


Устройство управления памятью

Предназначенное для манипуляции сегментами устройство управления памятью (MMU) состоит из блока сегментации и блока разбиения на страницы. Блок сегментации обеспечивает четыре (от 0 до 3) уровня защиты с целью изоляции и защиты друг от друга прикладных программ и операционной системы. Этот компонент также позволяет легко создавать перемещаемые программы и данные и обеспечивает их совместноеиспользование.

Блок разбиения на страницы, входящий в состав блока MMU, работаетна более низком и прозрачном для процесса сегментации уровне. Эта прозрачность позволяет управлять пространством физических адресов отдельно и независимо от управления сегментами. Каждый сегмент отображается в пространство линейных адресов, которое в свою очередь отображается в одну или несколько страниц объемом 4 Кбайт. Для реализации эффективной системы виртуальной памяти МП 80386 полностью поддерживает способность рестарта (повторного запуска) в случае отказа во всех страницах и сегментах.

Микропроцессор 80386 имеет два режима работы: режим реальных адресов, называемый реальным режимом, и защищенный режим. Реальный режим используется преимущественно с целью установки процессора для работы в защищенном режиме, а также с целью выполнения программ МП предыдущих поколений. Защищенный режим обеспечиваетвозможности разбиения на страницы, управления памятью и механизма привилегий МП 80386. Эти конструктивные свойства дают совместимость на уровне объектного кода с более ранними МП фирмы Intel.

Реальный режим.При подаче сигнала сброса или при включении питания устанавливается реальный режим, причем МП 80386 работает как очень быстрый МП 8086, но, по желанию программиста, с 32-разрядным расширением. В реальном режиме МП 80386 имеет такую же базовую архитектуру, что и МП 8086, но обеспечивает доступ к 32-разрядным регистрам. Механизм адресации, размеры памяти и обработка прерываний (с их последовательными ограничениями) МП 8086 полностью совпадают с аналогичными функциями МП 80386 в реальном режиме.

Для формирования логического адреса в реальном режиме используются два компонента. Для определения линейного базового адреса сегмента используется16-разрядный селектор. Полученный базовый адрес используется как 32-разрядный физический адрес. Различие двух режимов состоит в способе вычисления базового адреса.

Перемещаемость программ или данных заключаетсяв том, что они могут быть размещены в разные моменты времени в различных областях памяти, не требуя от системыили прикладных программ своей модификации. Перемещение сегмента производится в МП 80386 точно так же, как и в МП 8086. В селекторе сегмента 16-разрядное значение сдвигается влево на четыре бита (т.е. умножается на 16) для формирования 20-разрядного базового адреса сегмента.Исполнительный адрес расширяется четырьмя старшими нулевыми битами для получения 20-разрядного значения и добавляется к базовому адресу. Таким образом формируется линейный адрес, который совпадает с физическим адресом, поскольку в реальном режиме разбиение на страницы не используется.

Прерывания и исключения нарушают нормальный порядок работы системы или программы. В реальном режиме они обрабатываются точно так же, как и в МП 8086. В реальном режиме таблица дескрипторов прерываний (IDT) МП 80386 представляет собой таблицу векторов реальных прерываний МП 8086 и занимает пространство от нулевого реального адреса до реального адреса 1024 (4 байт па вектор прерывания с 256 возможными входами).

Единственным способом выхода из реального режима является явное переключение в защищенный режим. В защищенный режим МП 80386 входит при установке бита включения защиты (РЕ) в нулевом регистре управления (CR0) с помощью команды пересылки (MOV to CR0). Для совместимости с МП 80286 с целью установки бита РЕ может быть также использована команда загрузки слова состояния машины LMSW.

Процессор повторно входит в реальный режим в том случае, если программа командой пересылки сбрасывает бит РЕ регистра CR0.

Защищенный режим. Полные возможности МП 80386 раскрываются в защищенном режиме. Программы могут исполнять переключение между процессами с целью входа в задачи, предназначенные для режима виртуального МП 8086. Каждая такая задача проявляет себя в семантике МП 8086 (т.е. в отношениях между символами и приписываемыми им значениями независимо от интерпретирующего их оборудования). Это позволяет выполнять на МП 80386 программное обеспечение для МП 8086 - прикладную программу или целую операционную систему. В то же время задачи для виртуального МП 8086 изолированы и защищены как друг от друга, так и от главной операционной системы МП 80386.

Подобно реальному режиму, в защищенном режиме используется 16-разрядный селектор для указания в определенной операционной системной таблице индекса, который содержит 32-разрядный базовый адрес сегмента. Физический адрес формируется путем добавления базового адреса, полученного из этой таблицы, к относительному адресу. Программы, написанные для МП 80286, выполняются на МП 80386 без модификации. Этот МП поддерживает также дескрипторы, используемые в МП 80286, поскольку зарезервированное фирмой Intel младшее слово дескриптора равно нулю.