2012-10-18 4 views
9

В чем разница между SIMD и векторными процессорами? Мое настоящее понимание заключается в том, что векторная обработка является подмножеством SIMD. Но мне сказали, что «SIMD не ограничивается векторами», и я точно не знаю, что это значит. Какие-нибудь конкретные примеры?SIMD vs Vector architecture

Кроме того, почему скалярные архитектуры предпочтительнее векторных архитектур? Это потому, что их проще внедрять и программировать?

Я знаю, что у нас есть SISD (обычные 1-ядерные процессоры), SIMD (расширения SSE для одно/многоядерных процессоров), MIMD (errmm .. примерно что-то вроде MPI, я думаю, так кластеризация!) И MISD (который считается нецелесообразным/неосуществимым). Помимо этого, некоторые другие вещи, о которых я читал, это векторная обработка и суперскалярные архитектуры. Любые новые архитектуры, о которых я пропустил и должен знать? Благодаря!

ответ

9

Flynn's Taxonomy - это классификация компьютерных архитектур. Обработка векторной обработки таксономии Флинна относится к классу SIMD. Существуют архитектуры, которые не являются векторными процессорами, но попадают в класс SIMD. Примерами являются, например, Connection Machine и многие GPUs, где несколько процессоров выполняют одни и те же инструкции.

MMX, SSE, Altivec и т. Д. Попадают в векторную обработку, а также в класс SIMD. Существует много имен, относящихся к одной и той же концепции: параллелизм подсловов, SIMD малого размера, короткая векторная обработка, SIMD в регистре (SWAR) или чаще всего мультимедийные расширения.

Традиционно векторные процессоры, такие как Cray или STAR, использовали большие и переменные размеры векторов.

Superscalar - способ реализовать процессор, но не делает никаких утверждений о его наборе команд, как это делает таксономия Флинна.

3

Практический пример можно найти из сравнения ARM Neon vs ARM VFP. Первый - более классический SIMD, оценивающий 2,4,8 или 16 элементов параллельно (или, в основном, параллельно). Другой - это расширение с плавающей запятой, которое запрограммировано на последовательную итерацию по двум наборам последовательных регистров (возможно, позволяет пропустить 2), например. S0..S3, S8..S11 и записать результат на S12..S15.

Последняя архитектура обрабатывает операции с переменным числом (1-4) с той же инструкцией, используя 1-4 тактовых цикла для выполнения задачи. Если бы архитектура позволяла сканировать 128 операций на инструкцию, концептуальная разница между системами была бы более ясной - хотя оба они были бы векторными и SIMD-архитектурами.