SIMD

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Ihminen (обсуждение | вклад) в 19:07, 18 сентября 2010 (орфография). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
Классификация по Флинну
  Одиночный поток команд
(single instruction)
Множество потоков команд
(multiple instruction)
Одиночный поток данных
(single data)
SISD
(ОКОД)
MISD
(МКОД)
Множество потоков данных
(multiple data)
SIMD
(ОКМД)
MIMD
(МКМД)

SIMD (англ. single instruction, multiple data — одиночный поток команд, множественный поток данных, ОКМД) — принцип компьютерных вычислений, позволяющий обеспечить параллелизм на уровне данных.

SIMD-компьютеры состоят из одного командного процессора (управляющего модуля), называемого контроллером, и нескольких модулей обработки данных, называемых процессорными элементами. Управляющий модуль принимает, анализирует и выполняет команды. Если в команде встречаются данные, контроллер рассылает на все процессорные элементы команду, и эта команда выполняется на нескольких или на всех процессорных элементах. Каждый процессорный элемент имеет свою собственную память для хранения данных. Одним из преимуществ данной архитектуры считается то, что в этом случае более эффективно реализована логика вычислений. До половины логических инструкций обычного процессора связано с управлением выполнением машинных команд, а остальная их часть относится к работе с внутренней памятью процессора и выполнению арифметических операций. В SIMD компьютере управление выполняется контроллером, а «арифметика» отдана процессорным элементам.

SIMD-процессоры называются также векторными.

SIMD-расширения, используемые в процессорах архитектуры x86

  • MMX — Multimedia Extensions. Коммерческое название дополнительного набора инструкций, выполняющих характерные для процессов кодирования/декодирования потоковых аудио/видео данных действия за одну машинную инструкцию. Впервые появился в процессорах Pentium MMX.
  • MMX Extended — расширенный набор инструкций MMX, используемый в процессорах AMD и Cyrix.
  • 3DNow! — расширение набора команд MMX процессоров AMD, начиная с AMD K6-2.
  • 3DNow! Extended — расширение набора команд 3DNow! процессоров AMD, начиная с AMD Athlon.
  • SSE — набор инструкций, разработанный Intel, и впервые представленный в процессорах серии Pentium III как ответ на аналогичный набор инструкций 3DNow! от AMD, который был представлен годом раньше.
  • SSE2 — набор инструкций, разработанный Intel, и впервые представленный в процессорах серии Pentium 4.
  • SSE3 — третья версия SIMD-расширения Intel, потомок SSE, SSE2 и x87. Представлен 2 февраля 2004 года в ядре Prescott процессора Pentium 4.
  • SSSE3 — набор SIMD-инструкций, используемый в процессорах Intel Core 2 Duo.
  • SSE4 — новая версия SIMD-расширения Intel. Анонсирован 27 сентября 2006 года. Представлен в 2007 году процессорах серии Penryn.
  • AVX — анонсированная версия SIMD-расширения Intel, которая будет представлена в 2010 году в процессорах архитектуры Sandy Bridge.
Процессор MMX EMMX 3DNow! SSE E3DNow! SSE2 SSE3
Intel Pentium II +
Intel Celeron до 533 MHz +
Intel Pentium III + +
Intel Celeron 533—1400 MHz + +
Intel Pentium 4 + + + +/—*
Intel Celeron от 1700 MHz + + +
Intel Celeron D + + + +
Intel Pentium 4 eXtreme Edition + + + +/—*
Intel Pentium eXtreme Edition + + + +
Intel Pentium D + + + +
AMD K6 + +
AMD K6-2 + + +
AMD K6-III + + +
AMD Athlon + + + +
AMD Duron до 900 MHz + + + +
AMD Athlon XP + + + + +
AMD Duron от 1000 MHz + + + + +
AMD Athlon 64 / Athlon FX + + + + + + +/—*
AMD Sempron + + + + + +/—* +/—*
AMD Athlon 64 X2 + + + + + + +
VIA C3 + + +/—* +/—*