
- •Тема 6. Архитектуры инструкций процессоров и их типы
- •6.1. Наборы инструкций ммх
- •6.2. Наборы инструкций 3dNow!
- •6.3. Наборы инструкций sse
- •6.4. Наборы инструкций sse2
- •6.5. Наборы инструкций sse3
- •6.6. Наборы инструкций sse4
- •6.7. Наборы инструкций sse4.1
- •6.8. Наборы инструкций sse4.2
- •6.9. Наборы инструкций avx
- •6.10. Наборы инструкций aes
6.8. Наборы инструкций sse4.2
Обработка строк
Эти инструкции выполняют арифметические сравнения между всеми возможными парами полей (64 или 256 сравнений!) из обоих строк, заданных содержимым xmm1 и xmm2/m128. Затем булевые результаты сравнений обрабатываются для получения нужных результатов. Непосредственный аргумент imm8 управляет размером (байтовые или unicode строки, до 16/8 элементов каждая), знаковостью полей (элементов строк), типом сравнения и интерпретацией результатов.
Ими можно производить в строке (области памяти) поиск символов из заданного набора или в заданных диапазонах. Можно сравнивать строки (области памяти) или производить поиск подстрок.
Все они оказывают влияние на флаги процессора: SF устанавливается если в xmm1 не полная строка, ZF — если в xmm2/m128 не полная строка, CF — если результат не нулевой, OF — если младший бит результата не нулевой. Флаги AF и PF сбрасываются.
6.9. Наборы инструкций avx
Advanced Vector Extensions (AVX) — расширение системы команд x86 для микропроцессоров Intel и AMD, предложенное Intel в марте 2008.
AVX предоставляет различные улучшения, новые инструкции и новую схему кодирования машинных кодов.
Улучшения:
Размер векторных регистров SIMD увеличивается с 128 (XMM) до 256 бит (регистры YMM0 — YMM15). Существующие 128-битные инструкции будут использовать младшую половину новых YMM регистров. В будущем возможно расширение до 512 или 1024 бит.
Неразрушающие операции. Набор инструкций AVX позволяет использовать любую двухоперандную инструкцию XMM в трёхоперандном виде без модификации двух регистров-источников, с отдельным регистром для результата. Например, вместо a = a + b можно использовать c = a + b, при этом регистр a остаётся неизменённым. AVX не поддерживает неразрушающие формы операций над обычными регистрами общего назначения, такими как EAX, но такая поддержка, возможно, будет добавлена в последующих расширениях.
Требования выравнивания данных для операндов SIMD в памяти ослаблены.
Новая система кодирования машинных кодов VEX предоставляет новый набор префиксов кода, которые расширяют пространство возможных машинных кодов. Добавлены инструкции с количеством операндов более трёх. Векторные регистры SIMD могут быть больше 128-ми бит.
Новые инструкции:
Также в спецификации AVX описана группа инструкций PCLMUL (Parallel Carry-Less Multiplication, Parallel CLMUL)
Применение:
Подходит для интенсивных вычислений с плавающей точкой в мультимедиа, научных и финансовых задачах. Увеличивает степень параллелизма и пропускную способность в вещественных SIMD вычислениях. Уменьшает давление (нагрузку) на регистры благодаря неразрушающим трёхоперандным операциям.
6.10. Наборы инструкций aes
Расширение системы команд AES (Advanced Encryption Standard) — расширение системы команд x86 для микропроцессоров, предложенное компанией Intel в марте 2008. Целью данного расширения является ускорение приложений, использующий шифрование и дешифрование по алгоритму AES. Сходное расширение PadLock engine существует в микропроцессорах от VIA Technologies.
Контрольные вопросы
Перечислите основные типы наборов инструкций, применяемых в ЭВМ.
Какие наборы инструкций используются при работе с графикой?
Какие инструкции использованы для шифрования данных?
Типы логических команд.
Охарактеризуйте команды переходов.