Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
38. SSE (англ. Streaming SIMD Extensions, потокове SIMD-розширення процесора) - це SIMD (англ. Single Instruction, Multiple Data, Одна інструкція - багато даних) набір інструкцій, розроблених Intel, і вперше представлених у процесорах серії Pentium III як відповідь на аналогічний набір інструкцій 3DNow! від AMD, який був представлений роком раніше. Початкова назва цих інструкцій була KNI, що розшифровувалася як Katmai New Instructions (Katmai - назва першої версії ядра процесора Pentium III).
Технологія SSE дозволяла вирішити 2 основні проблеми MMX - при використанні MMX неможливо було одночасно використовувати інструкції співпроцесора, так як його регістри використовувалися для MMX і роботи з дійсними числами.
SSE включає в архітектуру процесора вісім 128-бітних регістрів (xmm0 до xmm7), кожен з яких трактується як послідовність 4 значень із плаваючою точкою одиничної точності. SSE включає в себе набір інструкцій, які виконують операції зі скалярними і упакованими типами даних.
Перевага у швидкості обчислень досягається в тому випадку, коли необхідно виконати одну і ту ж послідовність дій над різними даними.
Реалізація блоків SIMD виконується розпаралелюванням обчислювального процесу між даними, тобто, коли через один блок даних проходить по черзі багато потоків даних.
Нове в SSE:
Вісім 128-бітних регістрів XMM.
32-бітний MXCSR регістр прапорів.
128-бітний запакований одиничної точності із плаваючою точкою тип даних (тобто 4 числа з плаваючою точкою).
Інструкції над дійсними числами одинарної точності, а також збільшено набір SIMD операції над цілими числами.
Інструкції щоб зберігати і завантажувати стан регістра MXCSR.
Інструкції явною передвибірки даних, контролю кешування даних і контролю порядку операцій збереження.
Розширення інструкції CPUID. Використовується для отримання інформації про процесор. З її допомогою програма може визначити тип центрального процесора і його можливості (наприклад, які розширення підтримуються процесором).
Регістри: У SSE додані вісім 128-бітних регістрів, які називаються xmm0 .. xmm7.
Кожен регістр може містити:
Чотири 32-бітних значень з плаваючою точкою одиничної точності
Два 64-бітних значення з плаваючою точкою подвійної точності
Два 64-бітних цілих числа
Чотири 32-бітних цілих числа
Вісім 16-бітних цілих чисел
Шістнадцять 8-бітних цілих чисел або символів
SSE-команди
Команди для чисел з плаваючою точкою
Команди пересилання
Скалярні типи - MOVSS
Упаковані типи - MOVAPS, MOVUPS, MOVLPS, MOVHPS, MOVLHPS, MOVHLPS
Арифметичні команди
Скалярні типи - ADDSS, SUBSS, MULSS, DIVSS, RCPSS, SQRTSS, MAXSS, MINSS, RSQRTSS
Упаковані типи - ADDPS, SUBPS, MULPS, DIVPS, RCPPS, SQRTPS, MAXPS, MINPS, RSQRTPS
Команди порівняння
Скалярні типи - CMPSS, COMISS, UCOMISS
Упаковані типи - CMPPS
Перемішування та розпакування
Упаковані типи - SHUFPS, UNPCKHPS, UNPCKLPS
Команди для перетворення типів
Скалярні типи - CVTSI2SS, CVTSS2SI, CVTTSS2SI
Упаковані типи - CVTPI2PS, CVTPS2PI, CVTTPS2PI
Бітові логічні операції
Упаковані типи - ANDPS, ORPS, XORPS, ANDNPS
Команди для цілих чисел
Арифметичні команди
PMULHUW, PSADBW, PAVGB, PAVGW, PMAXUB, PMINUB, PMAXSW, PMINSW
Команди пересилання
PEXTRW, PINSRW
Інші
PMOVMSKB, PSHUFW
SSE2 (англ. Streaming SIMD Extensions 2, потокове SIMD-розширення процесора) - це SIMD (англ. Single Instruction, Multiple Data, Одна інструкція - багато даних) набір інструкцій, розроблених Intel, і вперше представлених у процесорах серії Pentium 4. SSE2 розширює набір інструкцій SSE з метою повністю витіснити MMX. SSE2 додала 144 нових команд до SSE, в якому було тільки 70 команд.
SSE2 використовує вісім 128-бітних регістрів (xmm0 до xmm7), включених в архітектуру x86 з вводом розширення SSE, кожний з яких трактується як 2 послідовних значення з плаваючою точкою подвійної точності.
SSE2 включає в себе набір інструкцій, які виконують операції зі скалярними і упакованими типами даних.
SSE2 містить інструкції для потокової обробки цілочислових даних в тих же 128-бітних xmm регістрах, що робить це розширення більш прийнятним для цілочислових обчислень, ніж використання набору інструкцій MMX, що з'явився набагато раніше.
SSE2 включає в себе дві частини - продовження SSE і продовження MMX.
Продовження SSE працює з дійсними числами.
SSE2 включає в себе ряд команд управління кешем, призначених для мінімізації забруднення кешу при обробці невизначених потоків інформації.
SSE2 включає в себе складні додатки до команд перетворення чисел