SSE5 - Google

SSE5

Z Wikipedii

Skocz do: nawigacji, szukaj

Streaming SIMD Extensions 5 (SSE5) - planowane rozszerzenie listy rozkazów SIMD dostępnych w procesorach x86, zdefiniowane przez firmę AMD w sierpniu 2007 roku; pierwszy procesor implementujący SSE5 ma wg zapowiedzi firmy pojawić się w 2009 roku.

SSE5 dodaje 82 nowe rozkazy: 30 działających na liczbach zmiennoprzecinkowych oraz 52 na liczbach całkowitych. Prawie wszystkie wykonują działania arytmetyczne i logiczne na wektorach, tj. mnożenie, dodawanie/odejmowanie lub oba naraz, a także przesunięcia lub obroty bitowe. Są również rozkazy pozwalające zaokrąglać liczby, pobierać część ułamkową, porównywać oraz przepisywać wybrane elementy wektorów.

SSE5 wprowadza instrukcje przyjmujące 3 lub 4 argumenty wektorowe, z czego jeden jest argumentem docelowym, tj. do niego wpisywany jest wynik działania (rozwiązanie zapożyczone z architektury RISC). Dotychczas praktycznie wszystkie instrukcje[1], nie tylko SSE, były dwuargumentowe, z czego jeden argument był równocześnie docelowy (nadpisywany) i dlatego w wielu przypadkach musiał zostać uprzednio zapamiętany — zaproponowane rozwiązanie eliminuje przynajmniej jedno przypisanie, co upraszcza i skraca programy, a także może mieć pozytywny wpływ na szybkość obliczeń.

Dzięki wprowadzeniu wieloargumentowych instrukcji możliwe stało się wygodne zrealizowanie instrukcji akumulujących wyniki mnożenia (wektorów lub skalarów liczb całkowitych, bądź zmiennoprzecinkowych) — rozkazy FxMADDxx, FxMSUBxx, PMACxxx, PMADxxx działają według schematu w = y \pm (\pm x \cdot z).

SSE5 definiuje także nowy typ danych: 16-bitową liczbę zmiennoprzecinkową; na mantysę liczby przeznaczono 10 bitów, na wykładnik 5 bitów, a znak — jeden bit.

Spis treści

[edytuj] Rozkazy działające na liczbach zmiennoprzecinkowych

Rozkazy działają na wektorach lub skalarach liczb pojedynczej precyzji (zwykle końcówka mnemonika PS dla wektorów, SS dla skalarów), bądź podwójnej precyzji (PD dla wektorów, SD dla skalarów).

Instrukcja Działanie
COMPD
COMPS
porównanie wektorów
COMSD
COMSS
porównanie skalarów
CVTPH2PS
CVTPS2PH
konwersja pomiędzy liczbami zmiennoprzecinkowymi 16-bitowymi i 32-bitowymi (pojedynczej precyzji)
FMADDPD
FMADDPS
FMADDSD
FMADDSS
rozkazy czteroargumentowe instr dest, src1, src2, src3, wykonujÄ…:
dest := src1 * src2 + src3
FMSUBPD
FMSUBPS
FMSUBSD
FMSUBSS
rozkazy czteroargumentowe wykonujÄ…: dest := src1 * src2 - src3
FNMADDPD
FNMADDPS
FNMADDSD
FNMADDSS
rozkazy czteroargumentowe wykonujÄ…: dest := -(src1 * src2) + src3
FNMSUBPD
FNMSUBPS
FNMSUBSD
FNMSUBSS
rozkazy czteroargumentowe wykonujÄ…: dest := -(src1 * src2) - src3
PERMPD
PERMPS
utworzenie wektorów z dwóch innych; istnieje możliwość wyboru na jakich pozycjach w wektorze wynikowym mają pojawić się elementy z wektorów źródłowych; można również ustalić jakie dodatkowe działania mają zostać przeprowadzone na każdym z wynikowych elementów:
FRCZPD
FRCZPS
FRCZSD
FRCZSS
obliczenie części ułamkowej
ROUNDPD
ROUNDPS
ROUNDSD
ROUNDSS
zaokrÄ…glenie liczb

[edytuj] Rozkazy działające na liczbach całkowitych

Rozkazy działają na wektorach liczb całkowitych 8-bitowych (końcówka mnemonika B dla liczb ze znakiem, UB bez znaku), 16-bitowych (W/UW), 32-bitowych (D/UD) i 64-bitowych (Q/UQ).

Instrukcja Działanie
PCMOV warunkowe przesłanie, realizuje działanie operatora warunkowego
PCOMB
PCOMW
PCOMD
PCOMQ
porównanie liczb ze znakiem; dostępne relacje:
  • mniejszy
  • mniejszy lub równy
  • równy
  • wiÄ™kszy lub równy
  • różny
  • prawda (różny od zera)
  • faÅ‚sz (równy zero)
