Main Page | See live article | Alphabetical index

SSE

SSE (Streaming SIMD Extensions) is a SIMD instruction set designed by Intel, and introduced in their Pentium III series processors as a reply to AMD's 3DNow, which had debuted a year or so earlier. It was originally known as KNI for Katmai New Instructions (Katmai was the code name for the Pentium III). During the Katmai project Intel was looking to offer new functionality to separate the new Pentium III from their earlier product line.

Intel was generally disappointed with their earlier SIMD effort, MMX. MMX had two main problems: it re-used existing floating point registers making the CPU unable to work on both floating point and SIMD data at the same time, and it worked on only integers.

SSE added eight new 128-bit registers that were divided up into four 32-bit floating point numbers. This was in addition to the existing eight "re-used" floating point registers in MMX. SSE also adds a number of instructions for working on floating point data, which sees much more use than the earlier MMX now that the graphics cards all handle integer math internally.

Oddly, however, SSE is implemented using the same circuitry as the FPU, meaning that, once again, the CPU cannot issue both FPU and SSE instructions at the same time for pipelining. The separate registers allow them be mixed together without the performance hit from MMX.

Intel's Pentium 4 implements SSE2, an extension to the basic SSE instruction set.