SSE2 (Streaming SIMD Extensions 2) er en IA-32 SIMD multimediautvidelse av x86-arkitekturen, som ble lansert sammen med Intel Pentium 4 den 20. november 2000. SSE2 utvidet den tidligere SSE (70 instruksjoner) med 144 nye instruksjoner, og var ment å erstatte MMX. I 2003 tilføyde AMD støtte for SSE2 i AMD K8.

SSE2 tillater MMX-instruksjonene å bruke 128-bit XMM-registre, istedenfor de 8 virtuelle 64-bit MMX-registrene til desimaltallenheten. Dermed kan SIMD heltallberegninger utføres parallelt med desimaltallberegninger uten å foreta kontekst-skifter. I tillegg kan dobbelt så mange MMX-operasjoner utføres når registerbredden dobles.

Andre SSE2-utvidelser består i kontroll-instruksjoner for håndtering av Cache-RAM, og instruksjoner for konvertering av numeriske formater.

SSE2 ble i 2003 implementert i AMD K8, sammen med 8 ekstra 128-bit XMM registre. Denne implementasjonen doblet antallet til 16 registre (XMM0 – XMM15), og kunne bare brukes i 64-bit modus. Intel tilføyde disse 8 tilleggs-registrene i sin egen 64-bit utgave av x86-arkitekturen i 2004.

Kompilator-støtte rediger

Microsoft tilføyde støtte for SSE2 i Microsoft Visual C++ 6.0 (Visual Studio 8). Intel C++-kompilatoren kan generere kode for både SSE, SSE2, SSE3, SSSE3 og SSE4.

GCC-versjon 3 tilføyde støtte for generering av skalær SSE/SSE2-kode. I GCC-versjon 4 ble det tilføyd støtte for automatisk vektorisering av SSE/SSE2-instruksjoner.

Sun Studio Compiler Suite kan også generere SSE2-instruksjoner når kompilatorens flagg settes til -xvector=simd.

Se også rediger