PCOMUB
PCOMUW
PCOMUD
PCOMUQ
porównanie liczb bez znaku
PHADDBD
PHADDBW
PHADDBQ
PHADDWD
PHADDWQ
PHADDDQ
dodawanie dwóch lub czterech sąsiednich elementów (liczby ze znakiem)
PHADDUBD
PHADDUBQ
PHADDUBW
PHADDUDQ
PHADDUWD
PHADDUWQ
dodawanie dwóch lub czterech sąsiednich elementów (liczby bez znaku)
PHSUBBW
PHSUBDQ
PHSUBWD
odejmowanie dwóch lub czterech sąsiednich elementów (liczby ze znakiem); dla czterech liczb wykonywane jest działanie (a − b) − (c − d)
PMACSDD
PMACSDQH
PMACSDQL
PMACSWD
PMACSWW
rozkazy czteroargumentowe instr dest, src1, src2, src3 wykonujÄ…ce dziaÅ‚anie dest := (src1 * src2) + src3 - wyniki sÄ… wprost kopiowane
PMACSSDD
PMACSSDQH
PMACSSDQL
PMACSSWD
PMACSSWW
rozkazy czteroargumentowe instr dest, src1, src2, src3 wykonujÄ…ce dziaÅ‚anie dest := (src1 * src2) + src3 - wyniki sÄ… nasycane
PMADCSWD podobne do ww, z tym że przed po przemnożeniu wektorów, sąsiednie elementy wyniku pośredniego src1 * src2 są do siebie dodawane, i dopiero ten wektor jest dodawany do src3
PMADCSSWD wykonuje to samo działanie, co PMADCSWD, z tym, że wyniki są nasycane
PPERM działanie rozkazu jest analogiczne do PERMPS/PERMPD, z tą różnicą, że operuje na poziomie bajtów; możliwe są również modyfikacje wynikowych bajtów: negacja, negacja bitowa, negacja bitowa liczby przeciwnej, ustawienie wszystkich bitów na: 0, 1, najstarszy bit lub zanegowany najstarszy bit
PROTB
PROTW
PROTD
PROTQ
obrót bitowy
PSHAB
PSHAW
PSHAD
PSHAQ
przesunięcie arytmetyczne w prawo
PSHLB
PSHLW
PSHLD
PSHLQ
przesunięcia w lewo
PTEST testowanie masek bitowych; realizuje to samo działanie co rozkaz PTEST zdefiniowany w SSE4

[edytuj] Bibliografia

  • AMD64 Technology, 128-Bit SSE5 Instruction Set (43479), sierpieÅ„ 2007

Przypisy

  1. ↑ Spośród rozkazów CPU jedynie rozkaz imul posiada wersję trójargumentową, wśród rozkazów SSE zaledwie kilka.

[edytuj] Zobacz też


Pakistan: dziesiÄ…tki zabitych i rannych
Co najmniej 45 osób zginęło, a 50 zostało rannych, gdy dwaj zamachowcy-samobójcy wysadzili się w powietrze w mieście Wah, tuż przy bramach głównego pakistańskiego kompleksu fabryk zbrojeniowych. - Widziałem kawałki ciał zwisające z drzew - opisuje świadek dramatu.
Niemcy piszÄ… o "nowym froncie wschodnim"
Niemcy piszą o "nowym froncie na wschodzie", zimnej wojnie, podziałach w NATO i wątpliwym bezpieczeństwie. Brytyjczycy są bardziej wstrzemięźliwi, a Litwini popierają polską decyzję. Europejska prasa komentuje podpisane przez Polskę i USA porozumienie o rozmieszczeniu elementów tarczy antyrakietowej.
Stan rannego żołnierza - lepszy
Stan zdrowia jedynego polskiego żołnierza ocalałego z prawdopodobnego zamachu w Afganistanie lekarze oceniają jako lepszy niż w środę. Żołnierz przeszedł operację. W środę samochód, którym jechało czterech polskich żołnierzy wpadł na minę. Trzech żołnierzy zginęło, jeden został ranny.
Rosja oficjalnie nie zrywa z NATO
Rosja zdecydowała się zamrozić wszelką współpracę wojskową z NATO i jego sojusznikami - poinformowało na swoich stronach internetowych norweskie ministerstwo obrony. Rosjanie oficjalnie zaprzeczają.
"Polacy wybrali gruzińskie wino zamiast rosyjskiego gazu"
- Toasty za powodzenie i skuteczność tarczy wznoszono gruzińskim winem - podsumowuje amerykańsko-polskie porozumienie o tarczy rosyjski dziennik "Wriemia Nowostiej". Rosyjska prasa ocenia, że umowa popsuje i tak nienajlepsze stosunki Warszawy z Moskwą.
Linki: Strona g³ówna