SSSE3 - SSSE3

Қосымша ағындық SIMD кеңейтімдері 3 (SSSE3 немесе SSE3S) Бұл SIMD нұсқаулық жиынтығы Intel және -ның төртінші қайталануы SSE технология.

Тарих

SSSE3 алғашында Intel процессорларымен негізделген Негізгі микроархитектура 2006 жылы 26 маусымда «Woodcrest» Xeons-пен.

SSSE3-ке код атаулары берілген Теджалар Жаңа нұсқаулар (TNI) немесе Мером Жаңа нұсқаулар (MNI) оны қолдауға арналған алғашқы процессорлық конструкциялар үшін.

Функционалдылық

SSSE3 құрамында 16 жаңа дискретті нұсқаулық бар. Әр нұсқаулық 64-биттік MMX немесе 128-биттік XMM регистрлерінде жұмыс істей алады. Сондықтан Intel материалдары 32 жаңа нұсқаулыққа сілтеме жасайды. Оларға мыналар кіреді:[1]

  • Көлденеңінен қосу немесе азайту амалдарын орындайтын он екі нұсқаулық.
  • Абсолютті мәндерді бағалайтын алты нұсқаулық.
  • Көбейту және қосу операцияларын орындайтын және нүктелік өнімдерді бағалауды жылдамдататын екі нұсқаулық.
  • Оралған-бүтін санды көбейтетін және масштабтаумен бүтін мәнді шығаратын екі нұсқаулық.
  • Араластыруды басқарудың екінші операндына сәйкес орындықты ауыстыруды орындайтын екі нұсқаулық.
  • Мақсатты операндтағы оралған бүтін сандарды жоққа шығаратын алты нұсқаулық, егер бастапқы операндтағы сәйкес элементтің белгілері нөлден аз болса.
  • Екі операндтан тұратын деректерді туралайтын екі нұсқаулық.

SSSE3 бар процессорлар

Жаңа[1] нұсқаулық

Төмендегі кестеде satsw (X) ('қол қойылған сөзге қанықтыру' деп оқыңыз) қол қойылған бүтін Х санын қабылдайды және −32768-ден кіші болса −32768-ге, 32767-ден үлкен болса +32767-ге айналдырады, және әйтпесе оны өзгеріссіз қалдырады. Әдеттегідей, Intel архитектурасы үшін байттар 8 бит, сөздер 16 бит, ал сөздер 32 бит; 'тіркелім' MMX немесе XMM векторлық регистріне жатады.

PSIGNB, PSIGNW, PSIGNDОралған белгіЕгер басқа регистрдің сәйкес элементтерінің белгісі теріс болса, байттардың, сөздердің немесе сөздердің регистрінің элементтерін теріске шығарыңыз.
PABSB, PABSW, PABSDОралған абсолютті мәнБайттардың, сөздердің немесе сөздердің регистрінің элементтерін басқа регистр элементтерінің абсолютті мәндерімен толтырыңыз
PALIGNRДұрыс туралауға оралғанекі регистрді алып, олардың мәндерін біріктіріп, нұсқаулықта кодталған дереу мәнмен берілген ығысудан регистр ұзындығын бөліп алыңыз.
PSHUFBАраластырылған байттарбайттардың регистрлерін қабылдайды A = [a0 а1 а2 ...] және B = [b0 б1 б2 ...] және А-ны [аb0 аb1 аb2 ...]; тек егер b нүктесінің жоғарғы жағы болса, ith жазбасын 0-ге ауыстырадымен орнатылды.
PMULHRSWДөңгелек және масштабпен көбейтіңізА және В регистрлеріндегі 16-биттік сөздерді −1.00000000 және +0.99996948 ... арасындағы 16 биттік бекітілген нүктелік сандар ретінде қарастырыңыз (мысалы, 0x4000 +0.5 және 0xA000 −0.75 ретінде қарастырылады) және оларды дұрыс көбейтіңіз дөңгелектеу.
PMADDUBSWОралған және қол қойылмаған байттарды көбейтіңіз және қосыңызА және В регистрлеріндегі байттарды алыңыз, оларды көбейтіңіз, жұптарды қосыңыз, қанықтырыңыз және сақтаңыз. Яғни [a0 a1 a2…] pmaddubsw [b0 b1 b2…] = [satsw (a0b0 + a1b1) satsw (a2b2 + a3b3)…]
PHSUBW, PHSUBDОралған көлденең шегеру (сөздер немесе қос сөздер)A = [a0 a1 a2…] және B = [b0 b1 b2…] регистрлерін қабылдайды және [a0 − a1 a2 − a3… b0 − b1 b2 − b3…] шығарады
PHSUBSWСөздерді көлденеңінен алып тастаңыз және қанықтырыңызPHSUBW сияқты, бірақ [satsw (a0 − a1) satsw (a2 − a3)… satsw (b0 − b1) satsw (b2 − b3)…] шығады
PHADDW, PHADDDОралған көлденең қосу (сөздер немесе қос сөздер)A = [a0 a1 a2…] және B = [b0 b1 b2…] регистрлерін қабылдайды және [a0 + a1 a2 + a3… b0 + b1 b2 + b3…] шығарады
PHADDSWСөздерді горизонтальды қосу және қанықтыруPHADDW сияқты, бірақ [satsw (a0 + a1) satsw (a2 + a3)… satsw (b0 + b1) satsw (b2 + b3)…] шығады

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ а б "2.9.5". Intel 64 және IA-32 архитектураларын оңтайландыру бойынша анықтамалық нұсқаулық (PDF) (Техникалық есеп). Intel.com. 2016. 92-93 бб. Алынған 22 маусым, 2018.

Сыртқы сілтемелер