Они дополняют друг друга.
Каждое новое расширение набора инструкций добавляет новые инструкции и, в конечном итоге, новую модель программирования (например, новые регистры).
Отсутствуют устаревшие, устаревшие инструкции почти невозможно сделать по соображениям совместимости. Однако некоторые дополнительные расширения могут отсутствовать или удаляться из более новых моделей (например, FMA4 AMD), если они не очень широко распространены.
Некоторые из них рудиментарны, но все, что можно сделать с помощью FPU и MMX, например, можно сделать более эффективно с помощью SSE +.
Они не являются взаимоисключающими в том смысле, что вы можете использовать тот или иной продукт, ведь они не являются инструкциями, а не режимами работы (например, реальный или защищенный режим).
Единственный возможный «конфликт» - между MMX и FPU, поскольку они разделяют нижнюю часть одного и того же набора регистров, но имеют другую модель программирования.
Новые векторные регистры выросли с 128 до 256 бит и до 512 бит, каждый раз, когда предыдущие регистры стали нижней частью новых.
Вы можете использовать все их вместе, они предлагают определенную аппаратную поддержку, реализующую простые операции.
Они, как кирпичи Lego, ограничиваются только вашим воображением (или воображением дизайнеров).
Здесь приведен простой список этих расширений набора инструкций.
только некоторые функции перечислены, для полной справки см Intel Manual Vol1 из главы 9 до 14.
Смотрите также https://hjlebbink.github.io/x86doc/ для оглавления тома 2 (набор инструкций ссылка) руководство компании Intel, со списком расширений которые добавили инструкции к этому руководству.
MMX
Введем восемь 64 битных регистров (MM0-mm7) и инструкции для работы с восемью подписанными/беззнаковых байтов, четыре подписанных/беззнаковых слов, два подписанных/без знака DWORDs.
3DNow!
Добавить поддержку операнда одинарной точности с плавающей запятой в MMX. Поддержка нескольких операций, например, сложение, вычитание, умножение.
SSE
Представьте восемь/шестнадцать 128-битовые регистры (XMM0-xmm7/15) и инструкции для работы с точечными операндами четыре одинарной точности с плавающей запятой. Также добавьте целочисленные операции в регистры MMX. (ММХ-целая часть SSE иногда называют MMXEXT, и был реализован на нескольких не-Intel процессоров без регистров XMM и точкой части плавающей из SSE.)
инструкций SSE2
Вводит работать с 2 операндов с плавающей запятой с двойной точностью и с заполненными байтами/словами/dword/qword целыми числами в 128-битных xmm-регистрах.
SSE3
Добавить несколько разнообразных инструкций (в основном с плавающей точкой), в том числе особого вида выровненных нагрузок (lddqu
), который был лучше на Pentium 4, инструкция синхронизации горизонтальной надстройки/саб.
SSSE3
Опять разнообразный набор инструкций, в основном целое число. Первая тасовка, которая берет свой управляющий операнд из регистра вместо жестко закодированного (pshufb
). Более горизонтальная обработка, перетасовка, упаковка/распаковка, mul + добавление байтов и некоторые специализированные целые add/mul.
SSE4 (SSE4.1, SSE4.2)
Добавить много инструкций: Заполнение большого количества пробелов, обеспечивая минимальные и максимальные и другие операции для всех целочисленных типов данных (особенно 32-разрядного целое число отсутствовало), где ранее целочисленный минимум был доступен только для неподписанных байтов и подписан 16-разрядный. Также масштабирование, округление FP, смешивание, операция линейной алгебры, обработка текста, сравнение. Также не временная нагрузка для чтения видеопамяти или копирование ее обратно в основную память. (Ранее только магазины NT были доступны.)
AESNI
Добавить поддержку для ускорения AES симметричного шифрования/дешифрования.
AVX Добавить восемь/шестнадцать 256 битовых регистров (YMM0-YMM7/15).
Поддержка всех предыдущих типов данных с плавающей точкой. Три операнда.
FMA
Добавить плавленый Multiply Добавить и коррелировали инструкции.
AVX2
Добавить поддержку для целочисленных типов данных.
AVX512F
Добавить восемь/тридцать два 512 битных регистров (ZMM0-ZMM7/31) и восемь 64-битного регистра маски (k0-k7). Продвигайте большинство предыдущих инструкций до 512 бит в ширину. Необязательные части инструкции по добавлению AVX512 для экспонент & взаимности (AVX512ER), предварительная выборка разброса/сбора (AVX512PF), обнаружение конфликтов рассеяния (AVX512CD), сжатие, расширение.
IMCI (Intel Xeon Phi)
Раннее развитие AVX512 для первого поколения Intel Xeon Phi (Рыцарский Corner) сопроцессора.
Сверху моей головы: никто не устарел; SSE - это серия, как и AVX; смешение SSE и AVX - не очень хорошая идея. Я уверен, что Wikipedia или официальные документы могут разрешить детали. – Jeff
@Jeff 3DNow! устарел – harold
Да, вы забыли SSE4a и XOP. –