Разделы презентаций


Архитектура IA- 32

Содержание

Формат команды IA-32.Типы префиксов:командные префиксы (префиксы повторения) REP, REPE/REPZ, REPNE/REPNZ;префикс блокировки шины LOCK;префиксы размера;префиксы замены сегмента.Байт "Mod R/M" определяет режим адресации, а также иногда дополнительный код операции. Байт SIB (Scale-Index-Base) определяет способ адресации при обращении к памяти в 32-битном режиме На

Слайды и текст этой презентации

Слайд 1Архитектура IA-32.

Архитектура IA-32.

Слайд 2Формат команды IA-32.
Типы префиксов:

командные префиксы (префиксы повторения) REP, REPE/REPZ, REPNE/REPNZ;
префикс блокировки

шины LOCK;
префиксы размера;
префиксы замены сегмента.

Байт "Mod R/M" определяет режим адресации, а также иногда дополнительный

код операции.

Байт SIB (Scale-Index-Base) определяет способ адресации при обращении к памяти в 32-битном режиме

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

В IA-32 в таком случае генерируют исключение #13.

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

Для совместимости с 16-битными процессорами архитектура IA-32 использует одинаковые коды для инструкций, оперирующих как с 16-битными, так и 32-битными операндами.

Формат команды IA-32.Типы префиксов:командные префиксы (префиксы повторения) REP, REPE/REPZ, REPNE/REPNZ;префикс блокировки шины LOCK;префиксы размера;префиксы замены сегмента.Байт 

Слайд 3Новая архитектура - новые возможности при указании адреса для операнда в памяти.

Как

процессор будет считать операнд или его адрес, зависит от:
эффективного размера

операнда,
эффективного размера адреса для данной команды.

Эти значения определяются на основе:
режима работы,
бита D дескриптора используемого сегмента,
наличия в инструкции определенных префиксов.

Непосредственный режим адресации подразумевает включение операнда-источника в код инструкции.

Операнд может быть 8-битовым или 16-битовым, если значение эффективного размера операнда - 16.

Операнд может быть 8-битовым или 32-битовым, если значение эффективного размера операнда - 32.

Регистровый режим адресации определят операнд-источник или операнд-приемник в одном из регистров процессора или сопроцессора.

В некоторых случаях,
могут использоваться пары 32-битных регистров (например, EDX:EAX), образуя 64-битный операнд.

Адресация через порт ввода-вывода - получение операнда или сохранение операнда через пространство портов ввода-вывода.

Адрес порта ввода-вывода либо непосредственно включается в код инструкции, либо берется из регистра DX.

Адресация через память. Таким образом, может быть указан операнд-источник или операнд-приемник.

Процессор не позволяет одновременно задавать оба операнда через память (за исключением некоторых цепочечных команд).

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

Слайд 4Для получения операнда из памяти процессору необходимо знать:
селектор сегмента,
смещение в

сегменте.

В некоторых командах селектор может быть указан непосредственно в коде

инструкции.

В других случаях процессор может явно или неявно использовать значение одного из сегментных регистров.

Под неявным использованием сегментных регистров подразумевается то, что в зависимости от предназначения операнда процессор использует определенный сегментный регистр для обращения к памяти:
CS -для выборки инструкций;
SS - для работы со стеком или обращения к памяти через регистры ESP или EBP;
ES - для получения адреса операнда-приемника в цепочечных командах;
DS - при всех остальных обращениях к памяти.

Явное использование сегментных регистров возможно, если в код инструкции включается префикс смены сегмента.

Указание префикса смены сегмента допустимо не для всех команд:
нельзя менять сегмент для команд работы со стеком (всегда используется SS);
для цепочечных команд можно менять сегмент только операнда-источника (операнд-приемник всегда адресуется через ES).

Смещение в сегменте (эффективный или исполнительный адрес - EA) может быть вычислено на основе значений РОН и/или указанного в коде инструкции относительного смещения, при этом любой или даже несколько из указанных компонентов могут отсутствовать:

EA = BASE + (INDEX*SCALE) + DISPLACEMENT


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

Слайд 5Функциональная классификация машинных команд.
Группы внутри всего набора машинных команд:
команды общего

