Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Принцип функціонування технологія MMX та обробка даних
Технологія MMX була створена в результаті сумісних зусиль розробників архітектури процесорів Intel і програмістів. Були проведені дослідження широкого кола програм: обробки зображень, MPEG відео, синтезу музики, стиснення мови та її розпізнавання, ігрового, відеоконференційного і багатьох інших. В них виділялися підпрограми, в яких виконуються основні обчислення. Потім, за допомогою сучасних програмних засобів, вони були ретельно проаналізовані. В результаті цього аналізу було виявлене те загальне, що необхідно для ефективного виконання різних категорій програм. Їх основні характеристики: · дані цілого типу невеликої розрядності (наприклад: 8-розрядні графічні пікселі, 16-розрядна оцифровка звуку); · короткі цикли з високими коефіцієнтами повторюваності; · велика кількість операцій множення і алгоритми підсумовування, що вимагають інтенсивних обчислень; · операції з високим рівнем паралелізму. Технологія MMX була розроблена як набір базових цілочисельних команд, які зручно використовувати в різних мультимедійних і комунікаційних додатках. Основні риси цієї технології: архітектура - одна інструкція над багатьма даними (SIMD) 57 нових інструкцій вісім 64-розрядних регістрів MMX чотири нові типи даних Основою MMX є архітектура "одна інструкція над багатьма даними" (SIMD). Вона полягає в тому, що багато одиниць інформації обробляється однією командою одночасно, значно збільшуючи продуктивність. Технологія MMX включена в архітектуру процесорів Intel таким чином, що збережена повна сумісність з існуючими на той час операційними системами: MS DOS*, Windows* 3.1, Windows 95, OS/2* і поєднань. Це досягається за рахунок поєднанні регістрів цілочисельної арифметики загального призначення і регістра перебування з регістрами плаваючої арифметики і перебування відповідно. Отже, не введено нових регістрів для реалізації технології MMX. Це значить, що операційна система для збереження і відновлення регістрів при виконанні програм MMX використовує стандартні механізми, передбачені для плаваючої арифметики. Всі програми, написані раніше для процесорів з архітектурою Intel, виконуються на комп'ютерах з технологією MMX. Основний час при виконанні мультимедійних додатків займають короткі цикли з високими коефіцієнтами повторюваності, складові невелику частину від загального об'єму всіх команд. Переписування цих невеликих послідовностей кодів з використанням набору команд MMX дозволяє поліпшити характеристики додатків. Таким чином, технологія MMX дозволяє розробникам програмного забезпечення за порівняно короткий проміжок часу істотно поліпшити характеристики мультимедійних і комунікаційних додатків.
Як вже мовилося, в Pentium MMX додано 57 нових команд обробки даних і, відповідно - чотири нові типи даних. За одну операцію команда MMX обробляє 64-розрядне двійкове слово (так зване квадраслово, або QWord). Нові типи даних утворюються від упаковки в квадраслово звичних типів - байтів (по 8), слів (по 4) або подвійних слів (по 2). Четвертий тип є саме квадраслово. Таким чином, одна елементарна MMX-операція має справу або з одним квадрасловом, що схоже на звичну операцію великої розрядності, або з двома подвійними словами, чотирма словами або вісьма байтами, причому виконання відбувається одночасно і кожний елемент даних обробляється незалежно від інших. Подібні групові операції переважають під час обробки зображення (групи точок) і звуку (групи значень амплітуди). Набір MMX-команд складається з команд пересилки даних, упаковки/розпаковування, додавання/віднімання, множення, зсуву, порівняння і порозрядних логічних. Команди упаковки і додавання/віднімання можуть працювати в двох режимах: звичному, коли переповнювання розрядної сітки викликає "загортання" (wraparound) значення результату, і спеціальному, коли воно приводить до обмеження (clipping) результату до мінімально або максимально допустимого значення. Режим обмеження в термінології Intel називається Saturation (змішування) - в ньому особливо зручно виконувати змішування кольорів зображення або амплітуд звукових сигналів, оскільки при звичному переповнюванні результату не має ніякого значення. Команда множення представлена трьома видами: перші два виконують попарне множення чотирьох слів з вибором або старшої, або молодшої частини результату, а третій виконує операцію виду ab + cd для кожної пари з чотирьох слів операндів, що дуже зручно при обчисленні математичних рядів.
Команди зсуву реалізують логічний і арифметичний зсуви своїх операндів (арифметичний зсув відрізняється від логічного тим, що при зсуві вправо розряди, що звільнилися, заповнюються копією знакового розряду, а не нулями, від чого він придатний для множення/ділення знакових операндів на ступені двійки). Логічні порозрядні команди виконують операції І (AND), АБО (OR), АБО, що виключає (XOR), а також комбіновану команду І з інверсією одного з операндів (AND NOT), зручну для реалізації "зворотного вибору" по бітовій масці. Команди порівняння працюють дещо незвичайно в порівнянні із загальноприйнятою логікою: замість установки ознак для подальших команд переходу вони генерують одиничні бітові маски для тих операндів, які задовольняють умові, і нульові - для решти операндів. Подальші логічні порозрядні операції можуть виділити, погасити або якось інакше обробити відзмічені таким чином операнди, які в цьому випадку можуть бути точками зображення або відліками звукового сигналу. Серед нових команд є такі нестандартні операції, як додавання і віднімання з насиченням, упаковка, розпаковка, множення з додаванням, операції порівняння з утворенням маски результату. Використовуючи ці можливості, можна досягати ще більшого зростання продуктивності. Розглянемо приклад, аналоги якому можна знайти в найрізноманітніших додатках. Припустимо, нам необхідно відтворити два звукові ефекти одночасно. Для цього необхідно побайтово скласти оцифровані значення звуку, і якщо результат "зашкалює" в ту чи іншу сторону, то обмежити його по амплітуді. На мові С+ фрагмент коду виглядатиме наступним чином sum = snd1 + snd2; if (sum > 127) sum = 127; if (sum < - 128) sum = - 128; Після компіляції ця ділянка коду перетвориться на 7 інструкцій процесора x86. Якщо ж скористатися технологією MMX, то весь цей громіздкий код можна замінити однією-єдиною інструкцією paddsb mm0, mm1 яка до того ж виконає цю операцію відразу для пакету з 8 байтів даних. Неважко підрахувати, що для даного прикладу досягається прискорення виконання приблизно в 56 разів! Інший приклад, де інструкції MMX можуть дати значний виграш в продуктивності, - додавання двох зображень з використанням одного з кольорів в якості "прозорої" маски. Ця стандартна операція достатньо часто зустрічається в багатьох графічних додатках. Голубий колір фону довкола космічного корабля розглядається як прозорий при складанні зображень. Спеціальні інструкції порівняння з утворенням маски результату дозволяють виконати цю операцію не тільки пакетами по 8 байтів, але й уникнути галужень, а значить, і штрафів за їх неправильний прогноз. При цьому продуктивність при використанні процесора Pentium з технологією MMX зростає не менше, ніж у два рази. Як існуючі додатки і існуюча операційна система зберігатимуть значення нові 8 регістрів MMX, наприклад, при перемиканні задач, якщо вони нічого про це не знають? Виявляється, регістри МMX суміщені по розташуванню з регістрами плаваючої точки. Завдяки такому рішенню регістри MMX повністю вписуються в існуючу архітектуру.
|
||||||
Последнее изменение этой страницы: 2020-03-26; просмотров: 107; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.205.123 (0.007 с.) |