Они дополняют друг друга.
Каждое новое расширение набора команд добавляет новые инструкции и, в конечном итоге, новую модель программирования (например, новые регистры).
Ни один из них не является устаревшим, исключение инструкций практически невозможно из соображений совместимости. Однако некоторые дополнительные расширения могут отсутствовать или быть удалены из новых моделей (например, FMA4 AMD), если они не очень широко распространены.
Некоторые из них являются рудиментарными, все, что можно сделать, например, с FPU и MMX, можно сделать более эффективно с SSE +.
Они не являются взаимоисключающими в том смысле, что вы можете использовать тот или иной, в конце концов, это инструкции, а не режимы работы (например, реальный и защищенный режимы).
Единственный возможный «конфликт» - это между MMX и FPU, поскольку они разделяют нижнюю часть одного и того же набора регистров, но имеют другую модель программирования.
Новые векторные регистры выросли со 128 бит до 256 бит и до 512 бит, каждый раз, когда предыдущие регистры становились младшей частью нового единицы.
Вы можете использовать их все вместе, они предлагают конкретную аппаратную поддержку, реализующую простые операции.
Они похожи на кубики Лего, вы ограничены только вашим воображением (или фантазией дизайнеров).
Вот простой список расширений этого набора инструкций.
Перечислены только некоторые функции, полную информацию см. На Intel Manual Vol1 из глав с 9 по 14.
См. Также https://hjlebbink.github.io/x86doc/ для оглавления тома Intel. 2 (справочник по набору инструкций) со списком расширений, добавляющих инструкции к этому ручному вводу.
MMX
Представьте восемь 64-битных регистров (MM0-MM7) и инструкции для работы с восемью знаковыми / беззнаковыми байтами, четырьмя знаковыми / беззнаковыми словами, двумя знаковыми / беззнаковыми двойными словами.
3DNow!
Добавьте в MMX поддержку операндов с плавающей запятой одинарной точности. Поддерживается несколько операций, например сложение, вычитание, умножение.
SSE
Представьте восемь / шестнадцать 128-битных регистров (XMM0-XMM7 / 15) и инструкции для работы с четырьмя операндами одинарной точности с плавающей запятой. Также добавьте целочисленные операции к регистрам MMX. (Целочисленная MMX-часть SSE иногда называется MMXEXT и была реализована на нескольких процессорах сторонних производителей без регистров xmm и части SSE с плавающей запятой.)
SSE2
Представляет инструкцию для работы с двумя операндами с плавающей запятой двойной точности и упакованными целыми числами типа байт / слово / двойное слово / qword в 128-битных регистрах xmm.
SSE3
Добавьте несколько различных инструкций (в основном с плавающей запятой), включая специальный вид невыровненной загрузки (lddqu
), который был лучше на Pentium 4, инструкцию синхронизации, горизонтальное добавление / добавление.
SSSE3
Снова разнообразный набор инструкций, в основном целочисленный. Первое перемешивание, которое берет свой управляющий операнд из регистра вместо жестко запрограммированного (pshufb
). Больше горизонтальной обработки, перемешивания, упаковки / распаковки, сложения и добавления байтов, а также некоторых специализированных целочисленных операций добавления / распаковки.
SSE4 (SSE4.1, SSE4.2)
Добавьте множество инструкций. Заполните множество пробелов, предоставив минимальные и максимальные значения, а также другие операции для всех целочисленных типов данных (особенно 32- битовое целое число отсутствовало), где ранее целое число min было доступно только для беззнаковых байтов и подписанных 16-битных. Также масштабирование, округление FP, смешивание, операции линейной алгебры, обработка текста, сравнения. Также невременная нагрузка для чтения видеопамяти или копирования ее обратно в основную память. (Ранее были доступны только магазины NT.)
AESNI
Добавьте поддержку ускорения симметричного шифрования / дешифрования AES.
AVX Добавьте восемь / шестнадцать 256-битных регистров (YMM0-YMM7 / 15).
Поддержка всех предыдущих типов данных с плавающей запятой. Три инструкции операнда.
FMA
Добавить слитые, умножить Сложить и соотнести инструкции.
AVX2
Добавьте поддержку целочисленных типов данных.
AVX512F
Добавить восемь / тридцать два 512 бит регистры (ZMM0-ZMM7 / 31) и восемь 64-битных регистров маски (k0-k7). Увеличьте ширину большинства предыдущих инструкций до 512 бит. Дополнительные части AVX512 добавляют инструкции для экспонент и обратных чисел (AVX512ER), предварительной выборки разброса / сбора данных (AVX512PF), обнаружения конфликта разброса (AVX512CD), сжатия, расширения.
IMCI (Intel Xeon Phi)
Ранняя разработка AVX512 для сопроцессора Intel Xeon Phi первого поколения (Knight's Corner).
person
Community
schedule
18.07.2015