назначения, исполняемые целочисленным устройством, в том числе системные команды;
команды сопроцессора;
команды MMX-расширения;
команды XMM-расширения

(наборы команд SSE и SSE2).

Обычно машинная команда имеет два операнда:
приемник,
источник.
Возможны их следующие сочетания:

Функциональная классификация машинных команд.Группы внутри всего набора машинных команд:команды общего назначения, исполняемые целочисленным устройством, в том числе

Слайд 6Исключения составляют следующие команды:

Цепочечные — могут перемещать данные из памяти

в память
Работа со стеком — могут переносить данные из памяти

в стек
Команды умножения

Способы задания операндов в команде:
операнд задается неявно на микропроцессорном уровне

Примеры:
std ; устанавливает DF=1
push eax ; устанавливает ESP=ESP-4

2) операнд задается в самой команде (непосредственный операнд)

Примеры:
num EQU 10 ; определяет константу num
mov al, 5 ; загружает в AL значение 5
add al, num ; устанавливает AL=AL+10

3) адресные операнды задают физическое размещение операнда в памяти

Пример:
mov eax, 0 ; загрузка в EBX двойного
mov ds, ax ; слова, расположенного
mov ebx, ds:0h ; в 0000:00000000h

4) перемещаемые операнды — любые символьные имена, представляющие адреса памяти

Пример:
.data
var1 DW 0CFFh ; объявляется переменная
.code
mov ax, var1 ; загружается в AX

5) регистровый операнд

Примеры:
movq mm0, mm1 ; регистру mm0 присваивается
; значение из регистра mm1
sub eax, esi ; из eax вычитается esi

Исключения составляют следующие команды:Цепочечные — могут перемещать данные из памяти в памятьРабота со стеком — могут переносить

Слайд 76) операнд — порт ввода/вывода

Примеры:
in al, 48h ; взять байт

из порта 48h
mov al, 20h ; вывести слово в
out dx,

al ; порт 20h

7) операнд находится в стеке

Примеры:
push eax ; обменять значения
push ebx ; регистров EAX и EBX
pop eax ; через стек
pop ebx ;

8) операнд находится в памяти

Примеры:
.data
var DD 100 DUP(0)
...
lea esi, var ; загрузить в EAX второй
mov eax, [esi+4] ; элемент массива VAR

Виды адресации операндов делятся на два вида:
● Прямые — эффективный адрес операнда находится непосредственно в коде команды
● Косвенные — в самой команде находится лишь часть эффективного адреса, а остальные его компоненты находятся в регистрах.

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

jz METKA ; переход на метку METKA, если ZF=1
mov al, 5
...
METKA:

6) операнд — порт ввода/выводаПримеры:in al, 48h ; взять байт из порта 48hmov al, 20h ; вывести

Слайд 8Абсолютная прямая адресация:
Эффективный адрес операнда формируется из поля смещения команды.

mov

eax, DWORD PTR [0h] ; загружает в
; eax двойное

слово
; с адреса ds:0h

Косвенная базовая адресация:
Эффективный адрес операнда может находится в любом регистре кроме ESP и EBP.

mov eax, [ecx]
mov al, [ebx]

Косвенная базовая адресация со смещением:
Предназначена для доступа к данным с известным смещением относительно базового адреса.


.data
var DD 5, 6, 7, 8
.code
mov edx, OFFSET var ; загружаем адрес var
mov eax, [edx+8h] ; доступ к 7
mov edx, 4 ;
mov eax, var[edx] ; доступ к 6

Абсолютная прямая адресация:Эффективный адрес операнда формируется из поля смещения команды.mov eax, DWORD PTR [0h] ; загружает в

Слайд 9Косвенная индексная адресация со смещением:
Предназначена для доступа к данным с

известным смещением относительно базового адреса, но с возможностью масштабирования.

.data
var DD

5, 6, 7, 8
.code
mov edx, 3 ; загружаем адрес var
mov eax, var[edx*4] ; доступ к 8 (=var+edx*4)

Косвенная базовая индексная адресация:
Эффективный адрес формируется как сумма двух регистров общего назначения: базового и индексного. Для индексного регистра возможно масштабирование.

