Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
36. Технологія ММХ
MMX (Multimedia Extensions - мультимедійні розширення) - комерційна назва додаткового набору інструкцій, які виконують характерні для процесів кодування / декодування потокових аудіо / відео даних дії за одну машинну інструкцію. Вперше з'явився в процесорах Pentium MMX. Розроблений в лабораторії Intel в Хайфі, Ізраїль, в першій половині 1990-х.
Регістри MMX
Розширення MMX включає в себе вісім 64-бітних регістрів загального користування MM0-MM7. Для сумісності із способами збереження стану процесора в існуючих ОС Intel була змушена об'єднати в програмній моделі процесора вісім регістрів MMX з мантиса восьми регістрів FPU (Математичний співпроцесор). Апаратно це можуть бути різні пристрої, але з точки зору програміста - це одні й ті ж регістри. Таким чином, не можна одночасно користуватися командами Математичного співпроцесора і MMX.
Типи даних MMX
Команди технології MMX працюють з 64-розрядними цілочисловими даними, а також з даними, упакованими в групи (вектори) загальною довжиною 64 біта. Такі дані можуть знаходитися в пам'яті або у восьми MMX-регістрах.
Команди технології MMX працюють із наступними типами даних:
упаковані байти (вісім байтів в одному 64-розрядному регістрі) (англ. packed byte);
упаковані слова (чотири 16-розрядних слова в 64-розрядному регістрі) (packed word);
упаковані подвійні слова (два 32-розрядних слова в 64-розрядному регістрі) (packed doubleword);
64-розрядні слова (quadword).
Синтаксис
MMX-команди мають наступний синтаксис: instruction [dest, src] Тут instruction - ім'я команди, dest позначає вихідний операнд, src - вхідний операнд.
У систему команд введено 57 додаткових інструкцій для одночасної обробки декількох одиниць даних. Більшість команд мають суфікс, який визначає тип даних і використану арифметику:
US (unsigned saturation) - арифметика з насиченням, дані без знака.
S або SS (signed saturation) - арифметика з насиченням, дані зі знаком. Якщо у суфіксі немає ні S, ні SS, використовується циклічна арифметика (wraparound).
B, W, D, Q вказують тип даних. Якщо у суфіксі є дві з цих букв, перша відповідає вхідного операнд, а друга - вихідному.
Нові інструкції включають наступні групи:
Команди пересилання даних (Data Transfer Instructions) між регістрами MMX і цілочисловими регістрами і пам'яттю;
Команди перетворення типів
Арифметичні операції (Arithmetic Instructions), що включають додавання і віднімання в різних режимах, множення і комбінацію множення і складання;
Команди порівняння (Comparison Instructions) елементів даних на рівність чи за величиною;
Логічні операції (Logical Instructions) - І, І-НІ, АБО і що виключає АБО, що виконуються над 64 бітною операндами;
зсувні операції (Shift Instructions) логічні і арифметичні;
Команди керування станом (Empty MMX State) очищення MMX - установка ознак порожніх регістрів у слові тегів.
Інструкції MMX не впливають на прапори умов. Регістри MMX, на відміну від регістрів FPU, адресуються фізично, а не щодо TOS. Будь-яка інструкція MMX обнуляє поле TOS регістра стану FPU. Інструкції MMX доступні з будь-якого режиму процесора.