![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/SIMD-ru.svg/langru-640px-SIMD-ru.svg.png&w=640&q=50)
SIMD
принцип компьютерных вычислений, позволяющий обеспечить параллелизм на уровне данных / Материал из Википедии — свободной encyclopedia
SIMD (англ. single instruction, multiple data — одиночный поток команд, множественный поток данных, ОКМД) — принцип компьютерных вычислений, позволяющий обеспечить параллелизм на уровне данных. Один из классов вычислительных систем в классификации Флинна.
Одиночный поток команд (single instruction) |
Множество потоков команд (multiple instruction) | |
---|---|---|
Одиночный поток данных (single data) |
SISD (ОКОД) |
MISD (МКОД) |
Множество потоков данных (multiple data) |
SIMD (ОКМД) |
MIMD (МКМД) |
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/3/38/SIMD-ru.svg/320px-SIMD-ru.svg.png)
SIMD-компьютеры состоят из одного командного процессора (управляющего модуля), называемого контроллером, и нескольких модулей обработки данных, называемых процессорными элементами. Управляющий модуль принимает, анализирует и выполняет команды. Если в команде встречаются данные, контроллер рассылает на все процессорные элементы команду, и эта команда выполняется на нескольких или на всех процессорных элементах. Каждый процессорный элемент имеет свою собственную память для хранения данных. Одним из преимуществ данной архитектуры считается то, что в этом случае более эффективно реализована логика вычислений. До половины логических инструкций обычного процессора связано с управлением выполнением машинных команд, а остальная их часть относится к работе с внутренней памятью процессора и выполнению арифметических операций. В SIMD-компьютере управление выполняется контроллером, а «арифметика» отдана процессорным элементам.
Векторные процессоры также использовали принцип SIMD, одной командой могли обрабатываться векторы размером до нескольких тысяч элементов.