.data
var DD 5, 6, 7, 8
.code
mov ebx, OFFSET var
mov esi, 2
mov eax, [ebx][esi*4] ; доступ к 7 (=ebx+esi*

Косвенная базовая индексная адресация со смещением:
Эффективный адрес формируется как сумма двух регистров общего назначения (базового и
индексного) и смещения.

.data
var DD 5, 6, 7, 8
.code
mov ebx, 4
mov esi, 2
mov eax, var[ebx][esi*4] ; доступ к 8 (=var+ebx+esi*4)

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

Косвенная индексная адресация со смещением:Предназначена для доступа к данным с известным смещением относительно базового адреса, но с

Слайд 10ММХ-технология

В основе технологии ММХ лежит расширение набора команд (57 новых команд)

для эффективного выполнения типичных мультимедийных алгоритмов/

В технологии ММХ использована модель

обработки данных SIMD, предусматривающая одновременное выполнение операции над несколькими целочисленными операндами разрядностью 1, 2 или 4 байта.

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

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

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

Новые 70 команд SSE-расширения делятся на 4 категории:
SIMD-команды обработки данных в формате с плавающей запятой одинарной точности (SPFP-команды); 
дополнительные SIMD-команды для обработки целочисленных данных; 
команды управления кэшированием; 
команды сохранения и восстановления состояния процессора. 

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

При выполнении инструкций с ХММ традиционное оборудование FPU/MMX не используется, что позволяет эффективно смешивать инструкции ММХ с инструкциями над операндами с плавающей точкой.

ММХ-технологияВ основе технологии ММХ лежит расширение набора команд (57 новых команд) для эффективного выполнения типичных мультимедийных алгоритмов/В технологии

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

после выполнения команды, как правило, замещаются результатами, а данные, содержащиеся

во втором операнде, остаются неизменными.

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

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

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

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

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

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

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

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

Слайд 12Кроме ХММ-регистров в микропроцессоре Pentium III появился новый регистр состояния

и управления MXCSR.

Для работы с этими регистрами требуется поддержка

как со стороны процессора, так и со стороны операционной системы.

Чтобы прикладные программы и ОС могли сохранять и восстанавливать состояния новых компонентов процессора, введено несколько команд управления.

Первая группа команд управления обеспечивает сохранение в памяти содержимого регистра МХCSR и, наоборот, загружает слово состояния из памяти в регистр MXCSR.

Вторая группа – сохраняет в памяти состояние процессора (состояние регистров данных FPU, MMX-регистров, ХММ-регистров) и восстанавливает ранее сохраненное состояние процессора.

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

Расширение SSE2, значительно расширяет возможности обработки нескольких операндов по принципу SIMD по сравнению с SSE.

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

В регистрах могут храниться и одновременно обрабатываться два числа с плавающей запятой в формате двойной точности (64 разряда) или 4 числа в формате одинарной точности (32 разряда), любые целочисленные типы данных, способные разместиться в 128-разрядных регистрах.

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

Кроме ХММ-регистров в микропроцессоре Pentium III появился новый регистр состояния и управления MXCSR. Для работы с этими

Слайд 13Расширение SSE3, включает 5 новых операций с комплексными числами, 5

потоковых операций над числами с плавающей запятой, 2 команды для

синхронизации потоков и одну специальную инструкцию для применения при кодировании видео.

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

Расширение SSE4.1 Набор команд SSE4.1 включает 47 новых инновационных инструкций, основными из которых являются примитивы векторизации для компиляторов и ускорители кодирования видеозаписей с высоким расширением и обработки фотоизображений. 

Расширение SSE4.2. Введенные в набор 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 бит.  

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

Слайд 14Новое расширение AVX (Advanced Vector Extensions) –представляет различные улучшения, новые инструкции

и новую схему кодирования машинных кодов.

Размер векторных регистров SIMD увеличивается

со 128 (ХММ) до 256 бит (регистры YMM).

Существующие 128-битные инструкции будут использовать только младшую половину новых YMM-регистров. В будущем возможно расширение до 512 или 1024 бит.

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

Добавлены инструкции с количеством операндов более трех.

Новая система кодирования машинных кодов VEX предоставляет новый набор префиксов кода, которые расширяют пространство возможных машинных кодов.

Использование YMM-регистров поддерживают операционные системы: Windows 7, Windows Server 2008 R2, Linux (версия ядра 2.6.30).

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

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика