SIMD
SIMD (англ. single instruction, multiple data — одиночний потік команд, множинний потік даних) — це елемент класифікації згідно з таксономією Флінна для паралельних процесорів, де до багатьох елементів даних виконується одна або однакові команди.
Одиночний потік інструкцій Single Instruction | Множинний потік інструкцій Multiple Instruction | |
Одиночний потік даних Single Data | SISD | MISD |
Множинний потік даних Multiple Data | SIMD | MIMD |
SIMD — це одна з головних умов, котра гарантує можливість паралельного виконання алгоритмів.
Використання
У сучасних персональних комп'ютерах дана архітектура проявляється у вигляді інтеграції до процесору спеціальних наборів інструкцій чи розширень команд (MMX, SSE, AVX тощо) для прискорення обробки певних видів обчислень. Також до ПК можуть встановлюватися окремі плати розширення (наприклад, відеокарти), котрих можна назвати представниками архітектури SIMD.
Приклади застосування
Під час обробки мультимедійної інформації, наприклад накладання фільтрів, необхідно виконувати однакові дії над кожним пікселем зображення — саме тому дана архітектура дуже широко використовується при обробці мультимедійної інформації.
- Векторний процесор — процесор, в якому операндами деяких команд можуть слугувати впорядковані масиви даних — вектори.
- GPU — орієнтація відеокарт — це обробка мультимедійної відеоінформації, яка найкраще відповідає представленню SIMD архітектури.
- Архітектура MAJC — багатоядерний та багатопотоковий мікропроцесор, від компанії Sun Microsystems, котрий був орієнтований на обробку мультимедійної інформації у мережі.
- Векторні розширення центрального процесора x86 та x86-64: в центральні процесори додавалися набори інструкцій для роботи з мультимедійними даними:
- MMX (Multimedia Extensions) - комерційна назва додаткового набору інструкцій, що виконують характерні для процесів кодування / декодування потокових аудіо / відео даних дії за одну машинну інструкцію.
- 3DNow! — розширення для набору інструкцій платформи X86, яку розробила компанія Advanced Micro Devices(AMD), що дозволяє виконувати прості векторні операції,.
- SSE (Streaming SIMD Extensions) — набір інструкцій, розроблених Intel для Pentium III, як відповідь на аналогічний набір інструкцій 3DNow! від AMD
- AVX (Advanced Vector Extensions) — розширення системи команд X86 для мікропроцесорів Intel та AMD, запропоноване компанією Intel у березні 2008.
- Векторні розширення NEON ARM процесорів — набір з 64- та 128-бітових SIMD інструкцій, що надає стандартизоване прискорення для засобів медіа та сигнальної обробки прикладних програм.
Див. також
Посилання
- http://dictionary.reference.com/browse/single+instruction/multiple+data
- http://arstechnica.com/features/2000/03/simd/
- http://parallel.ru/news/sun_majc.html
- http://www.arm.com/products/processors/technologies/neon.php