Home > Articles > Hardware

SSE (Streaming SIMD Extensions)

In February 1999, Intel introduced the Pentium III processor, and included in that processor was an update to MMX called Streaming SIMD Extensions (SSE). These were also called Katmai New Instructions (KNI) up until their debut, as they were originally included on the Katmai processor, which was the codename for the Pentium III. The Celeron 533A and faster Celeron processors based on the Pentium III core also support SSE instructions. The earlier Pentium II and Celeron 533 and lower (based on the Pentium II core) do not support SSE.

SSE includes 70 new instructions for graphics and sound processing over what MMX provided. SSE is similar to MMX; in fact, besides being called KNI (Katmai New Instructions), SSE was also called MMX-2 by some before it was released. Besides adding more MMX style instructions, the SSE instructions allow for floating-point calculations, and now use a separate unit within the processor instead of sharing the standard floating-point unit as MMX did.

The Streaming SIMD Extensions consist of 70 new instructions, including Single Instruction Multiple Data (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 benefits of SSE include the following:

  • Higher resolution and higher quality image viewing and manipulation for graphics software

  • High-quality audio, MPEG2 video, and simultaneous MPEG2 encoding and decoding for multimedia applications

  • Reduced CPU utilization for speech recognition, as well as higher accuracy and faster response times when running speech recognition software

The SSE instructions are particularly useful with MPEG2 decoding, which is the standard scheme used on DVD video discs. This means that SSE equipped processors should be more capable of doing MPEG2 decoding in software at full speed without requiring an additional hardware MPEG2 decoder card. SSE-equipped processors are much better and faster than previous processors when it comes to speech recognition as well.

One of the main benefits of SSE over plain MMX is that it supports single-precision floating-point SIMD (Single Instruction Multiple Data) operations, which have posed a bottleneck in the 3D graphics processing. 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 floating point instructions can be mixed with MMX instructions with no performance penalties. SSE also supports data prefetching, which is a mechanism for reading data into the cache before it is actually called for.

Note that for any of the SSE instructions to be beneficial, they must be encoded in the software you are using, which means that SSE-aware applications must be used to see the benefits. Most software companies writing graphics and sound-related software today have updated those applications to be SSE-aware and use the features of SSE. For example high-powered graphics applications such as Adobe Photoshop support SSE instructions for higher performance on processors equipped with SSE. Microsoft included support for SSE in its DirectX 6.1 and later video and sound drivers, which were included with Windows 98 Second Edition, Windows Me, Windows NT 4.0 (with service pack 5 or later), and Windows 2000.

Note that SSE is an extension to MMX, meaning that processors supporting SSE also support the original MMX instructions. This means that standard MMX-enabled applications run as they did on MMX-only processors.

  • + Share This
  • 🔖 Save To Your Account


comments powered by Disqus

Related Resources

There are currently no related titles. Please check back later.