What is Streaming SIMD Extensions (SSE)

Intel introduced the Pentium III processor in February 1999 and included in that processor an update to MultiMedia eXtension (MMX), called Streaming SIMD Extensions (SSE). The Streaming SIMD Extensions consist of 70 new instructions, including SIMD floating point, additional SIMD integer, and cacheability control instructions.

Some of the technologies that benefit from the Streaming SIMD Extensions include advanced imaging, 3D video, streaming audio and video (DVD playback), and speech-recognition applications. The SSEx instructions are particularly useful with MPEG2 decoding, which is the standard scheme used on DVD video discs.

One of the main benefits of SSE over plain MMX is that it supports single-precision floating-point SIMD operations. Just as with plain MMX, SIMD enables multiple operations to be performed per processor instruction. Specifically, SSE supports up to four floating-point operations per cycle; that is, a single instruction can operate on four pieces of data simultaneously. SSE also supports data prefetching, which is a mechanism for reading data into the cache before it is actually called for.

SSE2 was introduced in November 2000, along with the Pentium 4 processor, and features 144 additional SIMD instructions. SSE2 also includes all the previous MMX and SSE instructions.

SSE3 was introduced in February 2004 and adds 13 new SIMD instructions to improve complex math, graphics, video encoding, and thread synchronization. SSE3 also includes all the previous MMX, SSE, and SSE2 instructions.

SSSE3 (Supplemental SSE3) was introduced in June 2006 in the Xeon 5100 series server processors and in July 2006 in the Core 2 processors. SSSE3 adds 32 new SIMD instructions to SSE3.

SSE4 was introduced in January 2008 in versions of the Intel Core 2 processors (SSE4.1) and was later updated in November 2008 in the Core i7 processors (SSE4.2). SSE4 consists of 54 total instructions, with a subset of 47 instructions comprising SSE4.1, and the full 54 instructions in SSE4.2.

What is MultiMedia Extension (MMX)

Did you find this tutorial helpful? Don’t forget to share your views with us.