ЭВМ. Расширение системы команд Streaming simd extension (sse, sse2, sse3, sse4)

В 1997 году появляется процессор Intel Pentium ММХ с некоторыми встроенными средствами поддержки мультимедиа. Основная ставка Intel в этом процессоре — ускоренная обработка изображения и аудиоданных. Технические характеристики сильно не отличались от Intel Pentium; были добавлены новые инструкции, и повышена максимальная тактовая частота до 233 МГц. В зависимости от контекста, MMX может означать multi-media extensions (мультимедийные расширения) или matrix math extensions (матричные математические расширения).

Технология MMX использовалась в старших моделях процессоров Pentium пятого поколения (рис.1) в качестве расширения

Рис. 1. Вид процессора Intel Pentium MMX сверху и снизу.

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

В архитектуре процессоров MMX есть два основных усовершенствования. Первое, фундаментальное, состоит в том, что все микросхемы MMX имеют больший внутренний встроенный кэш , чем их собратья, не использующие эту технологию. Это повышает эффективность выполнения каждой программы и всего программного обеспечения независимо от того, использует ли оно фактически команды MMX. Другое усовершенствование MMX состоит в расширении набора команд процессора 57 новыми командами, а также во введении новой возможности выполнения команд, называемой одиночный поток команд—множественный поток данных (Single Instruction—Multiple Data, SIMD).

В современных мультимедийных и сетевых приложениях часто используются циклы; хотя они занимают около 10% (или даже меньше) объема полного кода приложения, на их выполнение может уйти до 90% общего времени выполнения.

SIMD позволяет одной команде осуществлять одну и ту же операцию над несколькими данными, подобно тому как преподаватель, читая лекцию, обращается ко всей аудитории , а не к каждому студенту в отдельности.

Технология SIMD позволяет ускорить выполнение циклов при обработке графических, анимационных, видео- и аудиофайлов; в противном случае эти циклы отнимали бы время у процессора. Intel также добавила 57 новых команд, специально разработанных для более эффективной обработки звуковых, графических и видеоданных. Эти команды предназначены для выполнения с высокой степенью параллелизма последовательностей, которые часто встречаются при работе мультимедийных программ. Высокая степень параллелизма в данном случае означает, что одни и те же алгоритмы применяются ко многим данным, например к данным в различных точках при изменении графического изображения.

18 стр., 8741 слов

Инструкция по выполнению работы На выполнение экзаменационной ...

... Шарыгин дал пощечину своему товарищу Аврамову. (2)Дело было так. (3)На классной стене висело расписание уроков. (4)Его не замечали до тех пор, пока надзиратель не обратил внимания на то, что ... 1 задания (С1), требующего развернутого ответа (сочинение-рассуждение). Записывайте ответ на это задание на отдельном бланке. Советуем выполнять задания в том порядке, в котором они даны. Для экономии времени ...

Такие компании, как AMD и Cyrix, лицензировали у Intel технологию MMX и реализовали ее в собственных процессорах. В феврале 1999 года Intel представила общественности процессор Pentium III, содержащий обновление технологии MMX, получившей название: SSE (Streaming SIMD Extensions — потоковые расширения SIMD).

Общие сведения

SSE

SSE разработаны компанией Intel и были впервые применены в процессоре Intel Pentium III, с ядром Katmai. Отсюда, изначально носили название KNI (Katmai New Instructions).

Технология SSE позволила преодолеть проблемы MMX — при использовании MMX невозможно было одновременно использовать инструкции сопроцессора, так как его регистры использовались для MMX и работы с вещественными числами.

В общем случае, к архитектуре процессора добавляется ряд самих инструкций и несколько 128-битных регистров с различной интерперетациейинтерпретацией. Тем не менее, хотя изначально каждый регистр трактуется как два значения с плавающей точкой двойной точности (2*64-бит), операции могут применять практически ко всем типам , «помещающимся» в 16 байт.

Это означает, например, что появляется возможность одновременно сложить или умножить с помощью всего одной инструкции два операнда из четырех чисел с плавающей точностью одинарной точности, двух — с двойной, двух 64-битных целочисленных, 16 8-битных целых и тп.т.п.

Таким образом, для получения максимальной отдачи от SSE, следует использовать такие структуры данных ,чтобыданных, чтобы они максимально укладывались в эти 128-битные регистры. Если это не удается сделать изначально, то среди SSE существуют и специальные для этих целей инструкции.

Эволюция наборов SIMD — инструкций

SSE-расширение

Новые 70 команд SSE-расширения (Streaming SIMD ExtensionExtensions) делятся на 4 категории:

  • SIMD-команды обработки данных в формате с плавающей запятой одинарной точности (SPFP-команды);
  • ·дополнительные SIMD-команды для обработки целочисленных данных;
  • команды управления кэшированием;
  • команды сохранения и восстановления состояния процессора.

