Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 3
з курсу „ Архітектура комп’ютерів”
Тема:
Модель обробки даних SIMD. Синтаксис ММХ-команд. Особливості арифметики з насиченням.
Львів – 2005
Мета роботи: Вивчити та детально ознайомитися із синтаксисом та використанням логічних команд MMX.
Тереотичні відомості
Модель обробки даних SIMD
В технології MMX використовується модель обробки даних SIMD (single instruction, multiple data, тобто одна команда - багато даних). Це підвищує швидкодію програм, оскільки одна команда оброблює декілька елементів даних одночасно. MMX-команди забезпечує паралельну обробку декількох байтів, слів або подвійних слів.
Синтаксис команд
MMX-команди мають наступний синтаксис:
іnstructіon [dest,src]
Тут іnstructіon - ім'я команди,
dest позначає вихідний операнд, src - вхідний операнд.
Більшість команд мають суфікс, що визначає тип даних і використовувану арифметику:
US (unsіgned saturatіon) - арифметика з насиченням, дані без знака.
S чи SS (sіgned saturatіon) - арифметика з насиченням, дані зі знаком. Якщо в суфіксі немає ні S, ні SS, використовується циклічна арифметика (wraparound).
B, W, D, Q указують тип даних. Якщо в суфіксі є дві з цих букв, перша відповідає вхідному операнду, а друга - вихідному.
Арифметика з насиченням (saturation arithmetic)
Якщо команда використовує арифметику з насиченням і результат операції перевищує максимальне допустиме значення, то у вихідний операнд записується це максимальне значення (відбувається " насиченням ").
Аналогічно, якщо результат операції виявився меншим за нижню межу допустимого діапазону, то у вихідний операнд записується мінімально можливе значення.
Логічні MMX-команди виконують порозрядні логічні операції над усіма 64 бітами своїх операндів.
Команда pand (логічне І)
Команда pand обчислює порозрядне логічне І своїх операндів.
Вхідний операнд може знаходитися в MMX-регістрі чи в пам'яті.
Вихідний операнд повинен знаходитися в MMX-регістрі.
Команда por (логічне АБО)
Команда por обчислює порозрядне логічне АБО своїх операндів.
Вхідний операнд може знаходитися в MMX-регістрі чи в пам'яті.
Вихідний операнд повинен знаходитися в MMX-регістрі.
Завдання
Детально описати зміст заданих команд та результат їх виконання, якщо в
ММ1 : 7F80 7E01 80FF 777F , в ММ2 : 80FF 7F80 777F 0001, а в
ММ3 : 7FFF FFFF 80FF AA55.
11.
por MM1, MM2
pand MM2, MM3
Виконання роботи
por MM1, MM2 - це MMX-команда, яка обчислює логічне АБО своїх операндів. Результат зберігається в першому операнді.
0111111110000000
0111111000000001
1000000011111111
0111011101111111
1000000011111111
0111111110000000
0111011101111111
0000000000000001
1111111111111111
0111111110000001
1111011111111111
0111011101111111
MM1
7F80
7E01
80FF
777F
MM2
80FF
7F80
777F
0001
MM1
FFFF
7F81
F7FF
777F
pand MM2, MM3 - це MMX-команда, яка обчислює логічне І своїх операндів. Результат зберігається в першому операнді.
1000000011111111
0111111110000000
0111011101111111
0000000000000001
0111111111111111
1111111111111111
1000000011111111
1010101001010101
0000000011111111
0111111110000000
0000000001111111
0000000000000001
MM2
80FF
7F80
777F
0001
MM3
7FFF
FFFF
80FF
AA55
MM2
00FF
7F80
007F
0001
Висновок: Виконуючи дану лабораторну роботу, я вивчив та детально ознайомитися із синтаксисом та використанням логічних команд для MMX-процесорів.