анди SSE копіює упаковані типи даних (дані одинарної точності з плаваючою точкою - подвійні слова) в і з пам'яті в 64-бітові або 128-бітові блоки. Однак, при обчисленні арифметичних або логічних операцій над упакованими даними, SSE працює паралельно над кожним подвійним словом укладеним у SIMD регістрі з плаваючою крапкою.
Нові SIMD-команди над цілими підпорядковуються угодами прийнятих в інструкціях MMX і працюють над даними в MMX регістрах, а не в 128-розрядних SIMD регістрах з плаваючою крапкою.
В
Модель виконання SIMD
Так як потокове розширення SSE підтримує операції над упакованими типами даних одинарної точності з плаваючою крапкою, і додаткові SIMD команди над цілими, підтримуються операції над упакованими типами даних (Байт, слово або подвійне слово). p> Цей підхід був обраний тому що більшість додатків обробки мультимедіа мають такі характеристики:
В· істотна паралельність;
В· широкий динамічний рівень, звідси базовані на змінних з плаваючою точкою;
В· регулярне та повторює вибірка шаблонів з пам'яті;
В· локалізовані повторюють операції виконуються над даними;
В· незалежний процес управління даними.
Потокове Розширення SIMD доступно з усіх режимів виконання: Захищеного режиму (Protected mode), реально адресуемого режиму (Real-address mode), і віртуального режиму 8086 (Virtual 8086 mode). br/>
Формат даних у пам'яті
У SSE вводитися новий упакований 128-розрядний тип даних який складається з чотирьох чисел одинарної точності з плаваючою крапкою. Біт 0 це найменше значущий - біт (LSB), і біт 127 це найбільше значущі - біт (MSB). Байти в новому форматі даних мають послідовні адреси пам'яті. Порядок як завжди трохи дивний, тобто байти з меншими адресами мають менше значення ніж байти з старшими адресами
Формат даних SIMD регістра з плаваючою точкою
Значення в SIMD регістрах з плаваючою точкою має той же формат, що і 128-розрядні величини в пам'яті. Є два режими доступу до пам'яті: 128-бітний і 32-бітний. Таблиця 2-1 показує точність і діапазон типу даних. Кодується тільки дрібна частина мантиси. Біт цілого буде 1 для всіх чисел, за винятком 0 і ненормованого обмеженого числа. Показник типу даних із звичайною точністю кодується в зміщений формат. br/>
Таблиця 2-1. Точність і діапазон SSE типу даних з плаваючою точкою
Тип Даних
Довжина
Точність
(у бітах)
Приблизний діапазон нормованого числа
Двійкове
Десяткове
З одинарної точністю
32
24
від 2 -126 до 2-127
від 1.18 * 10 -38 до 1.70 * 10 38
Таблиця 2-2 показує кодування для всіх класів дійсних чисел (тобто, нуль, ненормований обмежене число, нормоване обмежене число, і п‚Ґ) і NaN [5] для типу даних з одинарною точністю. Вона також показує формат для речових невизначених значень, тобто QNaN [6] і SNaN [7] які використовуються деякими функціями SSE для активізації обробника виключень.
При збереженні речових значень у пам'яті, значення з одинарної точністю зберігаються в пам'яті в 4 послідовних байтах. 128-бітний режим доступу використовується для 128-розрядної вибірки з пам'яті, 128-розрядної пересилання між SSE регістрами з плаваючою комою і всіма логічними, розпакування і арифметичними командами. 32-бітний режим доступу використовується для 32-розрядної вибірки з пам'яті, 32-розрядної пересилання між SSE регістрами з плаваючою комою і скалярними арифметичними командами.
В
Таблиця 2-2. Речові числа і кодування NaN
SIMD регістр стану та управління
Регістр стану і управління використовується для встановлення прапорів виявлення арифметичних винятків, прапорів режимів обробки арифметичних винятків, режиму округлення, режиму flush-to-zero і для перегляду прапора стану. Вміст цього регістра може бути завантаженими за допомогою інструкцій LDMXCSR і FXRSTOR і збережено в пам'яті з допомогою інструкцій STMXCSR і FXSAVE. p> Біти 0-5 (поле виявлення винятків) містять 6 прапорів, які служать ознаками детектування арифметичних SIMD винятків з плаваючою точкою (0-ні, 1-да). Виняток відбудеться тільки після наступної команди SSE. Потокове розширення SSE використовує тільки один прапор винятку для кожної виняткової ситуації. Тут не надається можливість для повідомлення про індивідуальних виняткових ситуаціях всередині упакованих даних. У ситуації, коли відбувається кілька ідентичних ...