SSE4

From Wikipedia, the free encyclopedia

Remove ads

Az SSE4 (Streaming SIMD Extensions 4) egy SIMD CPU utasításkészlet, amelyet az Intel Core mikroarchitektúrában és az AMD K10 (K8L) processzorokban használnak. 2006. szeptember 27-én jelentették be, a 2006-os őszi Intel Developer Forumon, egy általános tájékoztatóban;[1] a készlet 47 utasításának pontosabb részletei a 2007 tavaszi pekingi Intel Developer Forumon bemutatott prezentációban váltak ismertté.[2] Az SSE4 teljesen kompatibilis az Intel 64 (azaz x86-64) és IA-32 architektúrájú mikroprocesszorok korábbi generációihoz írt szoftverekkel. Minden meglévő szoftver továbbra is megfelelően, módosítás nélkül fut az SSE4-et tartalmazó mikroprocesszorokon, az SSE4-et tartalmazó alkalmazások jelenlétében is.[3]

Remove ads

Az SSE4 részleges megvalósításai

Az Intel SSE4 összesen 54 utasításból áll. Ennek első kiadása 47 utasításból áll, SSE4.1 néven szerepel néhány Intel dokumentációban, és a Penryn Core 2 magokban jelent meg. Nem sokkal később megjelent az SSE4.2 jelű utasításcsoport, amely a maradék 7 utasítást tartalmazza; ez először a Nehalem-alapú Core i7 processzorokban vált elérhetővé. Az Intel figyelembe vette a fejlesztők visszajelzéseit az utasításkészlet fejlesztésében.[4]

Az AMD a Barcelona alapú processzorokkal kezdve bevezette az SSE4a utasításkészlet, amely négy SSE4 utasítást és négy új SSE utasítást tartalmaz. Ezek az utasítások nincsenek meg az Intel SSE4.1-et támogató processzoraiban. Az AMD processzorok a teljes SSE4 utasításkészletet (ami az Intel SSE4.1 és SSE4.2 együtt) csak a Bulldozer alapú FX processzorok megjelenésétől kezdve támogatja. Az SSE4a-val bevezetésre került a „rosszul igazított” (misaligned) SSE funkció is, ami azt jelenti, hogy a nem megfelelően igazított adatok betöltése ugyanolyan gyors, mint az igazított címeken elhelyezkedő adatokat töltő utasítások. Ez lehetővé tette továbbá az igazítás/illesztés ellenőrzésének letiltását a nem betöltő memóriahozzáférést végző SSE műveleteknél.[5] Az Intel később hasonló rendszert vezetett be a Nehalem processzorokban a nem igazított SSE sebességének javítására, de a nem igazított adathozzáférést a nem betöltő SSE utasításoknál nem vezette be egészen az AVX megjelenéséig.[6]

Remove ads

Névzavar

A ma már SSSE3 (Supplemental Streaming SIMD Extensions 3) néven ismert, az Intel Core 2 processzorcsaládban (2006) bevezetett utasításkészletet egyes médiumok SSE4 néven emlegették, míg az Intel elő nem állt az SSSE3 elnevezéssel. A belsőleg Merom New Instructions elnevezésű készletnek az Intel eredetileg nem is akart külön nevet adni, de ezt a tervet nyilvános kritika érte.[7] A cég végül a zavar tisztázása érdekében kijelentette, hogy az SSE4 nevet fenntartja a rákövetkező utasításkészlet-kiterjesztésekhez.[8]

Az Intel a HD Boost marketingkifejezést használja az SSE4-re.[9]

Remove ads

Új utasítások

Az SSE minden korábbi iterációjával ellentétben, az SSE4 olyan utasításokat tartalmaz, amelyek nem kifejezetten multimédia-alkalmazásokban alkalmazott műveleteket hajtanak végre. Több olyan utasítást tartalmaz, amelyek működését egy konstans mező határozza meg, valamint egy sor olyan utasítást, amelyek az XMM0 regisztert implicit harmadik operandusként használják.

Az utasítások közül többet a Penryn processzor egyciklusos permutációs motorja hajt végre. A permutációs (keverés, 'shuffle') műveletek átrendezik a bájtokat egy regiszteren belül.

SSE4.1

Ezek az utasítások a Penryn mikroarchitektúrában voltak bevezetve, amely az Intel Core mikroarchitektúra 45 nm-re történt zsugorításával készült. A készlet támogatását a CPUID.01H:ECX.SSE41[Bit 19] bit jelzi.

További információk Utasítás, Leírás ...

SSE4.2

Az SSE4.2 az STTNI (String and Text New Instructions, string és szöveg[kezelő] új utasítások) bővítményt tartalmazza,[11] melynek 4 új utasítása karakterkeresést és összehasonlítást végez két, egyenként 16 bájtos operanduson. Ezeket – többek között – az XML dokumentumok elemzésének felgyorsítására tervezték.[12] A készlethez tartoznak még a PCMPGTQ, CRC32, POPCNT utasítások. A CRC32 utasítás egyes adatátviteli protokollokban használt ciklikus redundancia-ellenőrzés kiszámítására szolgál. Ezek az utasítások először a Nehalem-alapú Intel Core i7 termékcsaládban voltak bevezetve, és kiegészítik az SSE4 utasításkészletet. A készlet támogatását a CPUID.01H:ECX.SSE42[Bit 20] bit jelzi.

