Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Інструкції мікропроцесора

.docx
Скачиваний:
17
Добавлен:
15.02.2015
Размер:
28.48 Кб
Скачать

SSE  — це SIMD набір інструкцій, розроблених Intel, і вперше представлених у процесорах серії Pentium III як відповідь на аналогічний набір інструкцій 3DNow! від AMD, який був представлений роком раніше.Технологія SSE дозволяла вирішити 2 основні проблеми MMX — при використанні MMX неможливо було одночасно використовувати інструкції співпроцесора, так як його регістри використовувалися для MMX і роботи з дійсними числами.

SSE включає в архітектуру процесора вісім 128-бітових регістрів (xmm0 до xmm7), кожен з яких трактується, як послідовність 4 значень із рухомою крапкою одиничної точності. SSE містить набір інструкцій, які виконують операції зі скалярними і упакованими типами даних.Перевага у швидкості обчислень досягається в тому випадку, коли необхідно виконати одну і ту саму послідовність дій над різними даними.Реалізація блоків SIMD виконується розпаралелюванням обчислювального процесу між даними. Тобто коли через один блок даних проходить по черзі багато потоків даних. Інструкції SSE містять 70 нових команд для роботи з графікою і звуком на додаток до існуючих команд ММХ. Фактично цей набір інструкцій окрім назви KNI мав ще і другу назву — ММХ-2. Інструкції SSE дозволяють виконувати операції з плаваючою комою, реалізовувані в окремому модулі процесора. У технологіях ММХ для цих цілей використовувався стандартний пристрій з плаваючою комою.

MMX - комерційна назва додаткового набору інструкцій, що виконують характерні для процесів кодування / декодування потокових аудіо / відео даних дії за одну машинну інструкцію. Вперше з'явився в процесорах Pentium MMX. Розроблений у першій половині 1990-х.

Набір MMX-команд

Набір MMX-команд складається з команд пересилки даних, упаковки / розпаковування, додавання / віднімання, множення, зсуву, порівняння та порозрядних логічних. Команди упаковки і додавання / віднімання можуть працювати в двох режимах: звичайному, коли переповнення розрядної сітки викликає "загортання" (wraparound) значення результату, і спеціальному, коли воно призводить до обмеження (clipping) результату до мінімально або максимально допустимого значення. Режим обмеження, в термінології Intel, називається Saturation (змішування) - в ньому особливо зручно виконувати змішування кольорів зображення або амплітуд звукових сигналів, оскільки при звичайному переповненні результат не має ніякого сенсу.

Команда множення представлена трьома видами: перші два виконують попарне множення чотирьох слів з вибором або старшої, або молодшої частини результату, а третій виконує операцію виду ab + cd для кожної пари з чотирьох слів операндів, що дуже зручно при обчисленні математичних рядів.

Команди зсуву реалізують логічний та арифметичний зсув своїх операндів (арифметичний зсув відрізняється від логічного тим, що при зсуві вправо звільнилися розряди заповнюються копією знакового розряду, а не нулями, від чого він придатний для множення / ділення знакових операндів на ступені двійки). Логічні поразрядні команди виконують операції І (AND), АБО (OR), виключаюче АБО (XOR), а також комбіновану команду І з інверсією одного з операндів (AND NOT), зручну для реалізації "зворотного вибору" по бітовій масці.Команди порівняння працюють дещо незвично в порівнянні із загальноприйнятою логікою: замість установки ознак для наступних команд переходу вони генерують одиничні бітові маски для тих операндів, які задовольняють умові, і нульові - для решти операндів. Наступні логічні поразрядні операції можуть виділити, погасити або якось інакше обробити відзначені таким чином операнди, які в цьому випадку можуть являти собою точки зображення або відліки звукового сигналу.

SSE3 — це  набір інструкцій, розроблених Intel, і представлених 2 лютого 2004 року у ядрі Prescott процесора Pentium 4. У 2005 AMD представила свою реалізацію SSE3 для процесорів Athlon 64.

Набір SSE3 містить 13 інструкцій: FISTTP (x87), MOVSLDUP (SSE), MOVSHDUP (SSE), MOVDDUP (SSE2), LDDQU (SSE/SSE2), ADDSUBPD (SSE), ADDSUBPD (SSE2), HADDPS (SSE), HSUBPS (SSE), HADDPD (SSE2), HSUBPD (SSE2), MONITOR (аналога у реалізації SSE3 від AMD немає), MWAIT (також відсутній у реалізації SSE3 від AMD).

Інструкції SSE3

  • ADDSUBPD (Add Subtract Packed Double).

  • ADDSUBPS (Add Subtract Packed Single).

  • HADDPD (Horizontal Add Packed Double).

  • HADDPS (Horizontal Add Packed Single).

  • HSUBPD (Horizontal Subtract Packed Double).

  • HSUBPS (Horizontal Subtract Packed Single).

  • FISTTP — перетворення дійсного числа в ціле з округленням в меншу сторону.

  • LDDQU — завантаження 128-біт не вирівняних даних із пам'яті в регістр xmm, з попередженням пересікання границі рядку кеша.

SSE2 — це SIMD набір інструкцій, розроблених Intel, і вперше представлених у процесорах серії Pentium 4.

SSE2 використовує вісім 128-бітних регістра (xmm0 до xmm7), що увійшли до архітектури x86 з вводом розширення SSE, кожний з яких трактується як послідовність 2 значень з плаваючою точкою подвійної точності. SSE2 включає в себе набір інструкцій, котрий виконує операції зі скалярними і упакованими типами даних. Також SSE2 містить інструкції для потокової обробки цілочислових даних в тих же 128-бітних xmm регістрах, що робить це розширення більш прийнятним для цілочислових обрахунків, ніж використання набору інструкцій MMX, що з'явилися набагато раніше.

Перевага у швидкості обчислень досягається в тому випадку, коли необхідно виконати одну і ту саму послідовність дій над різними даними.

Інструкції SSE2, що містять в собі 144 додаткові команди SIMD, були представлені в листопаді 2000 року разом з процесором Pentium 4. У SSE2 були включені всі інструкції попередніх наборів ММХ і SSE.

Потокові розширення SIMD (SSE) містять цілий ряд нових команд для виконання операцій з плаваючою комою і цілими числами, а також команди управління кеш пам'яттю. Нові технології SSE дозволяють ефективніше працювати з тривимірною графікою, потоками аудіо- і відеоданих (DVD-відтворення), а також додатками розпізнавання мови. В цілому SSE забезпечує наступні переваги:

  • вищий дозвіл/якість при перегляді і обробці графічних зображень;

  • поліпшена якість відтворення звукових і відеофайлів у форматі MPEG2, а також одночасне кодування і декодування формату MPEG2 в мультимедійних додатках;

  • зменшення завантаження процесора і підвищення точності/швидкості реагування при виконанні програмного забезпечення для розпізнавання мови