Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

The dawn of the Intel SSE technology

SergeyKostrov
Valued Contributor II
357 Views

This is a brief historical outlook of the Intel SSE technology and how SEE is supported by different versions
of Microsoft's Visual Studios.

First of all:

SSE - Streaming SIMD Extensions

and

SIMD - Single Instruction Multiple Data

SSE was introduced in 1999, or so,for Intel Pentium III series processors as a response to AMD's 3DNow! technology.

Some time in 1999 Microsoft added a support for SSE inVisual C++ 6.0 ( released in 1998 ) with
a special addon called as Visual C++ 6.0 Processor Pack.

How didsome core SSE header fileslook like13 years ago?

Please take a look at enclosed header files from Visual C++ 6.0 Processor Pack:

emmintrin.h
mmintrin.h
xmmintrin.h

How did a support for SSE evolve over the years?

The following comparison table shows how SEE is supported by different versions of Microsoft's
Visual Studios:

------------------------------------------------------------------------------------------------------------------------------------------------------------
| Header/IDE | VS98 | VS2005 | VS2008 | VS2010 | Notes |
------------------------------------------------------------------------------------------------------------------------------------------------------------
| intrin.h |- | + | + | + | Declarations of platform specific intrinsic functions|
| emmintrin.h|+ | + | + | + | Principal header file |
| mmintrin.h |+ | + | + | + | Definitions and declarations for use with compiler intrinsics |
| xmmintrin.h|+ | + | + | + | Principal header file for SIMD Extensions intrinsics |
| pmmintrin.h| - | - | + | + | Declarations for SSE3 intrinsics |
| smmintrin.h|- | - | + | + | Declarations for SSE4.1 intrinsics |
| nmmintrin.h| - | - | + | + | Declarations for SSE4.2 intrinsics |
| tmmintrin.h| - | - | + | + | Declarations for intrinsic functions ( horizonally packed types ) |
| wmmintrin.h| - | - | + | + | Principal header file for AES and PCLMULQDQ intrinsics |
| immintrin.h| - | - | - | + | Declarations for AVX intrinsics |
-------------------------------------------------------------------------------------------------------------------------------------------------------------

Happy birthday SSE!

0 Kudos
3 Replies
SergeyKostrov
Valued Contributor II
357 Views
For the sake of afairness I also attached another file that Visual C++ Processor Pack installs.
This is a 'mm3dnow.h' header file to support AMD's 3DNow! technology.
Bernard
Black Belt
357 Views
IIRC in late sixties soviet engineers developed the concept of superscalar processing engine.From the other source I know that the first was Burroughs with its superscalar architecture.Sadly there is no information regarding who pioneered SIMD-like vector units . @Sergey If you are interested here is a link http://www.theregister.co.uk/1999/06/07/intel_uses_russia_military_technologies/
Bernard
Black Belt
357 Views
>>>@Sergey If you are interested here is a link http://www.theregister.co.uk/1999/06/07/intel_uses_russia_military_techn...>>> Good article in russian about the Vladimir Pentkovsky and his work on Elbrus processors :http://www.ixbt.com/cpu/e2k-spec.html He could be regarded as a "father" of Pentium architecture and designer of SIMD unit by bringing to Intel his vast knowledge from his previous work.
Reply