- •6. Модель прикладного выполнения в системной среде Intel® Itanium™
- •6.1. Режимы набора инструкций
- •6.1.1. Выполнение набора инструкций в среде Intel Itanium.
- •6.1.2. Выполнение набора инструкций ia-32
- •6.1.3. Переключения наборов инструкций
- •6.1.3.1. Инструкция jmpe
- •6.1.3.2. Инструкция перехода к ia
- •6.1.4. Переключения режимов работы ia-32
- •6.2. Модель состояния прикладных регистров ia-32
- •6.2.1. Регистры общего назначения ia-32
- •6.2.2. Указатель инструкций ia-32
- •6.2.3. Сегментные регистры ia-32
- •6.2.3.1. Сегменты данных и кода
- •6.2.3.2. Сегментный дескриптор и целостность среды
- •6.2.3.2.1. Защищенный режим.
- •6.2.3.2.2 Режим vm86
- •6.2.3.2.2 Реальный режим
- •6.2.3.3. Проверки целостности среды ia-32 во время выполнения
- •6.2.4. Прикладной ia-32 регистр eflag
- •6.2.5.2. Специальные случаи
- •6.2.5.3. Регистры управления с плавающей точкой ia-32.
- •6.3. Обзор моделей памяти
- •6.3.1. Упорядочивание памяти
- •6.3.2. Сегментация ia-32
- •6.3.3. Самомодифицирующийся код
- •6.3.4. Взаимодействия упорядочивания памяти.
- •6.4. Использование кодом ia-32, регистров Itanium
- •6.4.1. Механизм стека регистров
- •6.4.3. Влияние NaT/NaTVal на инструкции ia-32
6. Модель прикладного выполнения в системной среде Intel® Itanium™
Этот раздел описывает модель выполнения для лучшего видения прикладным программистом, использующим архитектуру Itanium, связанную с кодами IA-32, которые работают в системной среде Itanium. Основные свойства охватывают следующее:
Схемы состояний IA-32 регистров – целочисленных, сегментных, с плавающей точкой, технологии ММХ и потокового расширения SIMD (SSE).
Изменения наборов инструкций
Обзор IA-32 модели памяти и адресации
Этот раздел не охватывает детали модели прикладного IA-32 программирования, инструкции и регистры IA-32. Детальнее модели прикладного IA-32 программирования описаны в «Architecture Software Developer’s Manual».
Архитектура Itanium может поддерживать (в контексте операционной системы базирующейся на Itanium) 32-битные приложения следующих режимов: 16-битного реального, 16-битного виртуального 8086 и 16-/32-битного защищенного режима. Приложение IA-32 действительно поддерживается особенностями операционных систем определенных инфраструктурой поддерживающей эти особенности операционной системы.
6.1. Режимы набора инструкций
В любой момент времени, в любой точке, процессор может выполнять либо инструкции IA-32, либо инструкции Itanium. Поле PSR.is (определенное в разделе 3.3.2 «Регистр состояния процессора (PSR)» во втором томе) указывает текущий выполняемый набор инструкций, здесь 1 указывает, что выполняется набор инструкций IA-32, а 0 указывает, что выполняется набор инструкций Itanium. Три специальных инструкции и прерывания определены для переключения процессора между наборами инструкций IA-32 и Itanium, как это показано на рис.6.1.
jmpe (инструкция IA-32) скачок на Itanium инструкцию и переключение на набор инструкций Itanium.
br.ia переход на IA-32 инструкцию и переключение на набор инструкций IA-32.
rfi (инструкция Itanium) «возврат из прерывания» задает возврат либо к набору инструкций IA-32, либо к набору инструкций Itanium в зависимости от того, откуда было вызвано прерывание.
Прерывания переключают процессор на набор инструкций Itanium для всех условий прерывания.
Инструкции jmpe и br.ia поддерживают низкозатратный механизм переключения управления между наборами инструкций. Эти примитивы обычно включаются в «пустышки» или «заглушки», которые выполняют требуемый вызов соглашений о связях и редактировании, для вызова динамических и статических подключаемых библиотек.
jmpe br.ia
rfi
Перехваты,
исключения, программные прерывания
Набор
инструкций IA-32
Набор
инструкций Intel
Itanium
Прерывания
Системная среда Intel Itanium |
Рис.6.1. Модель переключения набора инструкций
6.1.1. Выполнение набора инструкций в среде Intel Itanium.
Пока процессор выполняет набор инструкций Itanium (PSR.is=0):
Инструкции Itanium загружаются, декодируются и выполняются процессором.
Инструкции Itanium могут обращаться к целому содержимому прикладного регистра Itanium или IA-32. Это включает IA-32 сегментные дескрипторы и селекторы, основные регистры, физические регистры с плавающей точкой, регистры ММХ технологии и SSE регистры. (Описание схемы состава регистров дано в разделе 6.2).
Сегментация запрещена. Нет проверок сегментной защиты, а также не применяется прибавление сегментной базы для вычисления виртуальных адресов. Все вычисленные адреса являются виртуальными.
Могут быть сгенерированы 264 виртуальных адресов, причем управление памятью используется для всей памяти и ссылок ввода/вывода.
