роцесора забезпечуються тільки за їхньої підтримки на рівні використовуваних додатків. Сьогодні більшість компаній, що займаються розробкою програмного забезпечення, модифікували додатки, пов'язані з обробкою графіки і звуку, що дозволило у більш повній мірі використовувати можливості SSE. Наприклад, графічний додаток Adobe Photoshop підтримує інструкції SSE, що значно підвищує ефективність використання оснащених SSE процесорів. Підтримка інструкцій SSE вбудована в DirectX 6.1 і в самі останні відео та аудіо-драйвери, що поставляються з операційними системами Windows 98 Second Edition, Windows Me, Windows NT 4.0 (з пакетом оновлень 5 або більш пізнім), Windows 2000, Windows Vista, Windows 7.
Інструкції SSE є розширенням технологій MMX, а SSE2 - розширенням інструкцій SSE. Таким чином, процесори, підтримуючі SSE2, підтримують також SSE, а процесори, що підтримують інструкції SSE, у свою чергу, підтримують оригінальні команди MMX. Це означає, що стандартні додатки MMX можуть виконуватися практично на будь-яких системах.
Перші процесори виробництва AMD з підтримкою розширень SSE3-це 0,09-мікронні версії Athlon 64, а також всі версії двоядерних процесорів Athlon 64 X2.
Загальне уявлення про SSE
SSE забезпечує інструкції для керування кешуванням всій MMX технології і 32-бітових типів даних. Ці інструкції включають можливість запису даних в пам'ять без "Засмічення" кеша [1], і можливість упреждающей вибірки коду/даних до їх використання.
Потокове Розширення SIMD забезпечує наступні нові можливості при програмуванні обладнання IA [2]:
В· Вісім SIMD-регістрів з плаваючою точкою (XMM0 - XMM7). p> В· Тип даних SIMD (Упаковані числа одинарної точності з плаваючою крапкою) - 128-біт. p> В· Набір команд SSE. br/>
SIMD-регістри з плаваючою точкою
SSE містить вісім 128-розрядних регістрів загального призначення, кожен з них може бути безпосередньо адресований. Так як ці регістри нові, то для використання потребують підтримки операційної системи.
SIMD-регістри з плаваючою точкою містять упаковані 128-розрядні дані. Команди SSE звертається до SIMD-регістрів з плаваючою точкою використовуючи реєстрові імена XMM0 і до XMM7. SIMD-регістри з плаваючою точкою можуть бути використані для обчислень над даними; але не можуть бути використані для адресації пам'яті. Адресація виконується за допомогою визначених у IA режимів адресації і регістрів загального призначення (EAX, EBX, ECX, EDX, EBP, ESI, EDI і ESP).
Також вводиться новий регістр контролю/стану MXCSR, він використовується для маскування і демаскування обробки числових виняткових ситуацій, для визначення режиму округлення, для установки режиму скидання в нуль, і для перегляду стану прапорів.
Якщо відбулося зникнення порядку (underflow), а поле flush-to-zero (FZ біт 15) регістра MXCSR встановлено в 1, то процесор виконує наступні дії:
В· повертає нульове значення в якості результату, привласнюючи йому знак істинного результату
В· встановлює в 1 біти 4 і 5 регістра MXCSR (прапори виявлення винятків зникнення порядку і неточного результату).
Зазначені дії виконуються в тому випадку, якщо виключення underflow маскировано (біт 11 регістра MXCSR встановлений в 1). При такому режимі збільшується швидкість роботи програм, в яких часто відбувається зникнення порядку результату. Досягається це, однак, ціною зниження точності обчислень. [3]
MMX регістри фізично реалізовані на стандартних для архітектури Intel 80-розрядних регістрах даних з плаваючою крапкою. Тобто, перехід від операцій MMX до операцій з плаваючою точкою вимагає запуску команди EMMS. Але так як SIMD-регістри з плаваючою точкою є окремим регістровим файлом, то команди MMX і команди з плаваючою точкою можуть бути змішані з командами SSE без виконання спеціальних інструкцій таких як EMMS.
Тип даних SIMD з плаваючою точкою
Основний тип даних SSE це 128-розрядне значення, що містить чотири послідовно розташованих ("Упакованих") 32-розрядних числа одинарної точності з плаваючою крапкою (single-precision floating-point (SPFP))
Кожне 32-розрядне число з плаваючою точкою має 1 знаковий біт, 8 бітів порядку і 23 біта мантиси, що відповідає стандарту IEEE-754 [4] на формат подання чисел одинарної точності з плаваючою комою (SPFP-чисел). p> Даний формат збережений і в процесорах починаючи з Pentium III, однак для упакованих чисел з плаваючою точкою використовується представлення в 32-розрядному форматі з одинарної точністю. Тому в окремих випадках результати обчислень з плаваючою точкою в архітектурі х87 можуть відрізнятися від результатів таких же обчислень, використовують нові SSE SPFP-команди.
Нові команди SIMD над цілими можуть працювати над типами даних складаються з упакованих байт, слів або подвійних слів. Нові команди попередньої вибірки працюють над даними розмір яких від 32 байт і вище.
Ком...