SPFP-команды используют 8 новых 128 разрядных регистров (ХММ-регистры) и новый тип данных – 128-разрядное значение, содержащее 4 последовательно расположенных («упакованных») 32-разрядных чисел с плавающей запятой одинарной точности. При выполнении инструкций с ХММ традиционное оборудование FPU/MMX не используется, что позволяет эффективно смешивать инструкции SPFP с инструкциями над операндами с плавающей точкой.

Большинство SPFP-команд имеют два операнда. Данные, содержащиеся в первом операнде, после выполнения команды , как правило, замещаются результатами, а данные, содержащиеся во втором операнде, остаются неизменными.

SPFP-команды поддерживают два типа операций над упакованными данными с плавающей запятой – параллельные и скалярные. Параллельные операции выполняются над четырьмя 32-разрядными элементами данных, упакованными в каждый 128-разрядный операнд.

13 стр., 6038 слов

Параллелизм как способ параллельной обработки данных

... процессорах параллельной машины. Распределением данных между процессорами занимается программа. Векторизация или распараллеливание в этом случае чаще всего выполняется уже на этапе компиляции – перевода исходного текста программы в машинные команды. ... программные системы, реализующие тем или иным способом параллельную обработку данных на многих вычислительных узлах. Идея распараллеливания вычислений ...

Скалярные операции выполняются над младшими (занимающие разряды 0–31) элементами данных двух операндов. Остальные три элемента данных не изменяются.

В расширение SSE включены дополнительные SIMD-команды для работы с целочисленными данными. Эти новые команды расширяют возможности существующего набора команд технологии ММХ. Они выполняют SIMD-операции над несколькими целочисленными данными, упакованными в 64-разрядные группы, загружают и хранят упакованные данные в 64-разрядных ММХ-регистрах.

Кроме того, в SSE введены команды нового типа, обеспечивающие:

  • управление кэшированием данных с целью повышения эффективности использования кэш-памяти и сокращения числа обращений к основной памяти;
  • упреждающее кэширование данных с целью организации параллельной работы конвейера команд и обмена с памятью.

Первая группа команд выполняет запись данных из ММХ (ХММ) регистра в память, минуя кэш. Вторая – обеспечивает запись данных из памяти в кэш различных уровней.

Кроме ХММ-регистров в микропроцессоре Pentium III появился новый регистр состояния и управления MXCSR. Для работы с этими регистрами требуется поддержка, как со стороны процессора, так и со стороны операционной системы. Чтобы прикладные программы и ОС могли сохранять и восстанавливать состояния новых компонентов процессора , введено несколько команд управления. Первая группа команд управления обеспечивает сохранение в памяти содержимого регистра МХCSR и наоборот – загружает слово состояния из памяти в регистр MXCSR. Вторая группа – сохраняет в памяти состояние процессора (состояние регистров данных FPU, MMX-регистров, ХММ-регистров) и восстанавливает ранее сохраненное состояние процессора.

Расширения SSE2, SSE3, SSSE3, SSE4

Расширение SSE2,

Расширение SSE2

Расширение SSE3, Расширение SSSE3, Расширение SSE4.1, Расширение SSE4.2

Ни одна из SSE4 инструкций не работает с 64-х битными ММХ-регистрами , только с 128-ми битными ХММ-регистрами.

Заключение

Новые технологии SSE позволяют более эффективно работать: с трехмерной графикой, потоками аудио- и видеоданных (DVD-воспроизведение), а также приложениями распознавания речи. В целом SSE обеспечивает следующие преимущества: более высокое разрешение/качество при просмотре и обработке графических изображений; улучшенное качество воспроизведения звуковых и видеофайлов, а также одновременное кодирование и декодирование форматов в мультимедийных приложениях; уменьшение загрузки процессора и повышение точности/скорости реагирования при выполнении программного обеспечения для распознавания речи.

  1. http://megapredmet.ru/2-1034.html

    33 стр., 16064 слов

    Архитектура серверов корпоративных баз данных

    ... реферате будут рассмотрены особенности архитектуры RISC процессоров фирм DEC, Hewlett-Packard и Bull и особенности построения на их основе многопроцессорных SMP серверов ... распределять потоки между процессорами. В случае MPP каждый процессор имеет собственную память и шину памяти. Преимуществом такой ... в кластере могут обращаться к отдельным файлам данных как к локальным; Высокая готовность. Если ...

  1. http://5fan.ru/wievjob.php?id=41317

  1. http://dan.guru.ru/pub/intel/sse/index.htm

  1. https://habr.com/post/274605/

  1. https://ru.wikipedia.org/wiki/SSE