Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 87

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 81 82 83 84 85 86 < 87 > 88 89 90 91 92 93 .. 528 >> Следующая

как это выполняют MMX-команды PUNPCH, PUNPCKL. Данные команды объединяют
в один операнд старшие половины (элементы F3-F2, команда UNPCKHPS) или
младшие половины (элементы F1-F0, команда UNPCKLPS) операндов, хранящихся
в SSE-регистре xmm и регистре или ячейке памяти xmm/m128. Результат
записывается в регистр xmm, причем элементы исходных операндов
чередуются, размещаясь в этом регистре. Выполнение этих операций показано
на рис. 2.37
СИСТЕМА КОМАНД: ОПЕРАЦИИ SSE
MOVMSKPS r32, xmm
127 96 95 64 63 32 31 О
xmm I F3 I F2 | Щ F1 I F0 |

r32 Г 00...00 I 0| 0| 0| 0| I I I I
31 76543210
Рис. 2.35. Выполнение команды MOVMSKPS
SHUFPS xmm, xmm/m128, 82h
L , i
7 6 5 4 3 2 1 0
im8l 10 I 00 I 00 I 10
Рис. 2.36. Выполнение команды SHUFPS a) UNPCKHPS xmm, xmm/m128
xmm/m 128 xmm
127 0 127 0
xmm
6) UNPCKLPS xmm, xmm/m128
xmm/m 128 xmm
127 0 127 0
xmm
Рис. 2.37. Выполнение команд UNPCKHPS (а) и UNPCKLPS (6)
1Д7
ПРОЦЕССОРЫ общего НАЗНАЧЕНИЯ и СИСТЕМЫ НА ИХ ОСНОВЕ
2.6.3. КОМАНДЫ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ
пЫ этой группы (табл. 2.47) имеют две формы: пакетную (суффикс PS) и
скаляр-/HrrfiHKC SS)- Пакетная форма команды обрабатывает пакеты
одинарной точности: ную (СУФЧ7 нта рз-F0 одинарной точности, упакованные
в 128 разрядов. Скалярная форма четыре эле^отаеТ только с одним элементом
одинарной точности F0 (младшие 32 разря-команды Р СТра), остальные 96
разрядов (старшие элементы F3F1) содержимого этого да SSE-pe^ изменЯЮТСЯ
Для всех команд данной группы результат операции размещается р8оорРа
п^стре xmm, а исходные операнды - в SSE-регистре xmm или ячейке памяти в
SSE-pe^ ^128 (пакетная форма), либо т32 (скалярная форма).
Команды арифметических операций
Синтаксис команды Операция
"дООРЭ xmm,xmm /т128 ADDSS xmm,xmm /m32 xmm + xmm/m128 -> xmm (пакет) xmm
+ xmm /m32 -" xmm (скаляр)
"guBPS xmm,xmm /m128 SUBSS xmm,xmm /m32 xmm - xmm /m 128 -" xmm (пакет)
xmm - xmm /m32 -" xmm (скаляр)
MULPS xmm,xmm /m128 MULSS xmm,xmm /m32 xmm * xmm /ml 28 -" xmm (пакет)
xmm * xmm /m32 -" xmm (скаляр)
"piVPS xmm,xmm /m128 DIVSS xmm,xmm /m32 xmm 1 xmm /ml 28 -" xmm (пакет)
xmm / xmm /m32 -> xmm (скаляр)
SQRTPS xmm,xmm /ml 28 SQRTSS xmm,xmm /m32 sqrt(xmm /m128) -" xmm
(пакет) sqrt(xmm /m32) -> xmm (скаляр)
RCPPb xmm,xmm /m128 RCPSS xmm,xmm /m32 1 1 xmm /m128 -" xmm (пакет) 1 /
xmm /m32 -" xmm (скаляр)
RSQRTpS xmm,xmm /m128 RSQRTSS xmm,xmm /m32 1 / sqrt(xmm /m128) -" xmm
(пакет) 1 / sqrt(xmm /m32) xmm (скаляр)
К маНДы ADD[PS,SS], SUB[PS,SS], DIV[PS,SS], MUL[PS,SS] производят
соответствен-° яции сложения, вычитания, деления и умножения. Если при
выполнении операций Н° м.либо элементами происходит переполнение, то
устанавливаются значения при-с каким ^ ОЕ = РЕ = 1 и реализуется
исключение типа #ХМ (при значении бита маски
ЗНыКОВ /
Ом-01 ЕслИ соответствующее исключение замаскировано (установлено значение
пм"! к т0 результатом операции является число, округленное в соответствии
с полем RC в г CTpeMXCSR(CM. табл. 2.1). В случае антипереполнения
устанавливаются значения k0bUE = PE= 1. При значении бита маски UM=0
реализуется исключение #ХМ, а при HP-- иМ = 1 результатом становится
округленное число. Команда DIV[PS,SS] вызыва-^аче овКу признака ошибки ZE
= 1, если операнд-делитель равен нулю. В этом случае Уст етСя исключение
#ХМ, если соответствующий бит маски ZM = 0. Если данная ошиб-р али
Еревана (значение бита ZM = 1), то результатом операции будет код
бесконечности о етствуючего знака (7F800000h или FF800000h, см. табл.
2.16).
С° п и выполнении данных команд элементами исходных операндов могут быть
не-числа ON ы или SNaN. Результаты операций в этих случаях приведены в
табл. 2.48. В случаях, 3 гтановлено значение бита маски IM = 1
(исключение типа #1 маскировано), элементом когда У^^^ будет не-число
QNaN, являющееся элементом одного из операндов, или полу-Ре3^ое из не-
числа SNaN, являющегося элементом операнда, путем изменения значения двнн
22 (первого разряда мантиссы) с "0" на "1"(SNaN -> QNaN)*. В случаях,
когда значе-
СИСТЕМА КОМАНД: ОПЕРАЦИИ SSE
ние бита маски IM = 0 (исключение #1 не маскировано), реализуется переход
к подпрограмме обслуживания данного исключения, если элементами операндов
являются не-числа SNaN. Если же элементами являются не-числа QNaN, то они
представляются в качестве результата операции, а исключение не
реализуется.
В табл. 2.48 указан также результат выполнения ряда арифметических
операций, когда элементами операндов являются "О" или "бесконечность". В
этих случаях элементом результата становится код FFCOOOOOh
("неопределенность", см. табл.2.16), если установлено значение бита маски
IM = 1 (исключение #1 маскировано). Если же значение IM = 0, то
реализуется исключение #1.
Таблица 2.48
Результаты выполнения команд ADD[PS,SS], SUB[PS,SS], DIV[PS,SS],
MUL[PS,SS], когда элементами операндов являются не-числа (NaN)
Элементы операндов Результат при IM=1 Результат при IM=0
SNaN1, SNaN2 SNaN1 -> QNaN1 Исключение типа #l
Предыдущая << 1 .. 81 82 83 84 85 86 < 87 > 88 89 90 91 92 93 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed