Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Регистры расширений MMX, SSE. 6 страница



Технология виртуализации Intel VT-x, разработанная для IA-32 и поддерживаемая современными процессорами, использует 10 новых инструкций VM.

В 2002 г. впервые со времен i386 архитектура х86 подвергается принципиальным изменениям. Разработчиками фирмы AMD была создана 64-разрядная архитектура, получившая название «х86-64». Эта архитектура базируется на существующей архитектуре IA-32. В 2004 г. Intel вводит в серверные процессоры Xeon 64-разрядную технологию EM64Т (Extended Memory), с программной точки зрения практически идентичную той, что предложила AMD. С 2006 г. эта технология под названием «Архитектура Intel 64» начала использоваться в клиентских ПК с процессором Core 2 Duo.

Все 32-нм процессоры Intel семейства Westmere, начиная с двухъядерных процессоров Clarkdale (Core i5 650) поддерживают шесть новых инструкций SIMD, которые Intel назвал AES-NI.

ММХ - технология

В основе технологии ММХ лежит расширение набора команд (57 новых команд) для эффективного выполнения типичных мультимедийных алгоритмов, к числу которых относятся и многие алгоритмы, характерные для цифровой обработки сигналов. Это первое существенное изменение в системе команд микропроцессоров семейства х86, начиная с выхода в свет микропроцессора i386. В технологии ММХ использована модель обработки данных SIMD, предусматривающая одновременное выполнение операции над несколькими целочисленными операндами разрядностью 1, 2 или 4 байта.

ММХ-команды используют восемь 64-разрядных ММХ-регистров с плавающей запятой, и реализуются в том же режиме процессора, что и команды с плавающей запятой. ММХ-команды делятся на следующие группы: арифметические, логические и сдвига, сравнения, передачи данных, упаковки и распаковки, отмены режима ММХ. Все программное обеспечение, созданное для ранее выпущенных процессоров, без всяких изменений может выполняться на процессорах с технологией ММХ.

Стремясь устранить недостатки, свойственные ММХ-технологии (отсутствие ММХ-команд для работы с плавающей запятой, невозможность выполнения операций с плавающей запятой при выполнении ММХ-команд) Intel решила внести необходимые дополнения в архитектуру процессора Pentium III.

SSE-расширение

Новые 70 команд SSE-расширения (Streaming SIMD Extension) делятся на 4 категории:

· SIMD-команды обработки данных в формате с плавающей запятой одинарной точности (SPFP-команды);

· дополнительные SIMD-команды для обработки целочисленных данных;

· команды управления кэшированием;

· команды сохранения и восстановления состояния процессора.

SPFP-команды используют 8 новых 128 разрядных регистров (ХММ-регистры) и новый тип данных – 128-разрядное значение, содержащее 4 последовательно расположенных («упакованных») 32-разрядных чисел с плавающей запятой одинарной точности. При выполнении инструкций с ХММ традиционное оборудование FPU/MMX не используется, что позволяет эффективно смешивать инструкции SPFP с инструкциями над операндами с плавающей точкой.

Большинство SPFP-команд имеют два операнда. Данные, содержащиеся в первом операнде, после выполнения команды, как правило, замещаются результатами, а данные, содержащиеся во втором операнде, остаются неизменными.

SPFP-команды поддерживают два типа операций над упакованными данными с плавающей запятой – параллельные и скалярные. Параллельные операции выполняются над четырьмя 32-разрядными элементами данных, упакованными в каждый 128-разрядный операнд.

Скалярные операции выполняются над младшими (занимающие разряды 0–31) элементами данных двух операндов. Остальные три элемента данных не изменяются.

В расширение SSE включены дополнительные SIMD-команды для работы с целочисленными данными. Эти новые команды расширяют возможности существующего набора команд технологии ММХ. Они выполняют SIMD-операции над несколькими целочисленными данными, упакованными в 64-разрядные группы, загружают и хранят упакованные данные в 64-разрядных ММХ-регистрах.

Кроме того, в SSE введены команды нового типа, обеспечивающие:

· управление кэшированием данных с целью повышения эффективности использования кэш-памяти и сокращения числа обращений к основной памяти;

· упреждающее кэширование данных с целью организации параллельной работы конвейера команд и обмена с памятью.

Первая группа команд выполняет запись данных из ММХ (ХММ) регистра в память, минуя кэш. Вторая – обеспечивает запись данных из памяти в кэш различных уровней.

