Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 1
з курсу „ Архітектура комп’ютерів”
Тема:
Призначення та особливості ММХ-технології.
Команди додавання/віднімання.
Львів – 2005
Мета роботи: Вивчити та детально ознайомитися із синтаксисом та використанням команд додавання та віднімання MMX.
Тереотичні відомості
Технологія MMX™ - розширена архітектура процесорів Іntel, призначена для підвищення швидкодії і якості роботи мультимедіа-программ.
Особливості технології MMX™
В основі технології MMX лежить розширення набору команд процесора з урахуванням потреб сучасних мультимедіа-програм.
Команди технології MMX працюють з новими типами даних: 64-розрядними цілочисельними даними, а також з даними, упакованими в групи (вектори) загальною довжиною 64 біта. Такі дані можуть знаходитися в пам'яті або у восьми MMX-регістрах. Ці регістри називаються MM0, MM1, ..., MM7.
Одна команда - багато даних
У технології MMX використана модель обробки даних SІMD (sіngle іnstructіon, multіple data, тобто одна команда - багато даних). Це підвищує продуктивність програм, оскільки одна команда обробляє кілька елементів даних одночасно. MMX-команди забезпечують рівнобіжну обробку декількох байтів, слів або подвійних слів.
Сумісність і архітектура
Технологія MMX розширює функціональні можливості процесорів архітектури Intel при повній сумісності з програмами для минулих поколінь процесорів. Все ПЗ, створене для раніше випущених процесорів, без жодних змін може виконуватися на MMX-процесорах.
MMX-команди "спілкуються" з ОС точно так, як і команди з плаваючою комою. Механізм збереження і відновлення стану обчислень з плаваючою комою застосований і для збереження (відновлення) стану програми, що використовує технологію MMX. Фактично технологія MMX не означає "нового" режиму роботи процесорів архітектури Intel: MMX-команди виконуються в тому ж режимі процесора, що і команди з плаваючою комою.
MMX-команди додавання і віднімання працюють з упакованими байтами і словами зі знаком і без знака, а також з упакованими подвійними словами зі знаком. Вони можуть використовувати як циклічну арифметику, так і арифметику з насиченням.
padd padds paddus
psub psubs psubus
Команди padds (арифметика з насиченням, дані зі знаком)
Команди padds складають елементи даних ( чибайти слова) вхідного і вихідного операнда. Якщо сума виходить за граничне значення припустимого діапазону, то результатом вважається це граничне значення.
Вхідний операнд може знаходитися в чи MMX-регістрі в пам'яті; вихідний операнд повинний знаходитися в MMX-регістрі.
Підтримуються команди: paddsb, paddsw.
Команди psubs (арифметика з насиченням, дані зі знаком)
Команди psubs віднімають елементи даних ( чибайти слова) вхідного операнда з елементів даних вихідного операнда. Якщо різниця виходить за граничне значення припустимого діапазону, то результатом вважається це граничне значення.
Вхідний операнд може знаходитися в чи MMX-регістрі в пам'яті; вихідний операнд повинний знаходитися в MMX-регістрі.
Підтримуються команди: psubsb, psubsw.
Завдання
Детально описати зміст заданих команд та результат їх виконання, якщо в ММ1 : 7F80 7E01 80FF 777F, в ММ2 : 80FF 7F80 777F 0001, а в
ММ3 : 7FFF FFFF 80FF AA55.
11.
psubsw MM2, MM3
paddsw MM1, MM3
Виконання роботи
psubsw MM2, MM3 - це MMX-команда, яка виконує віднімання другого операнду MM3 від першого MM2, елементи даних - word - 16 розрядів. Арифметика з насиченням, дані зі знаком. Результат зберігається в першому операнді.
Діапазон представлення слова зі знаком: 8000h (-32768) 7FFFh (32767).
1
2
3
4
80FF
7F80
777F
0001
7FFF
FFFF
80FF
AA55
8000
7F81
7FFF
55AC
При відніманні від від’ємного числа, близького до нижньої межі діапазону (80FF = -7F01), додатнього числа 7FFF відбувається насичення, результат – нижня межа діапазону (8000).
FFFF – це -1, отже виконується віднімання 7F80 - (-1) = 7F80 + 1 = 7F81.
При відніманні від додатнього числа, близького до межі діапазону (777F), великого від’ємного числа (80FF = -7F01) відбувається насичення, результат – верхня межа діапазону (7FFF).
AA55 = -55AB, отже виконується віднімання 1 - (-55AB) = 1 + 55AB = 55AC.
paddsw MM1, MM3 - це MMX-команда, яка виконує додавання своїх операндів (MM1 і MM3), елементи даних - word - 16 розрядів. Арифметика з насиченням, дані зі знаком. Результат зберігається в першому операнді.
1
2
3
4
7F80
7E01
80FF
777F
7FFF
FFFF
80FF
AA55
7FFF
7E00
8000
21D4
При додаванні до 7F80 числа, яке рівне верхній межі діапазону (7FFF), відбувається насичення, результат – верхня межа діапазону (7FFF).
FFFF – це -1, отже виконується операція 7E01 + (-1) = 7E01 - 1 = 7E00.
При додаванні двох від’ємних чисел, близьких до нижньої межі діапазону (80FF + 80FF), відбувається насичення, результат – нижня межа діапазону (8000).
AA55 = -55AB, отже виконується операція 777F + (-55AB) = 777F - 55AB = 21D4.
Висновок: Виконуючи дану лабораторну роботу, я вивчив та детально ознайомитися із синтаксисом та використанням команд додавання та віднімання для MMX-процесорів.