Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

SSE5 (сокращенно Streaming SIMD Extensions версии 5 ) был SIMD набора команд расширения , предложенное AMD на 30 августа 2007 года в качестве дополнения к 128-битной SSE основных инструкциям в AMD64 архитектуре.

AMD решила не реализовывать SSE5, как предлагалось изначально. В мае 2009 года AMD заменила SSE5 тремя меньшими расширениями набора инструкций, названными XOP , FMA4 и F16C , которые сохраняют предлагаемую функциональность SSE5, но кодируют инструкции по-другому для лучшей совместимости с предлагаемым Intel набором инструкций AVX .

Три набора инструкций, производных от SSE5, были введены в ядро процессора Bulldozer , выпущенное в октябре 2011 года по 32-нм техпроцессу. [1]

Совместимость [ править ]

SSE5 расширения пучок AMD не включает в себя полный набор Intel «s SSE4 инструкций, что делает его конкурентом SSE4 , а не преемник.

Это усложняет разработку программного обеспечения. Рекомендуется, чтобы программа проверяла наличие расширений набора команд с помощью инструкции CPUID перед вводом пути кода, который зависит от правильного функционирования этих инструкций. Для максимальной переносимости оптимизированному приложению потребуются три пути кода: базовый путь кода для совместимости со старыми процессорами (от любого поставщика), отдельно оптимизированный путь кода Intel, использующий SSE4 или AVX, и отдельно оптимизированный путь кода AMD, использующий SSE5.

Из-за этого распространения тесты между процессорами Intel и AMD все чаще отражают умение или качество реализации различных путей кода, а не силу базовой платформы.

Улучшения SSE5 [ править ]

Предлагаемый набор инструкций SSE5 состоял из 170 инструкций (включая 46 базовых инструкций), многие из которых предназначены для улучшения однопоточной производительности. Некоторые инструкции SSE5 представляют собой инструкции с тремя операндами , использование которых увеличивает среднее количество инструкций за цикл, достижимое с помощью кода x86 . [2] Избранные новые инструкции включают: [3]

  • Комбинированные инструкции умножения-накопления (FMACxx)
  • Инструкции целочисленного умножения-накопления (IMAC, IMADC)
  • Инструкции перестановки (PPERM, PERMPx) и условного перемещения (PCMOV)
  • Инструкции по контролю точности, округлению и преобразованию

AMD утверждает, что SSE5 обеспечит резкое улучшение производительности, особенно в приложениях для высокопроизводительных вычислений (HPC), мультимедиа и компьютерной безопасности , включая 5-кратное увеличение производительности для шифрования Advanced Encryption Standard (AES) и 30% -ное увеличение производительности для дискретного косинусного преобразования ( DCT) используется для обработки видеопотоков. [2]

Для получения более подробной информации см. Наборы инструкций, разделенные далее.

Редакция 2009 г. [ править ]

Спецификация SSE5 включала предлагаемое расширение общей схемы кодирования инструкций x86 , чтобы позволить инструкциям иметь более двух операндов. В 2008 году Intel объявила о своем запланированном наборе инструкций AVX, который предлагает другой способ кодирования инструкций с более чем двумя операндами. Две предложенные схемы кодирования, SSE5 и AVX, взаимно несовместимы, хотя схема AVX имеет определенные преимущества по сравнению со схемой SSE5: самое главное, AVX имеет много места для будущих расширений, включая большие размеры векторов.

В мае 2009 года AMD опубликовала пересмотренную спецификацию запланированных будущих инструкций. Эта версия изменяет схему кодирования, чтобы сделать ее совместимой со схемой AVX, но с другим байтом префикса, чтобы избежать перекрытия между инструкциями, введенными AMD, и инструкциями, введенными Intel.

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

  1. XOP : инструкции умножения-накопления целочисленных векторов, горизонтальное сложение целочисленных векторов, сравнение целочисленных векторов, инструкции сдвига и поворота, команды перестановки байтов и условного перемещения, извлечение дроби с плавающей запятой.
  2. FMA4 : вектор с плавающей запятой умножение-накопление .
  3. F16C : преобразование с плавающей запятой половинной точности .

Эти новые наборы инструкций включают поддержку будущих расширений для размера вектора от 128 бит до 256 бит. Из этих предварительных спецификаций неясно , будет ли процессор Bulldozer поддерживать 256-битные векторные регистры (регистры YMM). [4]

См. Также [ править ]

  • списки инструкций x86
  • Слитное умножение – сложение

Ссылки [ править ]

  1. ^ Хруска, Joel (14 ноября 2008). «AMD Fusion перенесена в 2011 год» . Ars Technica .
  2. ^ a b Вэнс, Эшли (30 августа 2007 г.). «AMD планирует однопоточное ускорение с расширениями x86» . Реестр .
  3. ^ "128-битный набор инструкций SSE5" . Центр разработчиков AMD . Архивировано из оригинала на 15 января 2008 года . Проверено 28 января 2008 года .
  4. ^ «Руководство программиста архитектуры AMD64, том 6: 128-битные и 256-битные инструкции XOP и FMA4» (PDF) . AMD . 1 мая 2009 г.

Внешние ссылки [ править ]

  • Новый набор инструкций SSE: AMD анонсирует SSE5 , AnandTech
  • Руководство программиста по архитектуре AMD64, том 6: 128-битные и 256-битные инструкции XOP и FMA4
  • AMD и Intel несовместимы - что делать? Форумы разработчиков AMD