Кроме ХММ-регистров в микропроцессоре Pentium III появился новый регистр состояния и управления MXCSR. Для работы с этими регистрами требуется поддержка, как со стороны процессора, так и со стороны операционной системы. Чтобы прикладные программы и ОС могли сохранять и восстанавливать состояния новых компонентов процессора, введено несколько команд управления. Первая группа команд управления обеспечивает сохранение в памяти содержимого регистра МХCSR и наоборот – загружает слово состояния из памяти в регистр MXCSR. Вторая группа – сохраняет в памяти состояние процессора (состояние регистров данных FPU, MMX-регистров, ХММ-регистров) и восстанавливает ранее сохраненное состояние процессора.

 

 

Расширения SSE2, SSE3, SSSE3, SSE4

Расширение SSE2, введенное в состав Pentium 4 Northwood, значительно расширяет возможности обработки нескольких операндов по принципу SIMD, по сравнению с SSE. В нем используется 144 новых команды, обеспечивающих одновременное выполнение операций над несколькими операндами, которые располагаются в памяти и в 128-разрядных регистрах ХММ. В регистрах могут храниться и одновременно обрабатываться два числа с плавающей запятой в формате двойной точности (64 разряда) или 4 числа в формате одинарной точности (32 разряда), любые целочисленные типы данных, способные разместиться в 128-разрядных регистрах.

Убрано предложение
Расширение SSE2, представляя собой симбиоз ММХ и SSE, обладает большей гибкостью и позволяет добиваться впечатляющего прироста производительности. Команды SSE2 существенно повышают эффективность процессора при реализации трехмерной графики и Интернет-приложений, обеспечение сжатия и кодирования аудио- и видеоданных и в ряде других приложений.

Расширение SSE3, введенное в состав Pentium 4 Prescott, включает 5 новых операций с комплексными числами, 5 потоковых операций над числами с плавающей запятой, 2 команды для синхронизации потоков и одну специальную инструкцию для применения при кодировании видео.

Расширение SSSE3(Supplemental SSE3 – дополнительное потоковое SIMD-расширение 3) появилось в процессорах с микроархитектурой Intel Core и поддерживается процессором Intel Atom. Новыми в SSSE3, по сравнению с SSE3, являются 16 уникальных команд, работающих с упакованными целыми данными. Каждый из них может работать как с 64-х битными (ММХ), так и с 128-ми битными (ХММ) регистрами, поэтому Intel в своих материалах ссылается на 32 новые команды. Новые инструкции включают: работу со знаком, сдвиги, перемешивание байт, умножение, горизонтальное сложение/вычитание целых.

Расширение SSE4.1 – появилось в первом процессоре Intel c 45-нм техпроцессом (кодовое наименование Penryn). Набор команд SSE4.1 включает 47 новых инновационных инструкций, основными из которых являются примитивы векторизации для компиляторов и ускорители кодирования видеозаписей с высоким расширением и обработки фотоизображений.

Расширение SSE4.2 – разработано Intel для процессоров с новой микроархитектурой Nehalem. Введенные в набор SSE4.2 инструкции ориентированы на ускорение обработки строк и текстовой информации.

Ни одна из SSE4 инструкций не работает с 64-х битными ММХ-регистрами, только с 128-ми битными ХММ-регистрами.

Расширения AES-NI, AVX

Расширение AES-NI (Advanced Encryption Standard New Instructions) – набор из 6 новых SIMD-инструкций, ускоряющий процесс шифрования и дешифрования информации по стандарту AES. Стандарт AES является стандартом шифрования США, принятым в 2000-ом году. Он специфицирует алгоритм Rijndael, который представляет собой симметричный блочный шифр, работающий с блоками длиной 128 бит и использует ключи длиной 128, 192 и 256 бит. По заявлению правительства США, для взлома шифрования при использовании 128-битного ключа потребуется 149 триллионов лет.

