Особенности архитектуры микропроцессоров с технологией MMX и SSE. Примеры эффективного использования технологии MMX и SSE

Главной особенностью MMX -технологии является новый принцип обработки информации - обработка по схеме SIMD (SINgle INsTRuction - MultIPle Data: один поток команд - много потоков данных ® с помощью одной команды выполняется одна и та же операция сразу над несколькими операндами). Такой подход требует поддержки как со стороны системы команд и форматов данных, так и на аппаратном уровне.

В МП Pentium MMX появились 4 новых типа данных (рис.1).

Для хранения этих данных в МП были использованы 80-разрядные регистры процессора обработки чисел с плавающей точкой (рис.2).

 

Многофункциональное использование регистров FPU требовало, чтобы их содержимое сохранялось в памяти компьютера при переходе от обработки чисел с плавающей запятой к обработке данных MMX и обратно, что немного ухудшало производительность МП. Однако это позволило существовавшим в то время ОС использовать стандартные механизмы работы с регистрами FPU при сохранении и восстановлении регистров в процессе переключения задач и не потребовало доработок ОС.

 

В систему команд МП Pentium MMX были включены 57 новых инструкций. Их исполь-зование было призвано, во-первых, уменьшить время выполнения мультимедийных прило-жений, а во-вторых, минимизировать конфликты в конвейере, который становился все более многоступенчатым, что из-за конфликтов приводило к потерям в производительности.

 

Проиллюстрируем это на примере нескольких команд. Команда PADDSB "Сложение со знаком с насыщением" (рис.3) выполняет сложение одновременно 8 пар однобайтовых операндов. Кроме того, если при выполнении сложения произошло переполнение, то результатом операции будет максимально возможное в этом формате число. Это облегчает работу программиста.

 

Команда PMADDWD "Умножение с накоплением" эффективна при выполнении вычислений, характерных для обработки звуковой и графической информации. Она одновременно перемножает 4 операнда формата "слово" (16 разрядов), попарно складывает результаты умножений двух младших и двух старших байт и получает два 32-разрядных результата (рис.4).

Команда PMAXSB (реализована в блоке SSE МП Pentium III) выполняет нахождение максимума одновременно для восьми 8-разрядных операндов (рис.5). Она позволяет не только выполнить операцию пакетами по 8 байт, но и избежать ветвлений, а следовательно, и "штрафов" за их неправильное предсказание.

 

Технология MMX получила свое развитие в микропроцессоре Pentium III с появлением специального блока SSE (STRamINg SIMD Extension - потоковое SIMD-расширение) обработки информации пос хеме SIMD. Этот блок содержит отдельный регистровый файл из восьми 128-разрядных регистров (рис.6), что позволяет обрабатывать по схеме SIMD числа с плавающей запятой (четыре 32-разрядных числа).

знак: 1 разряд; порядок (смещенный): 8 р-дов; мантисса: 23 р-да.

 

Расширено и количество форматов чисел с фиксированной точкой, обрабатываемых по схеме SIMD:


  • 16 операндов х 8 разрядов;
  • 8 операндов х 16 разрядов;
  • 4 операнда х 32 разряда;
  • 2 операнда х 64 разряда.

Для обработки чисел новых форматов дополнительно введены 70 новых команд.

 

Блок SSE2, включенный в МП Pentium 4, реализует 144 новые команды. Из этих 144 инструкций 68 расширяют возможности старых SIMD-инструкций по работе с целыми числами, а 76 являются совершенно новыми. Среди последних - инструкции, позволяющие оперировать со 128-разрядными числами (как целыми, так и вещественными с двойной точностью). Операции SSE2 позволили повысить эффективность применения МП при реализации 3-х мерной графики и современных интернет-приложений, обеспечении сжатия и кодирования аудио- и видеоданных и ряда других применений. В результате производи-тельность процессора Pentium 4 для таких операций стала вдвое выше, чем Pentium III.

 

Отметим несколько новых по сравнению с MMX инструкций, вошедших в состав команд SSE/SSE2. Команда ADDSUBPS выполняет сложение 2го и 4го элементов с одинарной точностью с одновременным вычитанием 1го и 3го элементов. Эта инструкция полезна при работе с комплексными числами при использовании соответствующего типа переменных.

Еще одна команда - HADDPS - осуществляет горизонтальное сложение элементов с одинарной точностью. Первый результат является суммой 1го и 2го элементов 1го (исходного) операнда; 2й результат - суммой 3го и 4го элементов 1го операнда; 3й результат - суммой 1го и 2го элементов 2го операнда (операнда назначения) и, наконец, 4ый результат - суммой 3го и 2го элементов 2го операнда (рис.7).

 

Новые возможности в этом направлении обработки информации были обеспечены в технологии SSE3, внедренной в ядре Prescott процессора Pentium 4 добавлением набора из 13 инструкций, и в технологии SSE4 в микропроцессорах семейства INTel Core 2 Duo.




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: