Добавил:
ИВТ (советую зайти в "Несортированное") Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
23.11.2024
Размер:
755.63 Кб
Скачать

МИЭТ, СПИНТех, КАИ

Расширение AVX (x=y=zmm)

1 / 27

Расширение AVX (x=y=zmm)

Александра Игоревна Кононова

МИЭТ

6 декабря 2020 г. актуальную версию можно найти на https://gitlab.com/illinc/arch-cs

Команды расширения AVX Пересылка данных (AVX)

Арифметика (векторы) Арифметика (части)

Преобразования и округление

Расширения x86

Основные различия FPU и AVX Регистры AVX: x=ymm и mxcsr

Общая схема кодирования команд (AMD64, том 3)

МИЭТ, СПИНТех, КАИ

Расширение AVX (x=y=zmm)

2 / 27

Расширения x86

MMX 1997, Intel, регистры mm0 mm7 (мантиссы r0 r7 FPU), целочисленные векторы, не рекомендуется

3DNow! 1998, AMD, улучшение MMX

SSE 1999, Intel, регистры xmm0 xmm7 (64 до xmm15): 128 = 4 float

SSE2 2000, Intel, xmmi как 2 double

SSE3 2004, Intel, новые команды

SSSE3 2006, Intel, упакованные целые

SSE4 2007, Intel, новые команды, " не рекомендуется

AVX 2008, Intel, регистры ymm0 ymm15: 256 = 8 float = 4 double, трёхадресные и четырёхадресные команды; AVX2 целочисленные

AES 2008, Intel, шифрование AES

XOP 2009, AMD, расширение AVX (не поддерживается Intel)

AVX-512 2013, Intel, zmm0 zmm31: 512 = 16 float = 8 double; Xeon, Core-X

Команды расширения AVX Пересылка данных (AVX)

Арифметика (векторы) Арифметика (части)

Преобразования и округление

Расширения x86

Основные различия FPU и AVX Регистры AVX: x=ymm и mxcsr

Общая схема кодирования команд (AMD64, том 3)

 

МИЭТ, СПИНТех, КАИ

 

Расширение AVX (x=y=zmm)

3 / 27

 

 

Основные различия FPU и AVX

 

 

 

FPU изначально сопроцессор

 

AVX расширение

 

 

 

 

 

 

Единообразная система команд

 

 

Семь систем именования (SSE-AVX2)

 

 

Высокая точность вычислений

 

 

Высокая скорость вычислений

 

 

Регистры организованы в стек

 

 

Регистры адресуются по именам

 

 

Все числа в стеке FPU представлены

 

В одних и тех же x=ymm-регистрах

 

 

в 10-байтовом формате расширенной

 

могут храниться разные типы:

 

точности (преобразование при

 

 

целочисленные (от байта и выше),

 

загрузке/выгрузке)

 

 

float и double

 

 

 

Загрузка данных только из памяти

 

Загрузка из памяти, регистров

 

 

или стека FPU

 

 

x=ymm и РОН

 

 

 

Не обязательно выравнивание

 

 

Выравнивание на 16 (искл. Unaligned)

 

Команды расширения AVX Пересылка данных (AVX)

Арифметика (векторы) Арифметика (части)

Преобразования и округление

Расширения x86

Основные различия FPU и AVX Регистры AVX: x=ymm и mxcsr

Общая схема кодирования команд (AMD64, том 3)

МИЭТ, СПИНТех, КАИ

Расширение AVX (x=y=zmm)

4 / 27

Регистры AVX: x=ymm и mxcsr

Команды расширения AVX Пересылка данных (AVX)

Арифметика (векторы) Арифметика (части)

Преобразования и округление

Расширения x86

Основные различия FPU и AVX Регистры AVX: x=ymm и mxcsr

Общая схема кодирования команд (AMD64, том 3)

V EX 2 f0xC4; 0xC5g

XOP = 0x8F

Поля V EX=XOP : R REX:R (Reg) X REX:X (Index) B REX:B

(R=M или Base)

imm8 может трактоваться как третий регистр

vvvv ещё регистр

всего до 4 операндов

L длина вектора:

0; xmm=128 L = 1; ymm=256 pp понижение разрядности и REP

Соседние файлы в папке АВС