Новое расширение AVX (Advanced Vector Extensions) – расширение системы команд х86 для микропроцессоров с новой микроархитектурой Intel Sandy Bridge (2010 г.) и процессоров AMD Bulldozer (2011 г.), анонсированная Intel в 2008 г., представляет различные улучшения, новые инструкции и новую схему кодирования машинных кодов. Размер векторных регистров SIMD увеличивается с 128-ми (ХММ) до 256 бит (регистры YMM). Существующие 128-битные инструкции будут использовать только младшую половину новых YMM-регистров. В будущем возможно расширение до 512 или 1024 бит. Набор инструкций AVX позволяет использовать любую двухоперандную инструкцию ХММ в трехоперандном виде без модификации 2-х регистров-источников, с отдельным регистром для результата. Добавлены инструкции с количеством операндов, более трех. Новая система кодирования машинных кодов VEX предоставляет новый набор префиксов кода, которые расширяют пространство возможных машинных кодов. Использование YMM-регистров поддерживают операционные системы: Windows 7, Windows Server 2008 R2, Linux (версия ядра 2.6.30).

Расширение AVX подходит для интенсивных вычислений с плавающей точкой в мультимедиа, научных и финансовых задачах. Увеличивает степень параллелизма и пропускную способность в вещественных SIMD-вычислениях.

Обобщенный формат команд х86

Базовый набор команд 32-разрядного интеловского процессора обеспечивает выполнение операций над операндами, которые находятся в регистре, памяти или непосредственно в команде. В набор входят безадресные, одно-, двух- и трехадресные команды. Процессор реализует следующие шесть типов двухадресных команд: регистр – регистр; память – регистр; непосредственный операнд – регистр; регистр – память; память – память; непосредственный операнд – память.

Операнды могут содержать 8, 16 или 32 разряда. Для реализации различных типов команд определены форматы, задающие порядок размещения информации о выполняемой операции и способах выбора операндов.

Обобщенный вид формата команды показан на рис. 2.20. Он допускает наличие следующих полей: кода операции (1 или 2 байта); байтов адресации (0, 1 или 2 байта); байтов смещения (0, 1, 2 или 4 байта); байтов непосредственных данных – операндов (0, 1, 2 или 4 байта).

Команды содержат от 1 до 12 байт. Проведенные оценки показывают, что в среднем длина команды составляет 4–5 байт.

Рассмотрим назначение основных полей кода команды (рис. 2.20). Код операции (КОП) определяет тип выполняемой операции, а также в некоторых командах в первом байте может содержаться бит W, задающий разрядность операндов:

W = 0 – операция с байтами;

W = 1 – операция со словами (16 или 32 разряда).

 

КОП Байты адресации Смещение Операнд
MOD R/M SIB
1 или 2 байта 0 или 1 байт 0 или 1 байт 0, 1, 2 или 4 байта 0, 1, 2 или 4 байта

Рис.2.20. Общий формат команд

В ряде команд первый байт КОП содержит поля reg или sreg, определяющие адреса используемых регистров. Трехбитовое поле reg задает выбираемый регистр в соответствии с разрядностью обрабатываемых операндов. Поле sreg (двух или трехбитовое) определяет адрес сегментных регистров.

Байт адресации MОD R/M содержит три поля (рис.2.21). Поля MOD и R/M задают адрес одного из операндов, который может храниться в регистре или ячейке памяти. Кодировка этих полей определяет выбираемый способ адресации.

 

7 6 5 3 2 0   7 6 5 3 2 0
MOD REG/КОП R/M   SS INDEX BASE
MOD R/M     SIB  

Рис. 2.21. Форматы байтов MOD R/M и SIB

В одноадресных командах поле REG/КОП содержит дополнительные биты кода операции. В двухадресных командах поле REG содержит адрес регистра, в котором хранится второй из операндов. Тип команды (одно- или двухадресная) определяется первым битом КОП. Поле MOD указывает, какой разрядности смещение используется для формирования адреса. Если оно имеет значение 00 (при некоторых значениях R/M) или 01, 10, то используется 8-, 16- или 32-разрядное смещение. Это смещение задается соответствующими байтами в коде команды, которые располагаются после байтов адресации.

Для реализации некоторых способов относительной адресации используется байт SIB. Он содержит 3-битовые поля INDEX и BASE, определяющие выбор регистров, используемых в качестве индексного и базового регистров, и поле SS, задающее масштабный коэффициент для модификации значения индекса.

При выполнении операций с непосредственной адресацией один из операндов задается в последних байтах команды (рис. 2.20). В этом случае КОП ряда команд содержит бит S, определяющий способ использования непосредственно задаваемых данных.

Способы адресации

Интеловский 32-разрядный процессор реализует сегментную организацию оперативной памяти, при которой физический адрес ячейки памяти формируется путем сложения базового адреса сегмента и относительного адреса ячейки внутри сегмента.

Базовый адрес определяется содержимым 16-разрядного сегментного регистра и зависит от режима работы процессора. Если он работает в режиме обработки 16-разрядных данных (режим реальных адресов), то 20-разрядный базовый адрес формируется путем сдвига содержимого сегментного регистра на 4 разряда влево. Если процессор работает в режиме обработки 32-разрядных данных (защищенный режим), то 32-разрядный базовый адрес содержится в дескрипторе, выбор которого из таблицы дескрипторов осуществляется с помощью селектора – содержимого соответствующего сегментного регистра.

В качестве относительного адреса используется содержимое регистров общего назначения или эффективный адрес (ЕА), который формируется в соответствии с заданным способом адресации. ЕА является 16- или 32-разрядным и формируется в зависимости от значения полей MOD и R/M и содержимого байта SIB (для 32-разрядных адресов). В общем случае ЕА образуется путем арифметического сложения трех компонентов:

· содержимого базового регистра;

· содержимого индексного регистра;

· 8, 16, 32-разрядного смещения, заданного в одном, двух или четырех байтах команды.

В зависимости от значений полей MOD и R/M для формирования ЕА используются все или часть этих слагаемых.

В процессоре осуществляются следующие способы адресации операндов:

· непосредственная адресация;

· регистровая адресация;

· косвенно-регистровая адресация;

· прямая адресация;

· базовая адресация;

· индексная адресация;

· базово-индексная адресация;

· базово-индексная адресация со смещением.

В современных микропроцессорах Intel Core i5, i7 базовый набор команд и используемые способы адресации операндов практически полностью совпадают с набором команд и способов адресации в предыдущих моделях Core 2 Duo, Pentium 4. Процессоры обеспечивают реальный и защищенный режимы работы, реализуют сегментную и страничную организации памяти. Таким образом, пользователь имеет дело с хорошо знакомым набором регистров и способов адресации, может работать с базовой системой команд и известными вариантами реализации прерываний и исключений, которые характерны для всех моделей семейств Intel Core и Pentium.

Основные режимы работы х86-64 архитектуры

Как было сказано выше, корпорацией AMD было разработано 64-разрядное расширение х86-архитектуры, которое получило название «х86-64», т. е. 64-битная х86 (по аналогии с х86-32). Позднее х86-64 архитектура была переименована в AMD64. В отличие от 64-битной архитектуры IA-64, примененной в процессорах Intel Itanium, х86-64 базируется на существующей архитектуре х86-32. Следовательно, процессор, построенный на основе х86-64, может безо всяких проблем исполнять существующие 32-битные приложения, которых написано на текущий момент просто немерено (и в них вложены очень большие деньги). Причем, эти приложения могут выполняться без каких бы то ни было потерь в производительности в отличие от того же Intel Itanium, где х86-32 систему команд приходится эмулировать.

В процессорах данной архитектуры существующие в х86 регистры общего назначения расширены с 32 до 64 бит и к ним добавлены еще 8 новых 64 разрядных регистров.

Для реализации одновременной работы как с 32-битным, так и с 64-битным кодом и регистрами архитектура AMD64 предполагает поддержку процессорами 2-х режимов: Long Mode («длинный» режим), имеющего два подрежима – 64-битный режим и Compatibility mode (режим совместимости), и Legacy Mode (наследственный режим). Что они собой представляют, можно понять из табл. 2.2.

Итак, в64-битном режиме обеспечивается поддержка:

· 64-битных виртуальных адресов;

· 8 новых и расширенных 64-битных регистров общего назначения;

·

Убрано предложение
64-битного указателя инструкций RIP;

· сплошного адресного пространства с единым пространством для инструкций, данных и стека.

· 64-битных арифметических и логических операций над целыми числами.

Данный режим снимает ограничение в размерности адресного пространства оперативной памяти, которое в современных 32-разрядных х86 системах составляет 232 = 4 Гбайт.

Для адресации новых регистров в команды введены так называемые «префиксы расширения регистра», кодирование которых осуществляется кодами, использующимися для команд INC <регистр> и DEC <регистр> в 32- и 16-битных режимах. Команды INC и DEC в 64-битном режиме должны кодироваться в более общей, двухбайтовой форме.

Таблица 2.2

Режимы работы процессора х86-64 архитектуры

Режим ОС Необх. переком-пиляция приложе-ний Характеристики
Длина адреса Длина операнда Дополнит. регистры Размер РОН
Long Mode 64-битный 64-битная ДА ДА
Compatibility mode НЕТ НЕТ
Legacy Mode 32-бит. НЕТ НЕТ
16-бит.

 

Compatibility mode обеспечивает бинарную совместимость с существующими 16- и 32-битными приложениями при работе с 64-битной операционной системой. Этот режим разрешается ОС по принципу отдельных кодовых сегментов. Однако, в отличие от 64-битного режима, сегментация функционирует обычным образом, используя семантику защищенного режима. С точки зрения выполняемого приложения процессор выглядит как обычный х86 центральный процессор (CPU) в защищенном режиме. С точки зрения операционной системы трансляция адресов, работа с прерываниями и исключениями, а также системные структуры данных используют механизмы 64-битного Long Mode.

Наследственный режим (Legacy Mode) обеспечивает бинарную совместимость с 16- и 32-битными операционными системами; полную совместимость с существующими 32-битными реализациями х86 архитектуры, включающей в себя поддержку сегментированной памяти и 32-битных регистров общего назначения и указателя инструкций; процессор уподобляется обычному 32-разрядному х86 CPU. В этом режиме не задействуется ни одна из 64-битных функций.

Нельзя не отметить, что для того, чтобы пользователи смогли воспользоваться преимуществами 64-битного режима, необходим компилятор, который разработан и поставляется вместе с микропроцессором.

Убран абзац
Данная архитектура была реализована в процессорах AMD Athlon 64, Opteron.

Особенности архитектуры Intel 64

Архитектура Intel 64 (технология EM64T) в сочетании с соответствующим программным обеспечением поддерживает работу 64-разрядных приложений на серверах, рабочих станциях, настольных ПК и ноутбуках. Она, как и х86-64 от AMD, реализует 64-разрядное расширение регистров, те же режимы работы процессора, ту же программную совместимость с 16- и 32-битными приложениями, а главное – эта технология расширяет адресное пространство виртуальной и физической памяти.

Архитектура Intel 64 поддерживает следующие возможности:

· 64-разрядное сплошное пространство виртуальных адресов;

· 64-разрядные указатели;

· 64-разрядные регистры общего назначения;

· 64-разрядная поддержка вычислений с целыми числами;

· до 1 Тбайт адресного пространства платформы.

2.5.2. Форматы команд и способы адресации в RISC-процессорах

Рассмотрим форматы команд на примере процессоров архитектуры Power PC, разработанной корпорациями IBM, Apple и Motorola.

Все команды имеют длину 32 разряда и могут быть 3-х форматов:

· 1 формат – КОП (6); RS (5); Rt (5); I (16),

где КОП(6) – поле кода операции, содержащее 6 разрядов; RS(5), Rt(5) – поля адресов регистров (по 5 разрядов); I(16) – 16-разрядный непосредственный операнд.

· 2 формат – КОП (6); RS (5); Rt (5); Rk (5).

· 3 формат – отличается от 2-го формата наличием дополнительного 32-разрядного командного слова, в котором для различных кодов операций могут находиться 32-разрядные непосредственный операнд, смещение или адрес перехода.

Архитектура Power PC определяет операции регистр – регистр для всех команд обработки. Источником данных являются встроенные регистры или непосредственные операнды. Трехрегистровый формат команд позволяет отличать регистр результатов от 2-х регистров – источников, позволяя использовать их в других командах. Данные пересылаются между памятью и регистрами только специальными командами загрузки/сохранения. Адреса памяти формируются с использованием базового регистра и смещения.

2.5.3. Особенности системы команд IA-64

Шестидесятичетырех-разрядная интеловская архитектура (IA-64), как было сказано выше, реализует EPIC-концепцию, разработанную совместно фирмами Intel и HP. IA-64 не является 64-разрядным расширением 32-разрядной архитектуры х86 компании Intel или переработкой 64-разрядной архитектуры РА-RISC компании НР. IA-64 представляет собой нечто абсолютно новое – передовую архитектуру, использующую длинные слова команд, предикаты команд, устранение ветвлений, предварительную загрузку данных и другие ухищрения для того, чтобы «извлечь больше параллелизма» из кода программ.

Команды IA-64 можно подразделить: команды работы со стеком регистров (например, alloc); целочисленные команды; команды сравнения и работы с предикатами; команды доступа в память; команды перехода; мультимедийные команды; команды пересылок между регистрами; команды выполнения операций над строками и подсчет числа единиц в слове; команды работы с плавающей запятой.