Az SSE 4.2 CRC32 utasítása a Castagnoli-polinomot (CRC32-C) használja, és nem kompatibilis az IEEE 802.3 szabványosított CRC32 változattal, amelyet hálózati protokollok (például Ethernet, V.42), SATA, MPEG-2, PNG és UNIX parancsok, vagy a Gzip, Bzip2 és zip tömörítés használnak. A Castagnoli-polinomot a Btrfs, az Ext4, az iSCSI, az SCTP és más formátumok használják.[13][14]

A Windows 11 24H2 használatához a processzornak támogatnia kell az SSE4.2-t, ellenkező esetben a Windows, illetve maga a kernel nem indítható.[15] Ezzel megakadályozva, hogy régebbi számítógépeken is fusson a rendszer.

További információk Utasítás, Leírás ...

POPCNT és LZCNT

Ezek az utasítások nem SSE regisztereken, hanem egész számokon működnek, mivel nem SIMD utasítások, de egyidőben jelentek meg, és bár az AMD az SSE4a utasításkészlettel vezette be őket, mégis különálló kiterjesztéseknek számítanak, saját dedikált CPUID bitekkel, amelyek jelzik a támogatást az adott processzorban. Az Intel a Nehalem mikroarchitektúrától kezdve megvalósítja a POPCNT utasítást, a Haswell mikroarchitektúrától kezdve pedig a LZCNT utasítást. Az AMD mindkettőt megvalósítja az Barcelona mikroarchitektúrától kezdve.

A Windows 11 24H2 használatához a processzornak támogatnia kell az SSE4.2-t, ellenkező esetben a Windows, illetve maga a kernel nem indítható.[15] Ezzel megakadályozva, hogy régebbi számítógépeken is fusson a rendszer.

Az utasításpár AMD szerinti elnevezése Advanced Bit Manipulation, fejlett bitmanipulásiós utasítások, röviden ABM.

További információk Utasítás, Leírás ...

Az LZCNT kódolása ugyanazt a kódolási mintát követi, mint a BSR (fordított bit pásztázás, bit scan reverse) utasítás. Az LZCNT utasítás meghívása problémát okoz néhány, az utasítást nem támogató processzoron, például a Haswell előtti Intel CPU-kon, ahol helytelenül BSR művelet hajtódik végre, ahelyett, hogy a processzor érvénytelen utasítás kivételt dobna. Ez azért probléma, mert az LZCNT és a BSR utasítások eredménye különböző.

Az operandus végén álló nullákat a BSF (bit pásztázás előre, bit scan forward) vagy a TZCNT utasításokkal lehet számolni.

SSE4a

A 4 utasítást tartalmazó SSE4a utasításcsoportot az AMD a Barcelona mikroarchitektúrában vezette be. Ezek az utasítások nem elérhetők az Intel processzorokban. Ezek támogatását a CPUID.80000001H:ECX.SSE4A[Bit 6] bit jelzi.[19]

További információk Utasítás, Leírás ...
Remove ads

Támogató CPU-k

  • Intel
    • Silvermont processzorok (SSE4.1, SSE4.2 és POPCNT támogatás)
    • Goldmont processzorok (SSE4.1, SSE4.2 és POPCNT)
    • Goldmont Plus processzorok (SSE4.1, SSE4.2 és POPCNT)
    • Tremont processzorok (SSE4.1, SSE4.2 és POPCNT)
    • Penryn processzorok (SSE4.1 támogatás, kivéve Pentium Dual-Core és Celeron)
    • Nehalem és Westmere processzorok (SSE4.1, SSE4.2 és POPCNT támogatás, kivéve Pentium és Celeron)
    • Sandy Bridge processzorok és újabbak (SSE4.1, SSE4.2 és POPCNT támogatás, ezek között van a Pentium és Celeron is)
    • Haswell processzorok és újabbak (SSE4.1, SSE4.2, POPCNT és LZCNT)
  • AMD
    • K10 alapú processzorok (SSE4a, POPCNT és LZCNT támogatás)
    • "Cat" kis fogyasztású processzorok
      • Bobcat alapú processzorok (SSE4a, POPCNT és LZCNT)
      • Jaguar alapú processzorok és újabbak (SSE4a, SSE4.1, SSE4.2, POPCNT és LZCNT)
      • Puma alapú processzorok és újabbak (SSE4a, SSE4.1, SSE4.2, POPCNT és LZCNT)
    • "Heavy Equipment" processzorok (SSE4a, SSE4.1, SSE4.2, POPCNT és LZCNT)
    • Zen alapú processzorok (SSE4a, SSE4.1, SSE4.2, POPCNT és LZCNT)
    • Zen+ alapú processzorok (SSE4a, SSE4.1, SSE4.2, POPCNT és LZCNT)
    • Zen2 alapú processzorok (SSE4a, SSE4.1, SSE4.2, POPCNT és LZCNT)
    • Zen3 alapú processzorok (SSE4a, SSE4.1, SSE4.2, POPCNT és LZCNT)
  • VIA
    • Nano 3000, X2, QuadCore processzorok (SSE4.1)
    • Nano QuadCore C4000 sorozatú processzorok (SSE4.1, SSE4.2)
    • Eden X4 processzorok (SSE4.1, SSE4.2)
  • Zhaoxin
    • ZX-C processzorok és újabbak (SSE4.1, SSE4.2)
Remove ads

Jegyzetek

Fordítás

Források

További információk

Kapcsolódó szócikkek

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads