4.1 Обзор режимов работы
Под IA-32 подразумевается семейство процессоров фирмы Intel, родоначальником которого является процессор Intel386. В это семейство входит и процессор Pentium 4. Несмотря на то, что с момента выпуска процессора Intel386 быстродействие процессоров и их внутренняя структура существенно изменились, для программиста эти отличия не имеют особого значения, поскольку все они скрыты "за ширмой" стандарта IA-32. Таким образом, с точки зрения программиста, архитектура процессоров IA-32 по существу не изменилась с момента выпуска процессора Intel386, если не считать введения набора высокопроизводительных команд для поддержки мультимедийных приложений.
Процессоры семейства IA-32 могут работать в одном из трех основных режимов:
реальной адресации (Real-address mode);
защищенном (Protected mode);
управления системой (System Management mode).
Кроме того, существует еще один виртуальный режим работы (Virtual-8086 mode), или режим эмуляции процессора 8086, который является разновидностью защищенного режима.
В семействе процессоров IA-32 выбор метода обращения к памяти определяется режимом работы процессора.
Реальный режим адресации. В этом режиме полностью повторяется работа процессора Intel 8086 и добавляется несколько новых возможностей, например команды перехода в другие режимы работы. Реальный режим адресации использовался в операционных системах Windows 95/98 в случае, когда приложению MS DOS нужно было предоставить полный контроль над аппаратным обеспечением компьютера. Им часто пользовались при запуске старых компьютерных игр в системах Windows 95/98. При выполнении начальной загрузки по сигналу сброса (Reset) все процессоры фирмы Intel семейства IA-32 автоматически переходят в реальный режим адресации. После этого операционная система компьютера может переключить процессор в требуемый режим работы.
В реальном режиме процессор может обращаться только к первому мегабайту памяти, адреса которого находятся в диапазоне от 00000 до FFFFF в шестнадцатеричном выражении. При этом процессор работает в однозадачном режиме (т.е. в заданный момент времени он может выполнять только одну программу). Однако при этом он может в любой момент прервать ее выполнение и переключиться на процедуру обработки запроса (его называют прерыванием), поступившего от одного из периферийных устройств. Любой программе, которую выполняет в этот момент процессор, разрешен доступ без ограничения к любым областям памяти, находящимся в пределах первого мегабайта: к ОЗУ – по чтению и записи, а к ПЗУ, понятно, только по чтению. Реальный режим работы процессора используется в операционной системе MS DOS, а также в системах Windows 95 и 98 при загрузке в режиме эмуляции MS DOS.
Защищенный режим. Это основной режим работы процессоров IA-32, в котором для программиста доступны все команды, режимы адресации и возможности процессора. При этом каждой программе выделяется изолированная область памяти, состоящая из одного или нескольких сегментов. В процессе работы процессор отслеживает все обращения программы к памяти и пресекает все попытки обращения за пределы выделенных программе сегментов, либо нарушение прав доступа к сегменту, примером чего является попытка записи данных в сегмент кода, право доступа к которому определено как readonly. Именно это и определяет защищённость программ как друг от друга, так и защищённость данных и кода от самой программы (неправильных её действий).
В защищенном режиме процессор может одновременно выполнять несколько программ. При этом каждому процессу (т.е. выполняющейся программе) может быть назначено до 232 = 4 Гбайт оперативной памяти. Чтобы предотвратить взаимное влияние выполняющихся программ друг на друга им выделяются изолированные участки памяти (т.е. код и данные программ находятся во взаимно несмежных сегментах). В защищенном режиме работают такие операционные системы, как MS Windows и Linux.
Защищённый режим основывается на дескрипторной модели доступа к памяти. Кроме этого современные операционные системы, работающие в защищённом режиме, используют страничную организацию памяти, которая позволяет увеличивать размер линейного адресного пространства, отводимого под все запущенные приложения.
Виртуальный режим. При работе ЦПУ в защищенном режиме он может непосредственно выполнять программы, написанные для реального режима адресации процессора i8086. Таким образом, становится возможным запуск программ, написанных для системы MS DOS в безопасном многозадачном окружении. Другими словами, даже если программа в процессе выполнения в результате ошибки или сбоя "зависнет", это никак не повлияет на другие выполняющиеся в данный момент программы. Именно поэтому данный режим работы часто называют режимом эмуляции виртуального процессора 8086, хотя на самом деле этот режим относится к защищенному режиму работы процессора.
В виртуальном режиме адресации для каждой задачи создается собственная виртуальная машина, которой выделяется изолированная область памяти размером 1 Мбайт, и полностью эмулируется работа процессора 80x86 в реальном режиме адресации. Например, в операционных системах Windows 2000 и ХР виртуальная машина процессора 8086 создается каждый раз при запуске пользователем окна командного интерпретатора (сеанса MS DOS). При этом одновременно можно запустить довольно много таких окон, причем выполняющиеся в них программы не будут влиять друг на друга. Однако не стоит обольщаться, часть программ, написанных для системы MS DOS и реального режима адресации, напрямую взаимодействуют с аппаратным обеспечением компьютера. Поэтому они не будут работать в среде ОС Windows 2000 и ХР.
Режим управления системой. Данный режим работы процессора часто обозначают аббревиатурой SSM (System Management mode). Он позволяет предоставить операционной системе компьютера механизм для выполнения таких функций, как перевод компьютера в режим энергосбережения и восстановления работоспособности системы после сбоя. Эти функции обычно используются производителями компьютера и материнских плат для установки нужных режимов работы их оборудования.
Наиболее полная информация о режимах работы процессора содержится в трехтомной фирменной документации, озаглавленной IA-32 Intel Architecture Software Developer's Manual. Её можно загрузить с Web-сервера фирмы Intel по адресу: http://developer.intel.com.
- Предисловие
- Глава 1. Общие сведения о микропроцессорах
- 1.1 Классификация микропроцессоров
- 1.2 Характеристики микропроцессоров
- 1.2.1 Тактовая частота
- 1.2.2 Архитектура процессора
- 1.2.3 Технологический процесс производства
- 1.2.4 Частота системной шины
- 1.2.5 Размер кэша
- 1.3 Типы архитектур микропроцессоров
- 1.4 Структурная схема микропроцессоров
- 1.4.1 Микропроцессор Фон-Неймана
- 1.4.2 Конвейер
- 1.4.3 Зависимость между частотой и количеством ступеней конвейера
- 1.5 Представление информации в эвм
- 1.5.1 Двоичное представление целых чисел
- 1.5.2 Представление символьной информации
- Глава 2. Архитектура микропроцессоров ia-32
- 2.1 Состав и функции регистров
- 2.1.1 Основные регистры
- 2.1.2 Регистры дополнительных функциональных модулей
- 2.2 Типы адресации
- 2.3 Система команд
- 2.3.1 Классификация команд
- 2.3.2 Формат команды
- 2.3.3 Однобайтовые команды
- 2.3.4 Непосредственно заданные операнды
- 2.3.5 Команды с регистровыми операндами
- 2.3.7 Команды с операндами, расположенными в памяти
- Глава 3. Организация многоуровневой памяти
- 3.1 Принцип построения многоуровневой памяти
- 3.2 Организация кэш-памяти
- 3.3 Протоколы когерентности памяти микропроцессоров
- 3.4 Страничная организация памяти
- Глава 4. Режимы работы процессоров ia-32
- 4.1 Обзор режимов работы
- 4.2 Реальный режим адресации
- 4.3 Защищённый режим
- 4.3.1 Дескрипторные таблицы
- 4.3.2 Дескрипторные регистры
- 4.3.3 Дескриптор
- 4.3.4 Односегментная модель памяти
- 4.3.5 Многосегментная модель памяти
- Глава 5. Страничная организация памяти в процессорах ia‑32
- 5.1 Каталог страниц
- 5.2 Таблица страниц
- 5.3 Страничная переадресация
- 5.4 Диспетчер виртуальных машин системы Microsoft Windows
- Глава 6. Архитектура процессоров с параллелизмом уровня команд
- 6.1 Подходы к использованию ресурса транзисторов в микропроцессорах
- 6.2 Суперскалярные процессоры и процессоры с длинным командным словом
- 6.3 Зависимости между командами, препятствующие их параллельному исполнению
- 6.4 Предварительная выборка команд и предсказание переходов
- 6.5 Условное выполнение команд в vliw-процессорах
- 6.6 Декодирование команд, переименование ресурсов и диспетчеризация
- 6.7 Исполнение команд
- 6.8 Завершение выполнения команды
- 6.9 Направления развития архитектуры процессоров с параллелизмом уровня команд
- Глава 7. Мультитредовые микропроцессоры
- 7.1 Основы мультитредовой архитектуры
- 7.2 Выявление тредов
- 7.3 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков управления программы
- 7.3.1 Мультитредовая модель выполнения программы
- 7.3.2 Мультитредовые программы
- 7.3.3 Аппаратные средства мультитредовой архитектуры
- 7.3.4 Преимущества мультитредовой архитектуры
- 7.4 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков данных программы
- 7.5 Специфика мультитредовых моделей распараллеливания
- Глава 8. Модуль обработки вещественных чисел
- 8.1 Представление чисел с плавающей запятой
- 8.2 Состав модуля fpu
- Глава 9. Основы 64-разрядной архитектуры
- 9.1 Состав и назначение регистров микропроцессора ia-64
- 9.2 Особенности архитектуры epic
- 9.3 Архитектура x86-64
- 9.4 Структура одноядерного процессора
- 9.5 Многоядерные процессоры
- 9.6 Зачем нужны “лишние” разряды?
- Глава 10. Современные 64-разрядные микропроцессоры корпораций Intel и amd
- 10.1 Архитектура Intel Core 2
- 10.1.1 Intel Wide Dynamic Execution
- 10.1.2 Intel Intelligent Power Capability
- 10.1.3 Intel Advanced Smart Cache
- 10.1.4 Intel Smart Memory Access
- 10.1.5 Intel Advanced Digital Media Boost
- 10.1.6 Логическая схема процессора
- 10.2 Архитектура Intel Core i7
- 10.2.1 Технология Hyper-Threading в архитектуре Nehalem
- 10.2.2 Иерархия кэш-памяти в архитектуре Nehalem
- 10.3 Хронология развития семейств микропроцессоров с архитектурой Nehalem
- 10.4 Архитектура amd Athlon 64
- 10.4.1 Ядро процессора
- 10.4.3 Контроллер памяти
- 10.4.4 Контроллер HyperTransport
- 10.5 Архитектура amd k10
- 10.4.1 Технология amd Memory Optimizer Technology
- 10.5.2 Ядро процессора
- 10.5.3 Предвыборка данных и инструкций
- 10.5.4 Выборка из кэша
- 10.5.5 Предсказание переходов и ветвлений
- 10.5.6 Процесс декодирования
- 10.5.7 Диспетчеризация и переупорядочение микроопераций
- 10.5.8 Выполнение микроопераций
- 10.5.9 Технологии энергосбережения
- 10.5.10 Шина HyperTransport 3.0
- 10.5.11 Семейство процессоров Barcelona
- 10.5.12 Семейство процессоров Phenom
- Глава 11. Технологии, поддерживаемые современными микропроцессорами
- 11.1 Технологии тепловой защиты
- 11.1.1 Технология Thermal Monitor
- 11.1.2 Технология Thermal Monitor 2
- 11.1.3 Режим аварийного отключения
- 11.2 Технологии энергосбережения
- 11.2.1 Технология Enhanced Intel SpeedStep
- 11.2.2 Технология Cool'n'Quiet
- 11.3 Технология расширенной памяти
- 11.4 Технология антивирусной защиты
- 11.5 Технология виртуализации
- 11.6 Реализация технологий в современных микроархитектурах
- 11.6.2 Em64t – NetBurst
- 11.6.3 Intel Core
- 11.6.4 Intel Atom
- 11.6.5 Nehalem
- 11.6.6 Xeon
- Глава 12. Графические микропроцессоры
- 12.1 Основные термины и определения
- 12.2 Технологии построения трёхмерного изображения
- 12.2.1 Технологии повышения реалистичности трехмерного изображения
- 12.3 Шейдерный процессор
- 12.4 Особенности современных графических процессоров
- Глава 13. Однокристальные микроконтроллеры
- 13.1 Общая характеристика микроконтроллеров
- 13.2 Микроконтроллеры семейства avr
- Почему именно avr?
- 13.3 Общие сведения об омк avr
- 13.4 Характеристики avr-микроконтроллеров
- Глава 14. Технология производства микропроцессоров
- 14.1 Особенности производства процессоров
- 14.2 Новые технологические решения
- 14.3 Технология производства сверхбольших интегральных схем
- I. Выращивание кристалла кремния
- II. Создание проводящих областей
- III. Тестирование
- IV. Изготовление корпуса
- V. Доставка
- 14.4 Перспективы производства сбис
- Англо-русский словарь терминов и аббревиатур
- Библиографический список
- Интернет-ссылки
- 350072. Краснодар, ул. Московская, 2, кор. А.