A Supplemental Streaming SIMD Extensions 3 (SSSE3 vagy SSE3S) az Intel által létrehozott SIMD-utasításkészlet, az SSE-technológia negyedik változata. Története Az SSSE3-at az Intel Core mikroarchitektúrán alapuló processzoraiba 2006. június 26-án vezette be a Woodcrest Xeonokkal.
Az SSSE3-ra Tejas New Instructions (TNI) és Merom New Instructions kódnéven hivatkoztak az első azt támogatni kívánt processzorváltozatokra.
Funkciók Az SSSE3 16 új utasítást tartalmaz, melyek 64 bites MMX- vagy 128 bites XMM-regisztereken is működhetnek. Ezért az Intel közleményei 32 új utasításról szólnak. Ezek közé az alábbiak tartoznak:
6 (12) horizontális összeadást vagy kivonást végrehajtó utasítás. 3 (6) abszolútérték-számító utasítás. 1 (2) szorzás–összeadás műveletet végrehajtó utasítás, melyek a pontszorzatszámítást gyorsítják. 1 (2) utasítás, melyek gyorsítják az egy regiszteren lévő számok szorzását és egész értékeket adnak skálázással. 1 (2) utasítás, melyek helyben történő bájtonkénti átrendezést hajtanak végre a második irányító operandus függvényében. 3 (6) egy regiszteren lévő egészeket a céloperandusban a forrásban lévő negatív megfelelő elem esetén negáló utasítás. 1 (2) két operandus összetételéből adatot igazító utasítás.
SSSE3-at támogató processzorok
AMD: „Cat” sorozat: Bobcat-alapú processzorok Jaguar-alapú és újabb processzorok Puma-alapú és újabb processzorok „Heavy Equipment” sorozat Bulldozer-alapú processzorok Piledriver-alapú processzorok Steamroller-alapú processzorok Excavator-alapú és újabb processzorok Zen-alapú és újabb processzorok Zen+-alapú processzorok Zen2-alapú processzorok Zen3-alapú processzorok Zen4-alapú processzorok Intel: Xeon 5100, 5300, 5400 és 3000 sorozatok Core 2 Duo Core 2 Extreme Core 2 Quad Core i7 Core i5 Core i3 Pentium Dual Core (ha 64 bites; Allendale-től) Celeron 4xx Sequence Conroe-L Celeron Dual Core E1200 Celeron M 500-sorozat Atom VIA: Nano
Új utasítások
Az alábbi táblázatban a (olv. „saturate to signed word”, jelentése: „töltsd fel előjeles szóra”) egy előjeles X egészet átalakít −32768-ra, ha annál kisebb, +32767-re, ha annál nagyobb, ellenkező esetben változatlanul hagyja. Az Intel-architektúrának megfelelően a bájtok 8, a szavak 16, a duplaszavak 32 bitesek, a „regiszter” MMX- vagy XMM-vektorregiszter.
Utasítás Jelentés Magyarázat PSIGNB, PSIGNW, PSIGND Packed Sign Egy bájt-, szó- vagy duplaszóregiszter elemeit negálja, ha egy másik regiszter megfelelő elemei negatívak. PABSB, PABSW, PABSD Packed Absolute Value Egy bájt-, szó- vagy duplaszóregiszter értékeit egy másik regiszter abszolút értékeivel tölti fel. PALIGNR Packed Align Right Két regiszter értékeit összefűzi, és az eltolódás regiszterhosszú részét adja ki, melyet az utasításban kódolt közvetlen érték ad meg. PSHUFB Packed Shuffle Bytes A = [a0 a1 a2 …] és B = [b0 b1 b2 …] bemeneti regiszterek esetén A elemeit lecseréli az [ab0 ab1 ab2 …] sorozatra, de az i. elemet 0-ra cseréli, ha bi első bitje 1. PMULHRSW Packed Multiply High with Round and Scale Az A és B regiszterek 16 bites szavait előjeles 16 bites –1 és +0,99996948… közti fixpontos számokként kezeli (például a 0x4000-et +0,5-ként, a 0xA000-t −0,75-ként kezeli), és megfelelő kerekítéssel összeszorozza őket. PMADDUBSW Multiply and Add Packed Signed and Unsigned Bytes A és B regiszterek bájtjait összeszorozza, páronként összeadja, előjelesen tölti, az eredményt tárolja. [a0 a1 a2 …] PMADDUBSW [b0 b1 b2 …] = [] PHSUBW, PHSUBD Packed Horizontal Subtract (Words or Doublewords) A = [a0 a1 a2 …] és B = [b0 b1 b2 …] bemeneti regiszterekre a kimenet [a0−a1 a2−a3 … b0−b1 b2−b3 …] PHSUBSW Packed Horizontal Subtract and Saturate Words hasonlít a PHSUBW-re, de kimenete [] PHADDW, PHADDD Packed Horizontal Add (Words or Doublewords) A = [a0 a1 a2 …] és B = [b0 b1 b2 …] bemeneti regiszterekre kimenete [a0+a1 a2+a3 … b0+b1 b2+b3 …] PHADDSW Packed Horizontal Add and Saturate Words hasonlít a PHADDW-re, de kimenete []
Jegyzetek
Források Core 2 Mobile specifikációk Az Intel dokumentuma az SSSE3 létéről és az SSE4 leírásáról Utasításlista az SSSE3-utasítások leírásával
Kapcsolódó szócikkek SIMD SSE3, SSE4 Intel Core 2
Kategória:Mikroprocesszorok