- •6. Модель прикладного выполнения в системной среде Intel®Itanium™
- •6.1. Режимы набора инструкций
- •6.1.1. Выполнение набора инструкций в среде IntelItanium.
- •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. Ia-32 регистры с плавающей точкой
- •6.2.5.1. Ia-32 стек регистров с плавающей точкой
- •6.2.5.2. Специальные случаи
- •6.2.5.3. Регистры управления с плавающей точкой ia-32.
- •6.2.5.4. Ia-32 среда с плавающей точкой
- •6.2.6. Ia-32 регистры ммх технологии
- •6.2.7. Ia-32 регистрыSse
- •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.2. Alat
- •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 программирования описаны в «ArchitectureSoftwareDeveloper’sManual».
Архитектура 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. Выполнение набора инструкций в среде IntelItanium.
Пока процессор выполняет набор инструкций Itanium(PSR.is=0):
Инструкции Itaniumзагружаются, декодируются и выполняются процессором.
Инструкции Itaniumмогут обращаться к целому содержимому прикладного регистраItaniumилиIA-32. Это включаетIA-32 сегментные дескрипторы и селекторы, основные регистры, физические регистры с плавающей точкой, регистры ММХ технологии иSSEрегистры. (Описание схемы состава регистров дано в разделе 6.2).
Сегментация запрещена. Нет проверок сегментной защиты, а также не применяется прибавление сегментной базы для вычисления виртуальных адресов. Все вычисленные адреса являются виртуальными.
Могут быть сгенерированы 264виртуальных адресов, причем управление памятью используется для всей памяти и ссылок ввода/вывода.