Целочисленные команды IA-64 включают арифметические операции (add, sub и др.), операции над битами и сдвиги, а также 32-разрядные операции.

Отметим, что команда умножения целых чисел в регистрах общего назначения (GR) отсутствует; для перемножения необходима пересылка целых в регистры с плавающей запятой (FR) и применение операции умножения, выполняемой в функциональном исполнительном устройстве вещественного типа. Некоторые специалисты считают это «наименее удачной» чертой системы команд IA-64.

Команды сравнения и работы с предикатами – это одна из принципиально новых особенностей IA-64 по сравнению с RISC-архитектурой. Приведем несколько типичных примеров команд этой группы. Команда cmpсравнивает два регистра GR (или регистр GR и литерал) на одно из 10 возможных условий (больше, меньше или равно и т. п.). Командаtbit тестирует заданный бит GR. Команда fcmp сравнивает два числа с плавающей запятой. Однако результатом сравнения является не единственный код условия, что типично для обычных процессоров. Логический результат сравнения (1 – истина, 0 – ложь) записывается обычно в пару предикатных регистров (во второй пишется отрицание первого). Эти значения предикатных регистров (PR) используются затем не только в командах условного перехода, как в обычных микропроцессорах. Почти все команды IA-64 выполнимы «под предикатом», т. е. могут выполняться или нет в зависимости от значения указанного в команде PR-регистра. Это позволяет во многих случаях избежать применения условных переходов, которые, как известно, отрицательно сказываются на производительности процессоров. Вместо этого процессор с архитектурой IA-64, имеющий большое число ресурсов (в частности, регистров и функциональных исполнительных устройств), может исполнять обе ветви программы линейно.

Формат команд IA-64 содержит 41 разряд и имеет фиксированную длину (рис. 2.22). Поле КОП занимает 14 разрядов, под адрес 64 предикатных регистров (PR) отводится 6 разрядов, три 7-битных поля (GFR) используются для адресации 128 регистров общего назначения (GR) или регистров с плавающей точкой (FR).

Большинство целочисленных команд трехадресные, а их аргументы находятся в регистрах, однако встречается и литеральное (символьное) представление аргументов. Имеются также модификации команд add и sub, которые являются четырехадресными: в них к сумме/разности регистров прибавляется/вычитается 1.

 

КОП PR GFR GFR GFR

Рис. 2.22. Формат инструкций IA-64

Команды в формате IA-64 упакованы по три в 128-битный LIW (long instruction word) пакет (см. рис. 2.23).

       
Т Инструкция 1 Инструкция 2 Инструкция 3

Рис.2.23. Пакет инструкций IA-64

В каждый пакет при трансляции компилятор помещает шаблон, который размещается в 5-битовом поле Т. Шаблон пакета указывает не только на то, какие команды в пакете могут выполняться независимо, но и какие команды из следующего пакета могут выполняться параллельно. Команды в пакетах не обязательно должны быть расположены в том же порядке, что и в машинном коде, и могут принадлежать к различным путям ветвления. Компилятор может также помещать в один пакет зависимые и независимые команды, поскольку возможность параллельного выполнения определяется шаблоном пакета. В отличие от некоторых ранее существовавших архитектур со сверх длинными словами команд (VLIW), IA-64 не добавляет команд «нет операции» (NOPS) для дополнения пакетов.

Раздел 2.6 перенесен из раздела 3.6 предыдущего пособия

2.6. Принципы организации системы прерывания программ

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

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

Рассматриваемый процесс, называемый прерыванием программ, поясняется на рис. 2.24.

Механизм прерываний предусматривает обработку запросов на обслуживание как от внешних устройств системы, так и от внутренних блоков процессора.

Под прерываниями в узком смысле слова обычно понимают процесс обработки запросов первого типа – от внешних устройств. Поступление запроса на обслуживание от внутреннего блока процессора свидетельствует о возникновении исключительной ситуации: деление на нуль, переполнение, неправильный код команды и т. п. Запросы, возникающие в таких ситуациях, называются исключениями.

Аппаратные прерывания являются следствием внешних событий, асинхронных относительно тактового сигнала системы. Прерывания обслуживаются, как правило, после завершения выполнения текущей команды. По окончании процедуры обслуживания процессор продолжает выполнять программу с команды, непосредственно следующей за прерванной.

Рис.2.24. Процесс прерывания программы

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.